2011-03-30 15 views
1

我有一个由几个<article>元素组成的页面。在<article>元素的底部是使用3D CSS变换的小型<div>。奇怪的是,尽管原始的<article>没有硬件加速,但这个小的<div>导致其余的<article>元素也有硬件加速(我使用的方法概述在这里:http://mir.aculo.us/2011/02/08/visualizing-webkits-hardware-acceleration/),尽管它是只有需要它的小型<div>Webkit硬件加速渗入页面上的其他元素?

当我隐藏第一个<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>元素获得硬件加速?

回答

0

我认为这是为了防止HW加速在整个页面上打开/关闭。它启用“及时”,然后继续。在我看来,这是没有什么你应该惹(或不得不惹的)。这是浏览器供应商更改或更新(或正确记录)的原因。

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

+0

我想主要问题是,硬件加速砸了子像素抗锯齿。我可以将-webkit-font-smoothing设置为antialiased,但它不完全相同。好吧。 – 2011-03-30 21:23:56

2

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

要解决该问题,您可以删除position:relative;或使用-webkit-font-smoothing:antialiased;

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

相关问题