相信你们对像素这个名词并不陌生,接下来来介绍下这个单位的一些小知识点:
pixel 是 picture(图片)和element(元素)这两个词组成的.pixel不是绝对的天然长度单位,例如一样1 px的尺寸在不一样设备上的"天然长度"是不同的.当你放大一个图片后会发现图片是由一个个小方块组成,每一个小方块就是1px,放大的程度越大1px的天然长度越大. 所以一样的一个天然长度的图片里面包含的像素越多,这个图片就越清晰.css
相对于当前对象内文本的字体尺寸.也能够理解为是一个百分比单位, 1em=100%.那么来介绍下在css样式中em呈现的是什么样的效果吧:
若是当前子元素没有设置字体大小(浏览器默认字体大小为16px),那么子元素设置字体大小:font-size:1em;
,这时候子元素的字体大小就为父元素的100% x 16px= 16px; 以此类推,font-size:1.5em;
,子元素字体大小就为24px;html
p{ font-size:1.5em; } div{ font-size:1.5em; } <div> <p> 字体大小 </p> </div>
这里的 "字体大小"就是1.5 x 1.5 x 16=36px
父元素的字体大小会继承给子元素,可是继承的是px值,不是em的值.怎么理解呢?body{2em}
浏览器
<body> <div> <p></p> </div> </body>
那么body里面的子元素div 和 p 都是32px(不叠加)字体
虽然一样是相对于字体大小的百分比,与em类似,可是参照对象不一样.rem的参照对象不是父元素,所以不管父元素如何变化当前设置rem的元素字体大小并不会有响应.
rem是相对于根元素(也就是html)值改变的.当咱们书写html文档时,head和body 都是被<html></html>标签包裹的.
在css样式中咱们一样能够更改html的font-sizecode
html{ font-size:10px; } div{ font-size:2rem; }
此时,div的字体大小是20px;htm
对于font-size
来讲 这种作法是错误的,并不会响应.
可是line-height
除了有以上的单位设置之外,还能够不设置单位,直接书写数字.
在line-height中em 一样是相对于当前字体大小的一个比例,而且继承的是px固定值,子元素不会继承em的值.
可是line-height:2;
是能够继承的, 子元素继承这个后, line-height值是当前字体大小的两倍.对象