css translateZ 使元素变得模糊

问题描述

这是我的问题的重现(codepen,因为显然 stackoverflow 的 iframe 以某种方式影响渲染):

https://codepen.io/Ironimus/pen/GRjxpXZ

使用 transform: translateZperspective 时,内部元素的边缘和文本变得模糊。它在不同的浏览器中的工作方式也大不相同。如果它也取决于屏幕或操作系统,以下是一些带有说明的屏幕截图:

在 Google Chrome 中 transform: scale(2) 很好。文本和内部元素变得模糊,具体取决于带有 perspective 的元素的宽度,并且遵循非常奇怪的逻辑,当我将 width 设置为 847px 或更高时,它会中断,较低看起来没问题:

Rendering issues in Google Chrome,50vw width and 1000px width makes elements blurry,others are fine

在 Mozilla Firefox 中,如果使用 perspective/translateZ 组合,文本会变得模糊,内部元素很好,transform: scale(2) 也可以。 width 似乎没有任何影响:

Rendering issues in Mozilla Firefox,all elements with translateZ and perspective are blurry,transform: scale looks fine

在 Safari 中,无论我做什么,一切都很模糊:

Rendering issues in Safari,everything is blurry

为什么它完全模糊,我如何使它正确?对所有内容都使用 transform: scale(2) 不是一个可行的选择。是否有一些我应该遵循的规则来帮助浏览器使用文本正确渲染 3D 转换?

支持 Safari 不是优先事项,但还是不错的

解决方法

您是否尝试向浏览器添加自定义 -webkit?

,

我可能迟到了这个答案,但我最近在为网站实施视差设计时遇到了同样的行为。 这是一个与在 Safari 中渲染为位图的文本相关的问题,这些文本不会在 transform: scale(x); 上重新渲染。而是被放大了。 在某些情况下可以手动触发文本的重新渲染,但是这非常挑剔,并且没有保证的方法可以使其工作。 Jack 在此线程中提供了更全面的答案: Transform scale() Safari bug when used on elements with border

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...