Skip to content

03. CSS 单位

标准单位

CSS 定义了一些标准单位,下面是绝对单位:

单位描述
px像素
cm厘米
mm毫米
in英寸
pt
pc派卡,大约是 16 个像素,或 1/6 英寸

下面是相对单位:

单位描述
em相对于父元素的字体大小
rem相对于根元素的字体大小
vw相对于视口宽度的百分比
vh相对于视口高度的百分比
ex相对于小写字母 x 的高度
ch相对于数字 0 的宽度
vmin相对于视口宽度和高度中的最小值
vmax相对于视口宽度和高度中的最大值

新单位

vwvh 是两个常见单位,100vw100vh 代表着视图窗口的宽和高。[1]

然而有一个问题,当我们使用 100vh 时,且有顶部地址栏或底部操作栏的时候,会出现溢出屏幕的情况:

viewport-overflow

为了解决这个问题,CSS工作组指定了视口的各种状态。

  • 大视口:视口大小假设任何动态扩展和缩回的 UA 界面都将被缩回,单位为 lvh
  • 小视口:视口大小假设任何动态展开和缩回的 UA 界面都将展开,单位 svh

vh

除了大小视口之外,还有动态视口,动态考虑:

  • 当动态工具栏展开时,动态视口的大小等于小视口的大小。
  • 当动态工具栏缩回时,动态视口的大小等于大视口的大小。

其附带单位具有 dv 前缀:dvwdvhdvidvbdvmindvmax。它们的大小被限制在 lv*sv* 对应项之间。

总结如下表所示。

单位描述
vi内联尺寸,英文一般为文字宽度,竖排文本则计算为高度
vb视口在块方向上的尺寸,英文一般为文字高度,竖排文本则为高度
vmin宽度和高度中的最小值
vmax宽度和高度中的最大值
lvw大视口宽度
lvh大视口高度
lvi大视口内联尺寸
lvb大视口块方向的尺寸
lvmin宽度和高度中的最小值,许多浏览器尚未支持
lvmax宽度和高度中的最大值,许多浏览器尚未支持
svw小视口宽度
svh小视口高度
svi小视口内联尺寸
svb小视口块方向的尺寸
svmin宽度和高度中的最小值,许多浏览器尚未支持
svmax宽度和高度中的最大值,许多浏览器尚未支持
dvw动态视口宽度
dvh动态视口高度
dvi动态视口内联尺寸
dvb动态视口块方向的尺寸
dvmin宽度和高度中的最小值,许多浏览器尚未支持
dvmax宽度和高度中的最大值,许多浏览器尚未支持

  1. The large, small, and dynamic viewport unitshttps://web.dev/blog/viewport-units ↩︎