css大小单位px em rem的转换和详解

PX特点

1. IE无法调整那些使用px作为单位的字体大小;

2. 国外的大部分网站能够调整的原因在于其使用了em或rem作为字体单位;

3. Firefox能够调整px和em,rem,但是96%以上的中国网民使用IE浏览器(或内核)。

px像素(Pixel)。相对长度单位。像素px是相对于显示器屏幕分辨率而言的。(引自CSS2.0手册)

em是相对长度单位。相对于当前对象内文本的字体尺寸。如当前对行内文本的字体尺寸未被人为设置,则相对于浏览器的默认字体尺寸。(引自CSS2.0手册)

任意浏览器的默认字体高都是16px。所有未经调整的浏览器都符合: 1em=16px。那么12px=0.75em,10px=0.625em。为了简化font-size的换算,需要在css中的body选择器中声明Font-size=62.5%,这就使em值变为 16px*62.5%=10px, 这样12px=1.2em, 10px=1em, 也就是说只需要将你的原来的px数值除以10,然后换上em作为单位就行了。

EM特点

1. em的值并不是固定的;

2. em会继承父级元素的字体大小。

所以我们在写CSS的时候,需要注意两点:

1. body选择器中声明Font-size=62.5%;

2. 将你的原来的px数值除以10,然后换上em作为单位;

3. 重新计算那些被放大的字体的em数值。避免字体大小的重复声明。

也就是避免1.2 * 1.2= 1.44的现象。比如说你在#content中声明了字体大小为1.2em,那么在声明p的字体大小时就只能是1em,而不是1.2em, 因为此em非彼em,它因继承#content的字体高而变为了1em=12px。

rem特点

rem是CSS3新增的一个相对单位(root em,根em),这个单位引起了广泛关注。这个单位与em有什么区别呢?区别在于使用rem为元素设定字体大小时,仍然是相对大小,但相对的只是HTML根元素。这个单位可谓集相对大小和绝对大小的优点于一身,通过它既可以做到只修改根元素就成比例地调整所有字体大小,又可以避免字体大小逐层复合的连锁反应。目前,除了IE8及更早版本外,所有浏览器均已支持rem。对于不支持它的浏览器,应对方法也很简单,就是多写一个绝对单位的声明。这些浏览器会忽略用rem设定的字体大小。下面就是

一个例子:

p {font-size:14px; font-size:.875rem;}

注意:选择使用什么字体单位主要由你的项目来决定,如果你的用户群都使用最新版的浏览器,那推荐使用rem,如果要考虑兼容性,那就使用px,或者两者同时使用。

在这里可以查看各种浏览器对rem的是否兼容,http://caniuse.com/#search=rem

rem是相对于根元素,这样就意味着,我们只需要在根元素确定一个参考值,这个参考值设置为多少,完全可以根据您自己的需求来定。

一般浏览器默认的字体大小是16px,下面是默认16px与rem之间的转换关系:

| px | rem |

------------------------

| 12 | 12/16 = .75 |

| 14 | 14/16 = .875 |

| 16 | 16/16 = 1 |

| 18 | 18/16 = 1.125 |

| 20 | 20/16 = 1.25 |

| 24 | 24/16 = 1.5 |

| 30 | 30/16 = 1.875 |

| 36 | 36/16 = 2.25 |

| 42 | 42/16 = 2.625 |

| 48 | 48/16 = 3 |

-------------------------

为了方便计算,时常将在元素中设置font-size值为62.5%:

相当于在中设置font-size为10px,此时,上面示例中所示的值将会改变:

| px | rem |

-------------------------

| 12 | 12/10 = 1.2 |

| 14 | 14/10 = 1.4 |

| 16 | 16/10 = 1.6 |

| 18 | 18/10 = 1.8 |

| 20 | 20/10 = 2.0 |

| 24 | 24/10 = 2.4 |

| 30 | 30/10 = 3.0 |

| 36 | 36/10 = 3.6 |

| 42 | 42/10 = 4.2 |

| 48 | 48/10 = 4.8 |

-------------------------

由于rem是css3中的一个属性,很多人首先关注的就是浏览器对他的支持度,我截了一张caniuse对rem属性的兼容表:

