Npcink Blog
切换菜单

rem 怎么计算

rem 及其他单位详细介绍(适配移动端)

来源:

https://www.cnblogs.com/shirly77/p/6285232.html

px:相对长度单位。像素 px 是相对于显示器屏幕分辨率而言的

em:相对单位,继承父节点(层层继承,传递)基准点为父节点字体的大小,如果自身定义了 font-size 按自身来计算(浏览器默认字体是 16px),整个页面内 1em 不是一个固定的值。

rem:相对单位,相对长度单位。r’是“root”的缩写,相对于根元素<html>的字体大小, 可理解为”root em”, 相对根节点 html 的字体大小来计算,CSS3 新加属性,chrome/firefox/IE9+支持。

(另外需注意 chrome 强制最小字体为 12 号,即使设置成 10px 最终都会显示成 12px,当把 html 的 font-size 设置成 10px,子节点 rem 的计算还是以 12px 为基准,所以网上很多文章提到的将 html 的 font-size 设为 10 方便计算不是那么可取)。

rem 在移动端应用可参考淘宝的页面 http://m.taobao.com (html 的 font-size 通过动态计算获取)

注:需设置 meta 缩放比 1:1

<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no" />

vw:viewpoint width,视窗宽度,1vw 等于视窗宽度的 1%。

vh:viewpoint height,视窗高度,1vh 等于视窗高度的 1%。

vmin:vw 和 vh 中较小的那个。

vmax:vw 和 vh 中较大的那个。

vw, vh, vmin, vmax:IE9+局部支持,chrome/firefox/safari/opera 支持,iOS safari 8+支持,Androidbrowser4.4+支持,chrome for android39 支持

其它的单位还有:

%:百分比

in:寸

cm:厘米

mm:毫米

pt:point,大约 1/72 寸

pc:pica,大约 6pt,1/6 寸

ex:取当前作用效果的字体的 x 的高度,在无法确定 x 高度的情况下以 0.5em 计算(IE11 及以下均不支持,firefox/chrome/safari/opera/ios safari/android browser4.4+等均需属性加么有前缀)

ch:以节点所使用字体中的“0”字符为基准,找不到时为 0.5em(ie10+,chrome31+,safair7.1+,opera26+,ios safari 7.1+,android browser4.4+支持)

(1)怎样计算 rem

先设置 font-size:的 px

html {

font-size:100px;(也可以设置百分比)

}

body {

font-size:14px;(可以改变)

}

p {

//假如屏幕宽度是 320px,那么字号是 7px;

font-size:7px;

}

计算过程:

标准 640px font-size:100px 设置字号 font-size:14px;则 rem 为 0.14,即 1rem=100px

屏幕宽度 改变为 320px 那么 font-size:变成 50px rem 为 0.14 则设置字号 font-size:50*0.14=7px 

(2) rem(App)

html {

font-size:15.625vw;(就是宽度 640 的手机)

}

body {

font-size:12px; // font-size 会被继承, 为了避免后来修改 font-size 修改不来,就在 body 加上 font-size:12px

}

最好按照宽度为 320 来计算,640 相当于分成 100 份,那么 320 就分成 50 份,也就是说,原本有一个 div 宽度和高度都为 50px,现在他们的宽度和高度都为 1rem,不过得要美工给出的稿子要符合一定的规则才行。

额外说点:美工给的设计稿有两种,一种是宽度是 640px(小屏),然后适应各种手机屏幕宽度,就是说内容扩大了,缺点会变得模糊;一种是宽度 750px(中屏),然后适应各种手机屏幕宽度,适应各种手机屏幕比较好