一、rem是什么?
rem(font size of the root element)是指相对于根元素的字体大小的单位。简单的说它就是一个相对单位。看到rem大家一定会想起em单位,em(font size of the element)是指相对于父元素的字体大小的单位。它们之间其实很相似,只不过rem计算的规则是依赖根元素,而em是依赖父元素计算。rem兼容性如下图所示。
二、rem实现
1.实现原理:rem是根据html的font-size大小来变化,正是基于这个出发,我们可以在每一个设备下根据设备的宽度设置对应的html字号,从而实现了自适应布局。
2.实现方式:
(1)媒体布局自适应:根据移动端屏幕的不同设置一定范围的自适应css样式。优点是实现起来很简单,缺点是只能考虑到常见的移动设备的屏幕宽度,使用起来不太方便。图2-1为通过媒体布局实现移动端屏幕自适应。
图2-1
(2)js实现:使用sass和js实现rem单位换算,优点是可以实现移动端各类屏幕的自适应,缺点是对于web端自适应很少用。图2-2为使用js获取屏幕的宽度通过计算给html标签设置font-size的px大小。图2-3为使用sass实现px和rem的换算。
图2-2
图2-3
(3)下图分别是在iPhone、Galaxy和Nexus手机上的实现效果如下图2-4:
图2-4
提示:由于图片分辨率不高,所以图片看清来不太清晰,希望不要介意。