问题描述
我遇到了一个问题,即在修改 <div>
的不透明度(或任何过滤器)时缩放它会导致 <div>
及其内容发生不必要的更改。
查看此示例(在 Chrome 中测试):
div {
width: 100px;
height: 50px;
margin: 20px;
border: 1px solid black;
text-align: center;
/* filter: invert(0); */
transform: scale(1.16491);
}
div:hover {
transition: opacity 0.4s;
transition-delay: 0.75s;
opacity: 0.5;
}
<html>
<body>
<div>
Hover Over Me
</div>
</body>
</html>
注意当不透明度(这是一种过滤器)应用于 <div>
时,它的边框是如何变得模糊的。当我使用 filter 属性添加另一个过滤器时,问题变得更加复杂。然后,内容也变得模糊(取消注释 filter: invert(0);
以查看)。在此示例中添加 translateZ(0)
可能会有所帮助,但在我的实际用例中却无济于事(不知道为什么)。
对解决此问题的任何帮助表示感谢。
解决方法
经过大量调查后,我发现将比例四舍五入到小数点后以偶数结尾的两位数字会解决我的用例问题。然而,它不能解决问题中的示例,但可以通过添加 translateZ(0)
来解决。
我希望这两种解决方案之间的所有用例都能得到解决。