css - 使用 CSS,您可以应用渐变 mask 来淡化文本上的背景吗?

标签 css gradient masking

我有一张全屏固定背景图片。我希望我的滚动 div 中的文本在顶部淡出,大概是通过仅在 div 的顶部对背景应用渐变蒙版。我感兴趣的是让文本看起来像在用户向下滚动时逐渐消失,但仍然有大面积的完全不透明区域来实际阅读文本。

我知道 webkit 中有 mask 选项,但我找不到淡入页面背景的方法over 包含的文本仅将渐变应用于元素的一小部分.

这是所需结果的图像:

最佳答案

我一直在想这完全相同的事情。解决方法其实很简单。虽然这当然是一个相当现代的功能,所以您必须坚持浏览器兼容性。

Webkit 可以用一行 CSS 来解决这个问题:

-webkit-mask-image: -webkit-gradient(linear, left 90%, left bottom, from(rgba(0,0,0,1)), to(rgba(0,0,0,0)))

(新的标准化方法是使用 mask-imagelinear-gradient 并使用其新语法。有关 mask-imagelinear-gradient 的信息,请参见 caniuse.com。)

这会淡出应用它的任何元素的底部 10%,甚至不使用图像。您可以添加 padding-bottom: 50% 以确保仅当有更多内容需要滚动时内容才会淡出。

来源:http://www.webkit.org/blog/181/css-masks/

虽然 Mozilla (Gecko) 回退有点棘手:您可以使用 its 'mask' feature ,但这需要 SVG 图像。您可以尝试 base64 embed that image into your stylesheet ... 现在在 Firefox 中使用 mask-image

关于css - 使用 CSS,您可以应用渐变 mask 来淡化文本上的背景吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9525215/

相关文章:

html - 必须按两次回车才能搜索

css - CSS @import url() 在端口 8080 上的问题

javascript - 编辑屏蔽输入时如何获取正确的值(自定义屏蔽)

css - 屏蔽图像

internet-explorer - IE 8+ 中的 CSS 渐变适用于网站的所有部分,除了一个

c - 屏蔽信号的原因?

javascript - 将呈现的网页的一部分转换为独立的 HTML

javascript - 元素无法溢出 html css

html - 应用渐变的图像 : better performance adding gradients via css or apply them directly to the src img?

javascript - 如何在图像源不在 CSS 样式内的图像上应用线性渐变