我注意到在macOS上的Safari 16.2中,对悬停时的filter
属性进行更改会导致一个奇怪的行为:
- 悬停时它实际上不会改变
- 如果您单击文本,它确实会部分更改,这绝对不是所需的行为
使用-webkit-filter
也无济于事。
/* problem-relevant CSS */
div{
background: red;
filter: grayscale(1);
}
div:hover{
filter: grayscale(0);
}
/* some further styling for readability */
div{
display: flex;
justify-content:center;
color: white;
padding:10px;
font-size:25px;
}
<div>Hover Me</div>
以下是它的外观(GIF):
对此我们能做些什么呢?
1条答案
按热度按时间vulvrdjw1#
这似乎是webkit的一个渲染错误。
我找到了几种解决方法:
transform
而不实际转换任何内容(例如,scale(1)
)可以解决此问题transition:0.05s
会有帮助(尽管创建了一个不需要的转换),任何更长的转换也能解决这个问题(在你通常想把转换放在这里的情况下,你可能永远不会发现这个问题)有趣的事实:一个 * 甚至更短的 * 过渡(即
0.03s
)并不能解决任何问题。