如何修改CSS渐变遮罩代码,让div底部渐隐效果的起始位置更靠下
方案1:调整mask渐变参数(和你当前实现方案兼容)
你当前用的老式webkit渐变语法是从顶部到底部全程渐变,所以渐隐开始的位置太早,只需要添加渐变断点,控制完全不透明的区域占比即可:
.sumo-section { /* 兼容老式webkit内核 */ -webkit-mask-image: -webkit-gradient(linear, left top, left bottom, from(rgba(0,0,0,1)), color-stop(0.8, rgba(0,0,0,1)), /* 前80%区域完全不透明 */ to(rgba(0,0,0,0))); /* 标准语法,兼容现代浏览器 */ mask-image: linear-gradient( to bottom, rgba(0,0,0,1) 80%, /* 0到80%高度完全不透明 */ rgba(0,0,0,0) 100% /* 80%到100%高度渐变为透明 */ ); }
你可以调整上面的80%/0.8参数来控制渐隐起始位置:数值越大,渐变起始位置越靠下,渐隐过渡区域也越短。比如调为90%就可以实现你需要的目标效果的渐隐位置。
方案2:伪元素叠加方案(兼容性更好)
如果需要兼容不支持mask属性的浏览器,可以用伪元素叠加渐变的方式实现,适合后续div背景是固定纯色的场景:
.sumo-section { position: relative; } .sumo-section::after { content: ''; position: absolute; bottom: 0; left: 0; right: 0; height: 60px; /* 自定义渐隐区域的高度 */ background: linear-gradient(to bottom, transparent, #f5f5f5); /* 第二个色值替换为后续div的背景色 */ pointer-events: none; /* 避免遮挡内容的交互操作 */ }
两种方案都可以实现你要的底部渐隐效果,你可以根据项目的兼容性要求、后续背景的类型灵活选择。
内容的提问来源于stack exchange,提问作者trojanv1rus
相关产品推荐
相关产品推荐

