em尺寸:所有现代浏览器下默认字体尺寸是16px,这时1em=16px。然后你人为的把body里面定义font-size:12px(把浏览器默认16px改小了),此刻1em=12px,如果0.8em实际等于12px*0.8;em的用处是你要整个网页字体统一变大变小你只要改body里面font-size的值就行了。
另外:em会继承父元素的字体大小,比如:
body{font-size: 16px}
p{font-size:0.75em}
span{font-size:2em}
我大小为16px
段落文字大小为12px(16*0.75)
我大小是2em,即24px,这里是相对父级字号*2的,而不是相对body里面的16px
Rem,上面你看到了,em相对父级,嵌套一多了算字体到底多大就很操蛋,所以有了Rem(浏览器支持还不是很理想),他只相对html或body的字体尺寸(默认还是16px,除非你自己用font-size定义为其他),没有了继承父级尺寸这个关系。
px 是像素(Pixel),这个好理解吧?em 是指当前元素所使用的字体中大写字母M的宽度。为什么要单独用M的宽度来表示呢?因为英文字体中有些是不等宽的字体,其中i的宽度最小,W的宽度最大,所以用M的宽度来做个代表,不过中文字体都是等宽的,没有这方面的麻烦。我们可以简单地把em理解为字体的大小,比如说当前元素的字体大小(font-size)是16px,那么1em=16px,1.5em=24px,依此类推。
rem与em类似,只不过它是以根元素(html)的字体大小作为基本单位的。
em和rem主要用于页面的弹性布局
1em并不是固定等于多少像素的,是根据元素的字体大小而定,如果是等宽字体,1em就是1个字符的宽度,如果是比例字体(只有英文字体才有)则1em等于英文大写字母“M”的宽度。操作方法如下:
1、首先新建一个html和css文档。
2、chrome默认是16px大小。
3、1em就是继承父元素不变。
4、2em这里就是32px。
5、1rem在这里也是16px,因为浏览器默认16px。