一、rem是什么?

rem(font size of the root element)是指相对于根元素的字体大小的单位。简单的说它就是一个相对单位。看到rem大家一定会想起em单位,em(font size of the element)是指相对于父元素的字体大小的单位。它们之间其实很相似,只不过rem计算的规则是依赖根元素而em是依赖父元素计算。rem兼容性如下图所示。 

rem移动端自适应

 

二、rem实现

1.实现原理:rem是根据html的font-size大小来变化,正是基于这个出发,我们可以在每一个设备下根据设备的宽度设置对应的html字号,从而实现了自适应布局。

2.实现方式:

(1)媒体布局自适应:根据移动端屏幕的不同设置一定范围的自适应css样式。优点是实现起来很简单,缺点是只能考虑到常见的移动设备的屏幕宽度,使用起来不太方便。图2-1为通过媒体布局实现移动端屏幕自适应。

rem移动端自适应

图2-1

(2)js实现:使用sass和js实现rem单位换算,优点是可以实现移动端各类屏幕的自适应,缺点是对于web端自适应很少用。图2-2为使用js获取屏幕的宽度通过计算给html标签设置font-size的px大小。图2-3为使用sass实现px和rem的换算。

rem移动端自适应

图2-2

rem移动端自适应

图2-3

(3)下图分别是在iPhone、Galaxy和Nexus手机上的实现效果如下图2-4:

rem移动端自适应rem移动端自适应rem移动端自适应

图2-4

提示:由于图片分辨率不高,所以图片看清来不太清晰,希望不要介意。

相关文章: