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(中屏),然后适应各种手机屏幕宽度,适应各种手机屏幕比较好

rem怎么计算的更多相关文章

  1. REM布局计算,移动端,pc端有兼容性)

    rem布局计算(移动端,pc端有兼容性) <!DOCTYPE html> <html> <head lang="en"> <script& ...

  2. 这次我好像才真的明白了CSS Rem字体计算的原理

    背景 如何按照设计稿中标注的尺寸,直接写页面的样式,不再需要px2rem这样的工具或者人工转换 ? 只要你明白了rem的计算原理,这个问题的答案超级简单. 根字体大小计算核心原理 设备的根字体大小 * ...

  3. 关于rem的计算顺序

    /*响应式字体*//* * 字体响应式 * 屏幕>640px时,html字体大小 * 屏幕<640px时,html字体根据屏幕做出相应  * */(function(doc,win){   ...

  4. 第148天:js+rem动态计算font-size的大小,适配各种手机设备

    需求: 在不同的移动终端设备中实现,UI设计稿的等比例适配. 方案: 布局排版都用rem做单位,然后不同宽度的屏,js动态计算根节点的font-size. 假设设计稿是宽750px来做的,书写css方 ...

  5. 前端移动端的rem适配计算原理

    rem是什么? rem(font size of the root element)是指相对于根元素的字体大小的单位.简单的说它就是一个相对单位.看到rem大家一定会想起em单位,em(font si ...

  6. rem布局计算(移动端,pc端有兼容性)

    1 <!DOCTYPE html> 2 <html> 3 <head lang="en"> 4 <script> 5 functio ...

  7. rem的计算

    (function (doc, win) { console.log("dpr:"+win.devicePixelRatio); var docEle = doc.document ...

  8. JS动态计算移动端rem的解决方案

    首先介绍下rem 说起rem就的说px,em: PX为单位 在Web页面初期制作中,我们都是使用“px”来设置我们的文本,因为他比较稳定和精确.但是这种方法存在一个问题,当用户在浏览器中浏览我们制作的 ...

  9. 了解真实的『REM』手机屏幕适配

    rem 作为一个低调的长度单位,由于手机端网页的兴起,在屏幕适配中得到重用.使用 rem 前端开发者可以很方便的在各种屏幕尺寸下,通过等比缩放的方式达到设计图要求的效果. rem 的官方定义『The ...

随机推荐

  1. python进阶02

    1.import导入模块 import sys sys.path:显示的是:从显示目录中查找要导入的模块文件. 程序执行时导入模块路径:sys.path.append('/home/itcast/xx ...

  2. sql server 2005 Express 下载

    简体中文版: SQL Server 2005 Express Edition 简体中文版 链接页面: http://www.microsoft.com/downloads/details.aspx?d ...

  3. 利用Xshell从windows上传文件到linux

    1.首先,打开你的xshell客户端. 2.我用的是ubuntu 所以用 apt-get install lrzsz 命令来安装这个上传软件. 安装成功以后,可以使用rz上传,sz下载. 然后等待上传 ...

  4. Qt中使用setStyleSheet对QPushButton按钮进行外观设置

    Qt中使用setStyleSheet对按钮进行外观设置 字体颜色的设置一般时以下两种方案: (1)属于QWidget子类的一些控件 可以直接使用样式表,例如label->setStyleShee ...

  5. 初探MyBatis之HelloWorld(二)

    二.不使用 XML 构建 SqlSessionFactory 不使用xml构建SqlSessionFactory的话,就要用java代码来连接数据库.我这里直接new DataSorce()接口实现g ...

  6. ROS配置C++14环境

    ROS配置C++11环境 打开Terminal, sudo vim /opt/ros/<yourversion>/share/catkin/cmake/toplevel.cmake 比如: ...

  7. java导包

    下载响应的zip文件,就可以导入了,导入src目录也是可以的.

  8. spring: @Pointcut给重复的注解/切点定义表达式

    代码如下: package ch2.test; import org.aspectj.lang.annotation.AfterReturning; import org.aspectj.lang.a ...

  9. 将命令绑定到事件中(WPF)

    绑定到指定名称控件的——>指定属性上 <i:Interaction.Triggers>                            <i:EventTrigger E ...

  10. The import java.util cannot be resolved

    原因:项目buildpath不对 解决方案: 右键项目-------build path--------configuration build path 的选择libraries找到JRE(这个时候你 ...