Css单位中px、em和rem的区别?

html-css012

Css单位中px、em和rem的区别?,第1张

px 是像素(Pixel),这个好理解吧?

em 是指当前元素所使用的字体中大写字母M的宽度。为什么要单独用M的宽度来表示呢?因为英文字体中有些是不等宽的字体,其中i的宽度最小,W的宽度最大,所以用M的宽度来做个代表,不过中文字体都是等宽的,没有这方面的麻烦。我们可以简单地把em理解为字体的大小,比如说当前元素的字体大小(font-size)是16px,那么1em=16px,1.5em=24px,依此类推。

rem与em类似,只不过它是以根元素(html)的字体大小作为基本单位的。

em和rem主要用于页面的弹性布局

ch应该是一个鲜为人知的计算单位。

ch是一个相对于数字0的大小。

1ch 就是数字 0 的宽度。

比如定义一个3ch的宽度,那么久只能装下3个0。

重复一次:1ch 等于一个 0 的 宽度!宽度!宽度!

注意,是0的宽度,和0的高度无关。

比如

可以看到,是一个正方形,因为ch只等于0的宽度。

ch还有另一个规则:

ch 是一个相对单位,所谓相对,意思是 ch 会根据当前容器的 ****font-size**** 变化而变化。

如果字体不是等宽字体,这时的ch看起来就不止是一个英文字母的宽度了。

比如

可以看到,16个小写L,并没有超出8ch。

同时,如果容器中的内容是中英文结合的话,用ch做长度单也不是那么好使。

上面用到的几个CSS属性,是用来控制如果内容超出容器,就用省略号显示超出的部分。 【CSS】省略号

ch一般很少用得上,因为使用规则可能稍微有点复杂,而且通常需要 js 配合使用。

一般都会用em来代替ch~