跳到主要内容

单位

数值

在 CSS 中,数值是有上下文的 。比如对于 line-height ,如果没有明确单位,则默认为比率。

​​line-height 建议不明确单位,使用比率。这是因为在一些情况中,font-size 会被继承,而 line-height 大小应当与 font-size 相关,字体才不会看起来奇怪。

还有这些场景:

  • filter: sepia(0.5) 墨汁色滤镜 50%

  • opacity: 0.5 透明度设为 50%

  • rgb(50, 50, 50) 数值范围为 0-255

  • transform: scale(1.2) 缩放 120%

百分数

​当使用百分数单位时,应当了解百分数是如何计算的。比如:

  • width 以父节点的宽度计算百分值。

  • 使用 marginpadding 也是依照父节点的宽度。

在这个例子中,div p 宽度会先计算 50% ,然后再缩为 10% :

div {
width: 300px;
height: 100px;
}

div p {
width: 50%; /* 计算结果为: 150px */
transform: translateX(10%); /* 15px */
}

长度单位

绝对长度 单位有:

  • cm(厘米)、mm(毫米)

  • 1in(英尺)= 2.54cm = 96px

  • 1pc(派卡)= 1/6in

  • 1pt(点)= 1/72in

  • 1px(像素)= 1/96in

相对长度 单位有:

  • em :字体高度(默认为 16px

  • ex :字母 x 的高度,或者相当于 0.5em

  • cap :大写字母高度

  • ch :数字 0 的宽度(窄宽字体)

  • ic :汉字 的宽度(全宽字体)

  • rem :根元素的字体高度(默认 16px

  • lh :元素的行高

  • rlh :根元素的行高

​​使用相对长度单位调整文本大小可以响应用户偏好(即系统文字大小或父元素字体大小)。

视窗( viewport )相对单位:

  • vwvh :1% 的视窗宽高度

  • vminvmaxvwvh 中的最小最大值

  • vi :行方向的 1% 视窗大小

  • vb :块方向的 1% 视窗大小

其他单位

  • 角度单位:degradgradturn( = 360deg

  • 分辨率单位:dpi(可以用在 min-resolution 上)


参考

Sizing Units,Learn CSS - web.dev

CSS的值与单位 - MDN

What does 100% mean in CSS? - wattenberger

So, How Much Is An Em? - scannerlicker