0%

关于em和line-height的备忘录

​ 点了点前端技能,现在在网上看到好多关于em和line-height的博客,不客气的说很多博客都是错误的,或者所谓的深入浅出都是不知所云,所以写一个备忘录来提醒自己。

关于line-height

line-height:2 和line-height:200%到底有什么差别

他们基于的标准都是一样的,都是基于自身的倍数。区别在于继承性上,当父元素用数值的话,子元素继承得到的都是这个数值 ,当父元素使用百分比,父元素会基于其百分比算出有多少px,然后在继承下去。 换个更容易理解的话叫做:看有没有单位(百分比也算单位),没有单位相当于继承系数,子元素继承系数后(根据自己的字体大小)算出自己的行高。有单位的话,父元素是计算出自己的行高,把具体的数值(像素)继承给子元素。请查看以下代码自行体会。

https://jsbin.com/fusinih/edit?html,css,output

关于em

em.rem都是相对字体的大小 em是相对当前元素字体的大小 只有当当前的font-size使用em做大小单位的时候是依据 父元素字体的大小来做的的。这个解释可以参考MDN。

以下是我的说明

因为em要基于当前的字体大小,当前的fontsize没设置大小,则字体大小只可以从父元素继承,自然就是父元素大小的倍数。