【发布时间】:2015-05-29 18:14:48
【问题描述】:
所以,这个问题以前出现过,比如这里:Translate + Canvas = Blurry Text 在这里:Is it possible to "snap to pixel" after a CSS translate?
对于这些链接或我读过的任何其他文章,似乎都没有任何结论。一些响应者认为它不够重要,所以这就是为什么在我的情况下它是:Chrome 41.0.2272.104 中的屏幕截图
Safari 8.0.4 (10600.4.10.7) 中的屏幕截图
在 Safari 中查看损失的详细信息? (看航天飞机图像中的结构,或第三张图像中岩石的细节)
这些人的 CSS 是
width: 100%;
height: auto;
position: relative;
top: 50%;
-webkit-transform: translateY(-50%);
因此,在某些情况下,translateY 会以半像素结束。左边的第一张图像以这样的变换矩阵结束:
-webkit-transform: matrix(1, 0, 0, 1, 0, -56.5);
目前,chrome 似乎可以很好地呈现这一点(我看到一些人说不同的浏览器会在不同的版本中产生问题),但目前 Safari 存在问题。所以,我解决这个问题的假设是确保只有整个像素,我已经通过数学计算和在 javascript 中应用转换来完成,但是当在大量图像上运行时,这会花费更多的性能时间.
我尝试了一些纯 CSS 技巧,例如使用 scale3d,但均未成功。如果有人有任何无 JS 的解决方案,我将不胜感激。
【问题讨论】:
-
如果能集成JS就很简单了...
-
感谢@maioman,在我解释的问题中我已经做到了——但是当我有很多图像时,使用 JS 会对性能产生负面影响。
-
@maioman 另外,没有什么比旧的纯 CSS 解决方案更好的了。
标签: css rendering transform css-transforms