CSS 单位总结
经典真题
px 和 em 的区别?
CSS 中有哪些单位?
首先,在 CSS 中单位分为两大类:绝对单位和相对单位。
绝对长度单位
绝对单位是固定的值,不会因为其他元素的大小而改变。常见的绝对单位有:
| 单位 | 名称 | 等价换算 |
|---|---|---|
| cm | 厘米 | 1cm = 96px/2.54 |
| mm | 毫米 | 1mm = 1/10th of 1cm |
| Q | 四分之一毫米 | 1Q = 1/40th of 1cm |
| in | 英寸 | 1in = 2.54cm = 96px |
| pc | 十二点活字 | 1pc = 1/16th of 1in |
| pt | 点 | 1pt = 1/72th of 1in |
| px | 像素 | 1px = 1/96th of 1in |
这些值中的大多数在用于打印时比用于屏幕输出时更有用。例如,我们通常不会在屏幕上使用 cm。
唯一一个经常使用的值,估计就是 px。
相对长度单位
相对长度单位相对于其他一些东西,比如父元素的字体大小或者视图端口的大小。
使用相对单位的好处是,经过一些仔细的规划,我们可以使文本或其它元素的大小与页面上的其他内容相对应。
下面是 web 开发中一些最有用的单位:
| 单位 | 相对于 |
|---|---|
| em | 在 font-size 中使用是相对于父元素的字体大小 |
| 在其它属相中是相对于自身的字体大小,如 width | |
| ex | 相对于小写字母 x 的高度 |
| ch | 相对于数字 0 的宽度 |
| lh | 相对于当前元素的 line-height |
| rem | 始终相对于根元素(html)的字体大小 |
| vw | 相对于视口(viewport)的宽度。1vw 等于视口宽度的 1% |
| vh | 相对于视口(viewport)的高度。1vh 等于视口高度的 1% |
| vmin | 相对于视口(viewport)的较小尺寸。1vmin 等于视口较小尺寸的 1% |
| vmax | 相对于视口(viewport)的较大尺寸。1vmax 等于视口较大尺寸的 1% |
上面的单位中,常用的有 em、rem、vw、vh。
接下来看一看 em 和 rem 的区别。
em 和 rem 相对于 px 更具有灵活性,更适用于响应式布局。
它们的区别用一句话概括就是:
em 是相对于自身字体大小的单位,而 rem 是相对于根元素(html)字体大小的单位。
真题解答
px 和 em 的区别?
px 即 pixel 像素,是相对于屏幕分辨率而言的,是一个绝对单位,但是具有一定的相对性。因为在同一设备上每个设备像素所代表的物理长度是固定不变的(绝对性),但在不同设备间每个设备像素所代表的物理长度是可以变化的(相对性)。
em 是相对长度单位,具体的大小要相对于父元素来计算,例如父元素的字体大小为 40px,那么子元素 1em 就代表字体大小和父元素一样为 40px,0.5em 就代表字体大小为父元素的一半即 20px。
