我想知道是否可能使用纯CSS来复制“热门推文”列表底部的效果?
可以的!通过利用RGBa颜色和CSS3渐变,我们可以将以下样式应用于元素,并具有淡入淡出半透明背景:
Mozilla:
background: -moz-linear-gradient(top, rgba(255,255,255,0), rgba(255,255,255, 1));
Webkit:
background: -webkit-linear-gradient(top, rgba(255,255,255,0), rgba(255,255,255, 1));
(在Webkit渐变发生变化后更新)
遗憾的是,这仅适用于Firefox 3.6+、Safari和Chrome。如果您需要在IE或旧版Firefox中实现此效果,则最好像Twitter一样使用半透明PNG。
在我的情况下,我认为线性渐变很丑,所以我创建了一个“缓和”渐变。与其他答案混合搭配以获得您想要的结果。
.your-class {
--scale: 1;
mask-image: linear-gradient(90deg,
rgba(255,255,255,0.0) calc(var(--scale) * 0%),
rgba(255,255,255,0.1) calc(var(--scale) * 6%),
rgba(255,255,255,0.5) calc(var(--scale) * 22.5%),
rgba(255,255,255,0.6) calc(var(--scale) * 25.5%),
rgba(255,255,255,0.7) calc(var(--scale) * 30%),
rgba(255,255,255,0.8) calc(var(--scale) * 36%),
rgba(255,255,255,0.9) calc(var(--scale) * 48%),
rgba(255,255,255,1.0) calc(var(--scale) * 60%),
);
}
-webkit-mask-image: -webkit-gradient(...)
如果您想使用更为现代的渐变方向语法,请使用to bottom
,例如:
background: -webkit-linear-gradient(to bottom, rgba(255,255,255,0), rgba(255,255,255, 1));
filter
(IE7及更早版本)和-ms-filter
(IE 8&9)在旧版IE中使其工作。请参见https://dev59.com/wHVC5IYBdhLWcg3wsTRi和https://dev59.com/NFTTa4cB1Zd3GeqPvsx4。 - Paul D. Waite