px、em、rem都是计量单位,都能表示尺寸。
任何浏览器的默认字体高都是16px
1.px
相对长度单位,它是相对于显示器屏幕分辨率
优点:
①利用px设置字体大小及元素宽高等比较稳定和精确,
缺点:
①不能适应浏览器缩放时产生的变化,因此一般不用于响应式网站
②IE无法调整那些使用px作为单位的字体大小
2.em
表示相对长度单位,其相对于当前对象内文本的font-size(如果当前对象内文本的font-size计量单位也是em,则当前对象内文本的font-size的参考对象为父元素文本font-size,一直往上查找,直到找到一个font-size设置为px的,否则就相对于浏览器默认字体)
优点:可以较好的响应设备屏幕的尺寸的变化
缺点:在进行元素设置时都需要知道父元素文本的font-size以及当前对象内文本的font-size,如有遗漏,可能会导致错误
特点:em值不是固定的,会继承父级元素的字体大小
3.rem
表示相对长度单位,其参考对象为跟元素<html>的font-size,因此只需要确定这一个font-size
优点:通过它既可以做到只修改根元素就成比例地调整所有字体大小,又可以避免字体大小逐层复合的连锁反应
目前,除了IE8及更早版本外,所有浏览器均已支持rem。对于不支持它的浏览器,应对方法也很简单,就是多写一个绝对单位的声明。这些浏览器会忽略用rem设定的字体大小。下面就是一个例子:
p {font-size:14px; font-size:.875rem;}
注意:
选择使用什么字体单位主要由你的项目来决定,如果你的用户群都使用最新版的浏览器,那推荐使用rem,如果要考虑兼容性,那就使用px,或者两者同时使用。