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