CSS中px和em的数值可以精确到小数点后几位?

各浏览器显示的效果是相同的么?
希望给出答案或相关资料,谢谢

阅读 26.9k
3 个回答

引用 《CSS权威指南》(第三版) P84

CSS中有两类数字:整数(“完整”的数)和实数(小数)。这些数字类型主要作为其他值类型的基础,不过在某些情况下,这些基本类型数字也可以用做属性的值

在CSS2.1中,实数定义为一个整数后可以跟有一个小数点和小数部分。因此,以下都是合法的数字值:15.5-270.000045。整数和实数都可以是正数或负数,不过属性可能(而且通常会)限制所允许的数字范围

从本段话中的理解是CSS中单位pxem数值的小数点是无限制的,不过CSS不同的属性会限制其允许范围,而且在使用小数点时,也会存在一些浏览器解析差异的问题:

.container{  
    width:10.9px;  
    height:6.2px;
}  

IE8 中会显示当前的宽度为11px,而在 IE7 会以10px进行显示;
所以对于小数点的使用不同浏览器会存在不同的解析方式:

  1. 采用四舍五入解析的浏览器:IE8、IE9、Chrome、Firefox
  2. 采用直接取整解析的浏览器:IE7、Safari

如果存在0.5像素的话那像素的精度就精确到小数点后一位,不过密度再高的屏幕像素精度也是1px,em的话跟px完全不是一回事了,em是个比例关系,你想小数后几位就几位。

小数点后三位之后基本看不出来了。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