国庆前去面试,然后被问到是否用过rem,作为渣渣的我一脸懵逼。因为之前听过,没去研究过,更加没有在实际生产中使用过。今日得空来好好学习学习这个rem。
说到rem,就不得不说css中的另外两个相对单位px和em。
首先说一说 px 吧,像素px(pixel)是一个相对于屏幕分辨率的相对长度单位。px用起来省事方便,这也是我之前开发一直用的。在大部分浏览器中默认字体大小为16px。
em是相对于父级元素的字体大小,浏览器的默认字体大小是
16px
,所以1em
就是16px
,2em
就是32px
。但是如果是1.1em
对应的则是17.6px
,而px作为单位会省略小数点后的数字,所以正常会将1em = 10px
方便转换。不过需要注意的是在Chrome中字体最小不小于12px
,所有小于12px
的都会转化成12px
,所以按照1em = 10px
在Chrome中1em
其实大小是12px
(要注意!!!)rem(root em)也是相对大小,不过rem是相对于html根元素大小,不像em那么多变(其他与em类似)。通过它既可以做到只修改根元素就成比例地调整所有字体大小,又可以避免字体大小逐层复合的连锁反应。rem是css3新提出的,目前ie8以上的浏览器均支持rem。