【发布时间】:2013-07-03 08:47:28
【问题描述】:
有人刚刚在 IRC 上问过这个问题:将他们的 document.body 设置为使用 translateZ(0) 是否可能或可行,以及这样做的好处或坏处是什么。
虽然他实际上并没有对身体本身进行变形/动画/移动/缩放,但他的逻辑主要是将整个文档的渲染/重绘工作卸载到他的 GPU 上,并通过继承来处理确实发生变化的位。
我的猜测是这样做的好处很少,而缺点会更多 - 即影响 cleartype/kerning,使其基于芯片组实现呈现不一致,使其在 OSX 上的 VirtualBox 等 VM 中失败,并可能使某些浏览器崩溃,(取决于正在发生的事情,例如node-webkit) - 所以我的建议是保留translateZ 用于以特定方式移动/更改的元素。此外,如果有单个点要锚定,而不是整个文档,调试问题等会容易得多。但是……我错了吗?
能否请对浏览器有更深入了解的人介绍一下这里的最佳实践以及 GPU 处理元素时幕后发生的事情。
【问题讨论】: