html - 如何在背景和文本上应用不同的渐变
问题描述
我在 CSS 中使用带有 webkit 渐变效果的背景颜色
.show {
background: rgb(242,242,242);
background: linear-gradient(90deg, rgba(242,242,242,1) 0%, rgba(222,222,222,1) 52%, rgba(193,193,193,1) 100%);
opacity: 0.4;
border-bottom: 2px solid #E4E9ED;
}
这很好用,但是一旦我尝试将悬停时的渐变添加到.show
带有<a>
标签到文本的类中,它就无法工作:
@media (-webkit-min-device-pixel-ratio:0) {
.navigation-bar .show li a:hover{
background-color: orange;
color: transparent;
-webkit-transition: .1s .2s;
-webkit-background-clip: text;
background-image: -webkit-linear-gradient(left, #c41316 1%,#e00003, transparent 50%); /*-webkit-linear-gradient(left, hotPink 0%, orange 50%, transparent 50%);*/
background-position: 100% 0;
background-size: 200% 200%;
}
}
此代码适用于其他文本,但我认为.show
渐变背景对.show li a:hover
渐变文本有影响。
如何在渐变背景上应用渐变文本?
Codepen(请注意您需要向下滚动才能看到问题)
解决方案
去除background-position: 100% 0;
里面
@media (-webkit-min-device-pixel-ratio: 0) .navigation-bar .show li a:hover {...}
我是怎么得出这个结论的?
当您滚动时, this@media (-webkit-min-device-pixel-ratio: 0) .navigation-bar .show li a:hover {...}
会覆盖 this @media (-webkit-min-device-pixel-ratio: 0) .navigation-bar li a
。当您从前者中一点一点地删除属性时,它会在background-position: 100% 0;
删除时起作用。
推荐阅读
- javascript - 使用范围滑块调整线性渐变
- java - 在 Java 中使用递归将字符串转换为反向字符串
- google-maps - 将自定义背景图像添加到谷歌地图中的可拖动多边形?
- windows-subsystem-for-linux - 使用wsl执行的bash命令的控制台输出在重定向到文件时被截断
- java - 如何在 Java 中漂亮地打印 3D 数组
- ruby-on-rails - 即使签名的最后一个字符发生更改,也可以进行 JWT 令牌解码
- amazon-web-services - AWS Glue 仅写入最新分区 parquet
- python - 从外部调用函数python
- r - 可以强制在ggplot图例中显示未发生的元素吗?
- angular - 模态弹出窗口不从角度打开