我正在寻找 这样 的效果,但我的网站有一个动态的 background-color
。请注意,此示例使用白色叠加层,它不适用于不同的背景。
p {
width: 300px;
overflow: hidden;
height: 50px;
line-height: 50px;
position: relative;
}
p:after {
content: "";
width: 100px;
height: 50px;
position: absolute;
top: 0;
right: 0;
background: linear-gradient(90deg, rgba(255,255,255,0), rgba(255,255,255,1));
}
我希望做的是设置 CSS 不透明度渐变。 这种 工作,但代码太乱了。看看第二个例子,我可以在 jQuery 中实现它,但是有没有办法完全在 CSS 中做到这一点?
原文由 pgee70 发布,翻译遵循 CC BY-SA 4.0 许可协议
您可以在 CSS 中完成,但目前除了现代版本的 Chrome、Safari 和 Opera 之外,其他浏览器没有太多支持。 Firefox 当前仅支持 SVG 掩码。有关详细信息,请参阅 Caniuse 结果。
编辑:除 IE 之外的所有浏览器现在都支持此处提到的所有
mask-
属性。CSS:
诀窍是指定一个遮罩,它本身就是一个以不可见(通过 alpha 值)结束的渐变
查看具有坚实背景的演示,但您可以将其更改为任何您想要的。
演示
还要注意所有常用的 图像 属性都可用于 mask-image
现在,另一种方法可用,Chrome、Firefox、Safari 和 Opera 都支持这种方法。
这个想法是使用
如果颜色为灰色,则提供透明度。然后,元素上的灰色叠加层创建透明度