css中的单位换算_css大小单位px em rem的转换和详解相关推荐

  1. html中auto是设置什么的,css中margin:auto什么意思?margin:auto属性的用法详解

    我们都知道使用margin:auto可以让元素水平居中的.但你有没有想过使用margin:auto可以让元素水平居中的原因,要回答这个问题,我们首先需要看一下margin:auto的工作原理.auto ...

  2. html 字号和像素的关系,一文搞懂CSS中的字体单位大小(px,em,rem...)

    在学习的过程中,发现CSS有很多可以形容单位的尺寸.比方px,em,rem,vw等等.平常也没有深究,一来是没时间,二来是在我学习清单中优先级过低.一直想彻底弄明白,一直耽搁到现在.现在花上一点时间来 ...

  3. css样式中的vw什么意思,css中vw指的是什么单位

    css中vw指的是什么单位 发布时间:2020-12-16 10:46:00 来源:亿速云 阅读:66 作者:小新 这篇文章主要介绍了css中vw指的是什么单位,具有一定借鉴价值,需要的朋友可以参考下 ...

  4. CSS单位--px,em,rem,rpx区别

    国内的设计师大都喜欢用px,而国外的网站大都喜欢用em和rem,那么三者有什么区别,又各自有什么优劣呢? Px PX特点 1. IE无法调整那些使用px作为单位的字体大小: 2. 国外的大部分网站能够 ...

  5. html移动端怎么做城市选择,移动端页面单位的选择(px, em, rem, vw)

    px, em, rem的区别: px:绝对字体大小 em:基于一个基数来计算出相对字体大小.(移动端用的少) rem:基于根节点(html)的字体大小来计算. vw:可视区宽度单位.1vw等于可视区宽 ...

  6. 移动端页面单位的选择(px em rem)

    移动端页面单位的选择(px em rem) 绝对单位:  px 相对单位:  rem  em em具有继承性  继承自直接父类  所以说在移动端很少用 浏览器默认的字体大小 16px  那么 1em= ...

  7. 网页布局中的 px,em,rem,pt

    网页布局中的 px,em,rem,pt 设备像素:也叫物理像素,显示设备上最微小的物理部件. 比如 iphone 5:640 x 1136px. 不同的机型有不同的设备像素,固定死的. 这里需要讲一下 ...

  8. 认识css长度单位 px % em rem vh vw

    目录 长度单位 px % em rem vh.vw 总结 长度单位 在日常的项目开发,在使用css样式进行时布局的时候,我们常常用到px.%.em这三个单位.CSS3开始,浏览器新增加了rem.vh. ...

  9. Sql Server 中 GAM、SGAM、PAM、IAM、DCM 和 BCM 的详解与区别

    Sql Server 中 GAM.SGAM.PAM.IAM.DCM 和 BCM 的详解与区别 GAM.SGAM.PAM.IAM.DCM 和 BCM 都是 SQL Server 中用来管理空间分配的一些 ...

最新文章

  1. Aspx页面生命周期(转)
  2. python 按钮事件_从django vi中的按钮获取click事件
  3. netty 管道和handler的加载和处理流程
  4. 机器学习(part2)--线性方程组的列表达
  5. a4纸网页打印 table_打印模板不愁人,你还在打印单调的A4纸吗?
  6. 最新版MySQL在MacOS上的实践!
  7. 如何用r语言搜集报表_基迪奥免费小课堂——如何用R语言绘制GSEA plot
  8. saltstack 模型与认证通信原理
  9. 利用新浪api获取ip归属地
  10. 杨中科:我的大学生活
  11. iOS获取DSYM文件
  12. 服务器被入侵了怎么办
  13. 关于ttime的序列化存储及读取的方法
  14. 汉诺塔python创新设计大赛_机械创新设计大赛官网
  15. 怎么把excel表格转换成word格式
  16. Firebase 教程 —— 一个实时聊天室
  17. 线性代数一些基础概念
  18. 几何公差之什么是被测要素?被测要素有哪些类型?
  19. EXCEL 兼容性的问题
  20. Linux 文件服务器之二 SAMBA服务器

热门文章

  1. pytorch dropout_PyTorch初探MNIST数据集
  2. java 读取list文本_【java基础】读取本地文件赋给Bean或list、Map
  3. 里怎么做页眉页脚_这年头县城里在家做的电商利润怎么样
  4. sip.conf配置详情
  5. Linux操作系统内核启动参数详细解析
  6. PB编译错误:Mismatched time stamp on .rel file for module nk.exe requesting kernel fixup. Valid .rel file
  7. linux 计划任务 实例,计划任务 cron 的配置和实例
  8. 【转】C#搭建Oauth2.0认证流程以及代码示例
  9. 使用VS code 创建 Azure Functions,从blob触发,解析,发送至Service Bus
  10. Sharepoint学习笔记—ECM系列--3 从.CSV文件导入术语集(Term Sets)