rem是指根元素的字体大小,默认情况下html的字体大小为:16px=1rem。而em是相对单位,是基于它的祖先元素计算的。

如果我们不指定html和body的字体大小,要得到12px的rem需要这样计算:12/16=0.75rem

下面这张图em和px的转换关系是基于父元素是16px的情况下,所以rem也是这样的结果。

但是。这样换算总归有点麻烦,我们总不能写px的时候时刻被一张转换表或者计算器。

我们可以修改根元素html的字体:16*62.5%=10.4px ,约10px 现在,px与rem的关系是这样的:10px=1rem。

这样,我们要得到12px就简单多了:12px=1.2rem

通常,我们会给页面一个默认的12px字体,这样写:

html{font-size:62.5%}

body{font-size:1.2rem}

这一种写法的问题是,因为chrome的最小字体是12px,当我们设置html的font-size为62.5%时,计算出来的字体是10px,但是实际是12px,因此在应用过程中发现,我们使用rem的结果会比估计的篇大一点。

可以采用唯品会的这种写法:

html{font-size:312.5%;}
body{font-size:0.24rem}

NOTICE

在PC上调试时,需要使用Chrome浏览器,因为在使用360急速模式下,可能会发生下面的bug:

看下面的例子:

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width,initial-scale=1.0,maximum-scale=1.0,user-scalable=no">
<style>
html{font-size: 62.5%}
body{font-size:1.2rem;}
</style>
<title>em rem</title>
</head>
<body>
<p>我不是12像素</p>
</body>
</html>

预览结果:

查看控制台computed样式:

16*1.2=19.2 ,可见,body中rem还是基于16px计算的,而不是10px。

但是对于其他元素而言,rem又是10px了,看第二个例子:

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width,initial-scale=1.0,maximum-scale=1.0,user-scalable=no">
<style>
html{font-size: 62.5%}
body{font-size:1.2rem;}
</style>
<title>em rem</title>
</head>
<body>
<p>我不是12像素</p>
<p style="font-size:1.2rem">我真的是12像素</p>
</body>
</html>

结果如下:

最新文章

  1. 【荐】PHP操作MongoDB GridFS 存储文件,如图片文件
  2. Unity字节序问题
  3. 经典的javascript函数实例,css的. #区别
  4. 获取Ip地址
  5. windows与linux之间文件的传输方式总结(转)
  6. 用c#开发微信 (15) 微活动 1 大转盘
  7. 15系统函数&amp;数据类型转换(必学)-大话数据库视频教程
  8. iOS 语言切换、本地化,国际化
  9. Android源码剖析之Framework层进阶版(Wms窗口管理)
  10. python中的生成器
  11. 问题:glGenBuffers()函数没有定义怎么办
  12. java基础(十四)集合(一)
  13. HDU 5781 ATM Mechine
  14. Spring Cloud在国内中小型公司能用起来吗?
  15. 简单使用zabbix监控nginx是否存活
  16. python SMTP 发送邮件 阿里企业邮箱、163邮箱 及535错误
  17. Visual Studio(C#)快捷键与Eclipse(JAVA)快捷键对比
  18. Spring WebSocket踩坑指南
  19. Python爬取简书主页信息
  20. RESTORE 无法处理数据库 &#39;Students&#39;,因为它正由此会话使用。建议在执行此操作时使用 master 数据库。

热门文章

  1. (转)定制findbugs规则
  2. LoadRunner监控Linux与Windows方法
  3. Linux:普通用户不能执行ifconfig命令问题
  4. the art of seo(chapter seven)
  5. 阿里云数据库产品HybridDB简介——OLAP数据库,支持行列混合存储,基于数据库Greenplum的开源版本,并且吸收PostgreSQL精髓
  6. 优化js的执行
  7. jmeter解压后启动jmeter.bat报错:Not able to find java executable or version
  8. SVN与CVS比较-怎度网
  9. 关于SelectObject之后是否要恢复之前的GDI对象
  10. bzoj4247挂饰——DP