1

我有一个页面,其中包含<article>连续的几个元素。元素的底部是一个使用 3D CSS 变换<article>的小元素。<div>奇怪的是,即使原版<article>没有硬件加速,这个小元素也会<div>导致其余<article>元素也有硬件加速(我正在使用这里概述的方法:http: //mir.aculo.us /2011/02/08/visualizing-webkits-hardware-acceleration/),尽管只有小部分<div>需要它。

当我隐藏第一个<div>时,随后的硬件加速被禁用<article>

<article> <-- Does not have HW acceleration
[other divs and content]
<div></div> <-- Has HW acceleration
</article>

<article> <-- Has HW acceleration
[other divs and content]
<div></div>
</article>

<article> <-- Has HW acceleration
[other divs and content]
<div></div>
</article>

变成

<article> <-- Does not have HW acceleration
[other divs and content]
<div style="display:none"></div>
</article>

<article> <-- Does not have HW acceleration
[other divs and content]
<div></div> <-- Has HW acceleration
</article>

<article> <-- Has HW acceleration
[other divs and content]
<div></div>
</article>

由于整个<article>标签获得了硬件加速,亚像素抗锯齿被禁用,并且所有文本<article>都是颗粒状的。

有没有什么简单的东西可以阻止后续<article>元素获得硬件加速?

4

2 回答 2

2

好吧,我已经回答了我自己的问题。这是 Webkit 中的一个错误(已在 Webkit nightlies 中修复),其中硬件加速元素将触发具有position:relative;.

要修复它,您可以删除position:relative;或使用-webkit-font-smoothing:antialiased;

我在我的网站上写了一篇关于它的小文章:http: //singy.posterous.com/hardware-acceleration-bleeding-into-subsequen

于 2011-04-01T06:47:03.660 回答
0

我认为这样做是为了防止硬件加速在整个页面中打开/关闭。它“及时”启用,然后继续运行。在我看来,你不应该搞砸(或不得不搞砸)。浏览器供应商需要更改或更新(或正确记录)。

如果您想完全避免硬件加速,请不要使用 3D 变换,而是使用经典图像。

于 2011-03-30T19:56:07.773 回答