在 CSS 中,值和单位很重要,因为它们决定了网页上元素的大小、比例和位置。
单位,定义用于指定值的测量系统。CSS 提供了许多不同的单位来表示 长度和度量。CSS 单元用于指定页面元素或其内容的属性大小。
在 CSS 中,有许多方法可以指定和测量长度。它用于指定边距、填充、字体大小、宽度、高度、边框等。
例如 font-size: 50px,这里的数字 50 有一个后缀 px,即像素,它是一个 CSS 测量单位。
下表显示了我们主要在 CSS 样式中使用的不同类型的值和单位:
数据类型 | 描述 | 示例 |
---|---|---|
<integer> | 表示整数 | 55, -55, etc. |
<number> | 表示十进制数。它可能有也可能没有小数点。 | 1.5, 234, -1.5, etc. |
<dimension> | 表示一个<number>,并附加了一个单元。还包括值类型,例如<length>, <angle>, <time> and <resolution> | 5px, 30deg, 2s, 2.5dpi |
<percentage> | 表示其他值的分数,即它始终相对于其他值。 | 80%, 25%, etc. |
长度单位
长度单位可分为两种类型:
- 绝对单位
- 相对单位
绝对长度单位
这些单位被归类为固定长度单位,这意味着用绝对单位指定的长度在屏幕上保持精确、不变的大小。
当浏览器具有有关屏幕属性、正在使用的打印机或其他适当的用户代理的全面信息时,这些单元被证明非常有效。
下表包含所有类型的绝对单位:
单位 | 描述 | 等效值 | 示例 |
---|---|---|---|
mm | 指毫米,用于指定以毫米为单位的测量值。 | 1mm = 1/10th of 1cm | font-size: 10mm; |
cm | 指厘米,用于指定以厘米为单位的测量值。 | 1cm = 37.8px = 25.2/64in | font-size: 5cm; |
Q | 指四分之一毫米,用于指定以厘米为单位的测量值。. | 1Q = 1/40th of 1cm | font-size: 5Q; |
in | 指英寸,用于指定以英寸为单位的度量单位。 | 1in = 2.54cm = 96px | font-size: 1in; |
pt | 指点,用于指定以磅为单位的度量值。. | 1pt = 1/72 of 1in | font-size: 20pt; |
pc | 指派卡,用于指定派卡的测量值。 | 1pc = 1/6th of 1in | width: 6pc; |
px | 指像素,用于指定以像素为单位的度量值。. | 1px = 1/96th of 1in | font-size: 15px; |
绝对单位 对于响应能力不是优先事项的项目来说很有价值。但是,它们对响应式网站不太有益,因为它们不会在屏幕尺寸发生变化时进行调整。
CSS 测量单位 - 使用 mm、cm、in、Q
以下是绝对单位(mm、cm、in、Q)的示例:
CSS 测量单位 - 使用 px、pt、pc
以下是绝对单位(px、pt、pc)的示例:
相对长度单位
相对长度单位之所以被称为相对长度单位,是因为它们是相对于其他元素来测量的。
相对单位非常适合设置响应式网站的样式,因为它们可以根据窗口大小或父元素按比例调整。这些单位定义了相对于其他长度属性的长度。
下表包含所有类型的相对单位:
单位 | 描述 | 示例 |
---|---|---|
em | 相对于元素的字体大小。 | font-size: 4em; |
ex | 相对于当前字体的 x 高度。 | font-size: 4ex; |
ch | 相对于“0”的宽度。 | font-size: 4ch; |
rem | 相对于根元素的字体大小。 | font-size: 2rem; |
lh | 相对于元素的行高。 | font-size: 4lh; |
rlh | 相对于根元素的行高。 | font-size: 4rlh; |
vh | 相对于视口的高度。1vh = 视口高度的 1% 或 1/100。 | font-size: 4vh; |
vw | 相对于视口的宽度。1vW = 视口宽度的 1% 或 1/100。 | width: 4vw; |
vmin | 相对于视口的较小尺寸。1vmin = 视口较小尺寸的 1% 或 1/100。 | width: 4vmin; |
vmax | 相对于视口的较大尺寸。1vMax = 视口较大尺寸的 1% 或 1/100。 | width: 4vmax; |
vb | 相对于初始包含块在根元素的块轴方向上的大小。1vb = 包含块大小(块轴)的 1%。 | font-size: 4vb; |
vi | 它相对于初始包含块在根元素的内联轴方向上的大小。1vb = 包含块大小的 1%(内联轴)。 | font-size: 4vi; |
svw, svh | 相对于较小视口的宽度和高度。1SVW = 较小视口宽度的 1% 或 1/100,1SVH = 较小视口高度的 1% 或 1/100。 | width: 40svw; height: 40svh; |
lvw, lvh | 相对于较大视口的宽度和高度。1lvW = 较大视口宽度的 1% 或 1/100,1lvh = 较大视口高度的 1% 或 1/100。 | width: 40lvw; height: 40lvh; |
dvw, dvh | 相对于动态视口的宽度和高度。1DVW = 动态视口宽度的 1% 或 1/100,1DVH = 动态视口高度的 1% 或 1/100。 | width: 40dvw; height: 40dvh; |
CSS 测量单位 - em Unit
此单位设置相对于元素的字体大小的大小:
CSS 测量单位 - ex Unit
此单位设置相对于当前字体的 x 高度的大小:
CSS 度量单位 - ch Unit
此单位设置所选字体中“0”(零)字符相对于宽度的大小。它主要用于创建随字体大小缩放的响应式设计:
在下面的示例中,我们将输入宽度设置为 10ch(这意味着它将显示 10 个字符)。尝试更改 font-size 值,看看输入如何仍然显示 10 个字符或数字。
CSS 测量单位 - rem 单位
此单元设置相对于根元素(通常是 HTML 元素本身)的字体大小的大小:
CSS 测量单位 - lh 和 rlh 单位
LH 单位设置相对于元素的行高度的大小。
RLH 单位设置相对于根元素的行高的大小。
以下示例演示了 lh 和 rlh 单位的用法(尝试将 font-size 更改为 10px、2em 或 300%;在正文> div:first-of-type):
CSS 测量单位 - vh 单位和 vw 单位
VH(视口高度)单位设置相对于视口高度的大小。1vh = 视口高度的 1% 或 1/100。
VW(视口宽度)单位设置相对于视口宽度的大小。1vW = 视口宽度的 1% 或 1/100。
例如,我们将宽度设置为 20vw,将高度设置为 20vh。假设视口的宽度和高度分别为 1200px 和 1000px。在这种情况下,20vw 的值为 240px,20vh 的值为 200px。
CSS 度量单位 - vmin(视口最小值)和 vmax(视口最大值)单位
VMIN(视口最小值)单位设置相对于视口的较小尺寸的大小。1vmin = 视口较小尺寸的 1% 或 1/100。例如,如果视口宽 1000 像素,高 800 像素。如果我们将元素的宽度设置为 30vmin,它将是高度的 30%。所以 800px 的 30% 是 240px。
Vmax (Viewport maximum) 单位设置相对于视口的较大尺寸的大小。1vMax = 视口较大尺寸的 1% 或 1/100。例如,如果视口宽 1000 像素,高 800 像素。如果我们将元素的宽度设置为 30vmax,它将是宽度的 30%,即 300px。
CSS 度量单位 - vb 单位
此单元在根元素的块轴方向上设置相对于初始包含块的大小的大小。1vb = 包含块大小(块轴)的 1%:
CSS 测量单位 - vi Unit
此单元在根元素的内联轴方向上设置相对于初始包含块的大小的大小。1vi = 包含块大小的 1%(内联轴):
以下示例演示如何使用 <resolution> 数据类型,其中图像分辨率设置为 500dpi:
示例 - 百分比
百分比值始终与另一个值相关设置。例如,当百分比值作为元素的高度或宽度传递时,它将作为父元素的高度或宽度的百分比进行计算。
让我们看一个例子来更好地理解这一点。在这里,一个百分比值被传递给元素的高度:
让我们再看一个使用百分比的例子,其中列表的嵌套值是根据父元素 font-size 的值计算的:
有些属性接受长度或百分比值,有些属性只接受长度。如果允许的值指示 <length-percentage>,则传递的值可以是 length 或 percentage;当允许的值指示 <length>时,传递的值应仅为 length,而不是百分比。
示例 - 数字
CSS 的一些属性接受值类型为数字,而不附加任何单元。属性,例如不透明度、行高等。
例如,不透明度的值范围为 0 到 1。
下面是一个不透明度示例:
以下是行高的示例: