03. CSS 单位 
标准单位 
CSS 定义了一些标准单位,下面是绝对单位:
| 单位 | 描述 | 
|---|---|
| px | 像素 | 
| cm | 厘米 | 
| mm | 毫米 | 
| in | 英寸 | 
| pt | 磅 | 
| pc | 派卡,大约是 16 个像素,或 1/6 英寸 | 
下面是相对单位:
| 单位 | 描述 | 
|---|---|
| em | 相对于父元素的字体大小 | 
| rem | 相对于根元素的字体大小 | 
| vw | 相对于视口宽度的百分比 | 
| vh | 相对于视口高度的百分比 | 
| ex | 相对于小写字母 x的高度 | 
| ch | 相对于数字 0的宽度 | 
| vmin | 相对于视口宽度和高度中的最小值 | 
| vmax | 相对于视口宽度和高度中的最大值 | 
新单位 
vw 和 vh 是两个常见单位,100vw 和 100vh 代表着视图窗口的宽和高。[1]
然而有一个问题,当我们使用 100vh 时,且有顶部地址栏或底部操作栏的时候,会出现溢出屏幕的情况:

为了解决这个问题,CSS工作组指定了视口的各种状态。
- 大视口:视口大小假设任何动态扩展和缩回的 UA 界面都将被缩回,单位为 lvh。
- 小视口:视口大小假设任何动态展开和缩回的 UA 界面都将展开,单位 svh。

除了大小视口之外,还有动态视口,动态考虑:
- 当动态工具栏展开时,动态视口的大小等于小视口的大小。
- 当动态工具栏缩回时,动态视口的大小等于大视口的大小。
其附带单位具有 dv 前缀:dvw、dvh、dvi、dvb、dvmin 和 dvmax。它们的大小被限制在 lv* 和 sv* 对应项之间。
总结如下表所示。
| 单位 | 描述 | 
|---|---|
| vi | 内联尺寸,英文一般为文字宽度,竖排文本则计算为高度 | 
| vb | 视口在块方向上的尺寸,英文一般为文字高度,竖排文本则为高度 | 
| vmin | 宽度和高度中的最小值 | 
| vmax | 宽度和高度中的最大值 | 
| lvw | 大视口宽度 | 
| lvh | 大视口高度 | 
| lvi | 大视口内联尺寸 | 
| lvb | 大视口块方向的尺寸 | 
| lvmin | 宽度和高度中的最小值,许多浏览器尚未支持 | 
| lvmax | 宽度和高度中的最大值,许多浏览器尚未支持 | 
| svw | 小视口宽度 | 
| svh | 小视口高度 | 
| svi | 小视口内联尺寸 | 
| svb | 小视口块方向的尺寸 | 
| svmin | 宽度和高度中的最小值,许多浏览器尚未支持 | 
| svmax | 宽度和高度中的最大值,许多浏览器尚未支持 | 
| dvw | 动态视口宽度 | 
| dvh | 动态视口高度 | 
| dvi | 动态视口内联尺寸 | 
| dvb | 动态视口块方向的尺寸 | 
| dvmin | 宽度和高度中的最小值,许多浏览器尚未支持 | 
| dvmax | 宽度和高度中的最大值,许多浏览器尚未支持 | 
- The large, small, and dynamic viewport units,https://web.dev/blog/viewport-units ↩︎