彻底弄懂css中单位px和em,rem的区别

html-css020

彻底弄懂css中单位px和em,rem的区别,第1张

px是你屏幕设备物理上能显示出的最小的一个点,这个点不是固定宽度的,不同设备上点的长宽、比例有可能会不同。假设:你现在用的显示器上1px宽=1毫米,但我用的显示器1px宽=两毫米,那么你定义一个div宽度为100px,你显示器上看这个div是10厘米,我显示器上看是20厘米。另外一个px点的长宽不一定是1:1的正方形,有的设备上长宽比是不一样的。

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。