指定字体大小时,所有浏览器都会尊重十进制精度吗?

18

如果我使用以下CSS:

p {
    font-size: 20.5px;
}

所有的浏览器都会将其渲染为20.5px,还是会有一些浏览器对该值进行四舍五入处理?


1
可能是在CSS的字体大小属性中使用分数em的重复问题。 - GSerg
这个回答解决了你的问题吗?CSS宽度中的小数位是否被尊重? - Penny Liu
2个回答

7

在所有浏览器中,十进制数的舍入方式并不一致。我找到的最佳帖子在这里:浏览器舍入

其中包含一个表格,显示以下内容:

Internet Explorer 7 truncate to 2 decimal places
Internet Explorer 8 truncate to 2 decimal places
Internet Explorer 9 truncate to 2 decimal places
Internet Explorer 10    truncate to 2 decimal places
Internet Explorer 11    truncate to 2 decimal places
Firefox 3.0 truncate to 3 decimal places
Firefox 3.5 truncate to 3 decimal places
Firefox 31  truncate to 3 decimal places
Chrome 20   round to 15 decimal places
Chrome 21   round to 15 decimal places
Chrome 37   round to 13 decimal places
Safari 6 (OSX Lion) round to 15 decimal places
Safari 6.1 (OSX Mountain Lion)  round to 15 decimal places
Safari 7 (OSX Mavericks)    round to 15 decimal places
Mobile Safari 7 (iOS7)  round to 15 decimal places
Mobile Safari 8 (iOS8)  round to 15 decimal places
Chrome 36 (Jelly Bean) [Nexus5] round to 15 decimal places
Chrome 30 (KitKat) [S5] round to 15 decimal places
Android Browser 4 (Jelly Bean) [Nexus7,Nexus4,S4,S3]    round to 15 decimal places
Android Browser 4 (Ice Cream Sandwich) [Nexus,KindleFire2]  round to 15 decimal places
Android Browser 4 (Gingerbread) [S2]    truncate to 3 decimal places
Opera 12    truncate to 2 decimal places
Opera Next 24   round to 13 decimal places

4
你复制的数据适用于将其定义为百分比后进行渲染,而不是直接以 px 定义时。 - Lode
1
你所参考的页面并未涉及字体大小。 - Matthew Simon Cavalletto

3

所有最新版本的浏览器都支持亚像素渲染*。请参见研究不同浏览器版本之间差异的表格

旧版浏览器大多会向下取整像素值。最值得注意的例外是IE8和IE9,它们会四舍五入到最近的整数(IE7也会向下取整,而IE10及以上则使用亚像素渲染)。

* 如果您以百分比定义大小,则像素值可能与直接以像素定义时不同。


3
所提到的页面并未涉及字体大小。 - Matthew Simon Cavalletto
1
亚像素渲染与字体大小无关,它是利用单个(通常为红、绿和蓝色)亚像素并将其组合在一起,在显示器上调整像素以更好地渲染文本的能力。 - Hanii Puppy

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接