Chrome中的宽度较小

时间:2011-11-17 12:37:23

标签: css google-chrome webkit

我遇到了谷歌浏览器的问题(版本:15.0.874.121米):当一个块的宽度小于0.99像素(精确)时,它显示不正确 - 带有内部文本的宽度。

示例代码:

<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和Internet Explorer中运行良好。

可能是什么原因(Chrome中的错误?) - 以及如何解决?

2 个答案:

答案 0 :(得分:1)

webkit和小数像素存在错误。

http://ejohn.org/blog/sub-pixel-problems-in-css/

答案 1 :(得分:1)

我不会说这确实是一个错误,但它正是webkit如何舍入子像素指标。请注意,它正在考虑将.99向上舍入,其他任何事情都在四舍五入......

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

如果它向下舍入为零,它就会被忽略,因为它假设你犯了一个错误。因此,任何小于0.99px的东西都会被忽略,默认为:auto;如果您不喜欢这种方式,请使用max-width:它将符合它的零px。但是四舍五入已经确定,你将不得不处理这个问题。 webkit不支持子像素渲染,就像在gecko(firefox)上一样。