2011-11-17 55 views
0

我遇到了Google Chrome(版本:15.0.874.121 m)的問題:當一個塊的寬度小於0.99px(正好)時,它顯示不正確  - 內部寬度文本。Chrome中的小寬度

示例代碼:

<style> 
.frame { float: left; border: solid; } 
.frame div { width: 0.98px; overflow: hidden; } 
</style> 
<div class="frame"><div>Long text</div></div> 

而這裏的現場演示:http://jsfiddle.net/bDTgX/1/

相同的代碼工作以及在Firefox,Opera和IE瀏覽器。

可能是什麼原因(Chrome中的錯誤?) - 以及如何解決?

回答

1

我不會說這是一個bug真的,但它是WebKit是多麼舍子像素指標。需要注意的是,正在考慮0.99圍捕,別的它捨去...

http://jsfiddle.net/bDTgX/9/

如果向下舍入到零,它只是忽略了一起,因爲它假定你犯了一個錯誤。因此,小於.99px的任何內容都將被忽略,並且默認爲:auto;如果您不喜歡這種方式,請使用max-width:它將符合它的零px。但四捨五入已經確定,你只需要處理。子像素渲染只是在webkit上不受支持,就像它在gecko(firefox)上一樣。

+0

這聽起來很合理,而且奇怪的是WebKit有問題,因爲我在嘗試使用jQuery.animate時發現它({width:'toggle'}) - 它導致Chrome中出現閃爍和毛刺,而在其他瀏覽器中正常工作(順便說一句,使用1px而不是'切換'會做到這一點)。 這是奇怪的行爲。不管怎樣,謝謝! – NikitaBaksalyar