博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
CSS单位em和rem
阅读量:6682 次
发布时间:2019-06-25

本文共 1150 字,大约阅读时间需要 3 分钟。

写过样式的都知道CSS是有单位的,想要写出还原设计稿的完美样式,离不开好的单位。现在CSS的单位有%、in、cm、mm、em、ex、pt、pc、px等原生单位,现在更有了rem、vh、vw、vmin、vmax等单位。

一般开发用px比较多,现在开发移动端rem用的也比较多,在这边就不讨论vh和vw与rem的比较。今天只说说em和rem具体的显示单位。

应该很多都知道rem是根据HTML元素设置的字体大小来定义单位,em是根据父元素设置的字体大小来设置,但是很多没有真的搞清楚这两个单位对应px单位到底是怎么对应的。

html{ font-size: 20px; }

这是em单位

当我们设置HTML字体大小为20px的时候,相当于1rem=20px,此时div的宽高就是100px,字体大小就是20px,当我们改变HTML字体大小的时候,div和字体大小也会跟着变。可以自己写一下这样的代码,很容易就知道rem是怎么换算的。

根据这个特性,我们就可以动态的设置HTML的字体大小,来自适应不同手机分辨率,当然,最好我们设置成能整十整百的计算,好比1rem=100px,而不是1rem=75px,这样方便写样式的时候计算。如果你觉得采用vs或者是sublime能有插件帮忙换算,那就当我没说。当然,现在的很多标注软件比如蓝湖和PXCooke也能帮你计算。

PC端最好不要使用rem,因为像Chrome最小字体单位是12px,可是默认大小是16px,不同浏览器会有不同的默认单位或者是最小字体单位,所以PC最好不要使用rem单位。

Em就相对复杂一点,em单位的解释是根据父元素。当我们没有设置字体大小的时候

这是em单位

默认的是浏览器默认字体大小,Chrome是16px。

当我们设置字体大小

这是em单位

复制代码

这时候字体就是30px。而且,当我们设置了div字体大小的时候,宽高使用em单位

这是em单位

复制代码

这时候div宽高分别是150px。

当我们再嵌套一个div的时候

这是em单位

复制代码

这时候p的字体大小就是20px,而且给这个div加宽高,也会根据20px来换算。

Em单位是优先根据自身的字体大小,如果没有就向上寻找最近父元素有设置字体大小来换算的。其实只要写一写上面的代码然后看一看浏览器显示的大小就很容易知道em和rem是根据上面来换算。

欢迎关注Coding个人笔记 公众号

转载于:https://juejin.im/post/5c501e675188250228005b88

你可能感兴趣的文章
ATM程序问题集
查看>>
遭遇ORA-00600: internal error code, arguments: [keltnfy-ldmInit], [46], [1], [], [], [], [], []
查看>>
java Socket 缓冲区与请求的关系
查看>>
Oracle 11gR2 使用 RMAN duplicate from active database 复制数据库
查看>>
自定义view的自定义属性的引用
查看>>
Exchange2013 Server 配置管理(二)
查看>>
基于mysql-mmm实现对mysql replication进行监控和故障迁移
查看>>
Scenario 5 –HP C7000 Virtual Connect SUS A/S Uplinks and LADP-FCoE-vSphere
查看>>
Android Support兼容包详解
查看>>
矫枉过正?Google降Chrome下载页PR值
查看>>
我的友情链接
查看>>
mysql 小技巧
查看>>
数据库主键冲突解决
查看>>
对象的3种运行模式
查看>>
windows7系统笔记本设置成虚拟WiFi热点(即“无线路由器”)
查看>>
IE 的浏览器模式和文本模式(一)
查看>>
StaticFilesServer静态文件服务器
查看>>
对SpringAop的思考之基于jdk的动态代理
查看>>
openstack学习笔记五 多节点部署之 rabbitmq信息中枢与元数据
查看>>
count(*),count(1)和count(主键)的区别
查看>>