em和rem的理解

之前对于这个内容有点模糊,现在总结一下。


em是根据父类的大小调整,根据代码举例说明

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
	<style type="text/css">
		body{
			font-size: 100%;
		}
		#parent{
			font-size: 1.1em;
		}
		#child{
			font-size: 2em;
		}
		#div2{
			font-size: 2em;
		}
	</style>
</head>
<body>
	<div id="parent">
		parent
		<div id="child">child</div>
	</div>
	<div id="div2">div2</div>
</body>
</html>
我们设置body的字体为100%,也就是默认字体16px
parent的字体大小为1.1em,也就是默认字体的1.1倍大小

div2的字体大小为2em,也就是默认字体的2倍大小

对于child的字体大小,当然不是默认字体的2倍大小。因为em只是根据自己的父类调整,并不是祖先类。所以child的字体大小为父类的两倍,也就是2.2em。也就是默认字体的2.2倍大小。效果图如下:



由于em根据父类的特征,许多程序开发人员觉得很麻烦,所以就引入了rem。rem是始终相对于body。也就是写2rem,不管父类是多少,都是默认字体的两倍大小。

既然rem怎么好,按照道理em应该被淘汰了啊,可是为什么仍然存在呢?主要原因是因为曾经的ie7和ie8不支持rem。不过现在可以大胆的使用rem了,再也不用担心父类的字体大小是多少了。

其实当时为了解决ie不支持的问题,有大神也写过一些脚本,只是不愿意为了这么一点问题,让页面多加载一个脚本
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值