我称之为“抬起窗帘”的CSS效应会在滚动时创建一个视觉上的过渡。背景从黑暗转移到光线,而上面的粘性内容从光到黑暗转变。
这是在现实世界中的外观:[link to示例 - 如果可用的话,请替换为实际链接]
准备学习如何创造这种效果?让我们研究一个简单的HTML和CSS实现。
为了清楚起见,我们将使用简化的版本:
<div class="curtain"> <div class="invert"> <h2>部分标题</h2> </div> </div>
这使用一个.curtain
容器来进行背景效果,一个.invert
子元素用于粘性内容,并且<h2></h2>
为了标题。
我们将定义CSS变量以便于自定义:
:根 { - 敏:98VH; -color1:小麦; -color2:午夜蓝色; }
这些变量控制容器高度( --minh
),浅色( --color1
)和深色( --color2
)。
.curtain
元素使用线性梯度进行背景拆分,并为额外的底部空间进行min-height
:
。窗帘 { 背景图像:线性级别(底部,var(-oloc2)50%,var(-color1)50%); } .curtain :: after { 内容: ””; 显示:块; 最小值:var(-inh); }
::after
伪元素产生了额外空间的错觉,从而确保了粘性内容保留在容器中。
.invert
类样式的粘性内容:
.invert { 位置:粘性; 顶部:20px; 混合模式:差异; 显示:Flex; 准项目:中心; Jusify-content:中心; 最小值:var(-inh); } H2 { 颜色:var(-color1); }
position: sticky
和top
产生粘性效果。 mix-blend-mode: difference
将内容颜色与背景梯度混合在一起,从而产生反效应。 Flexbox中心内容。
mix-blend-mode: difference
会产生反转效果。有关mix-blend-mode
值的可视化说明,请参见此CSS-tricks Almanac演示:[链接到CSS-Tricks演示 - 如果可用,请替换为实际链接]。
可以在此处找到实时展示效果的演示:[链接到演示 - 如果可用的话,请替换为实际链接]
重要说明:
mix-blend-mode: difference
与某些属性(例如transform
无法正常工作。该技术提供了一种干净的浏览器兼容解决方案,用于仅使用HTML和CSS创建视觉上吸引人的“抬高窗帘”效果。在评论中让我知道您将如何使用此效果!
以上是如何在CSS中产生'抬高窗帘”效应的详细内容。更多信息请关注PHP中文网其他相关文章!