已合作成功的客户
遍及全国及海外
中国
杭州,绍兴,宁波,湖州,嘉兴,温州,台州,上海,北京,南京,苏州,常州,无锡,长沙,青岛,江西,台湾,南宁,海南,成都,哈尔滨,深圳,香港,沈阳 ...
海外
美国,加拿大,丹麦,澳大利亚,新加坡,法国,智利,日本,英国 ...
合作咨询
4001-355-360
CSS单位类型及使用场景详解
作者:admin
来源:lanyunwork
时间:2025-11-04
分享到:
CSS 单位主要可以分为以下几大类:
长度单位 - 用于定义宽度、高度、边距、字体大小等。
角度单位 - 用于变换(如旋转)和渐变。
时间单位 - 用于动画和过渡。
分辨率单位 - 用于媒体查询,针对高分辨率屏幕。
频率单位 - 用于听觉样式表(极少使用)。
特殊与函数型单位 - 如颜色单位、视口相对单位和计算函数。
下面我们重点介绍最常用和最重要的前四类以及颜色单位。
长度单位又分为绝对单位和相对单位。
绝对单位是固定大小的单位,在不同设备和环境下显示的大小基本一致。它们更适合用于打印媒体,在屏幕上使用较少。
px:像素。这是最常用但也最容易被误解的单位。在屏幕上,1px 通常对应显示器的一个物理像素点。但在高分辨率(Retina)屏幕上,CSS 的 1px 可能会对应多个物理像素,以确保尺寸的一致性。
示例:border: 1px solid #ccc; (细边框常用像素)
cm:厘米。
mm:毫米。
in:英寸。1in = 2.54cm = 96px。
pt:点。常用于排版和打印,1pt = 1/72in。
pc:派卡。1pc = 12pt。
相对单位的尺寸是相对于另一个参考值(如父元素字体大小、根元素字体大小或视口尺寸)来计算的,这使得它们非常强大,尤其适用于响应式设计。
%:百分比。总是相对于其父元素的相同属性的值。
示例:如果一个父元素的 width: 200px;,其子元素设置 width: 50%;,那么子元素的实际宽度就是 100px。
注意:对于 padding 和 margin,百分比是相对于父元素的 width(而不是高度)来计算的。
em:
当用于 font-size 属性时,1em 等于父元素的 font-size。
当用于其他属性(如 width, height, margin, padding)时,1em 等于当前元素自身的 font-size。
特点:具有继承和叠加效应。如果元素被多层嵌套,每一层的 em 值都会基于其父元素的字体大小计算,可能导致尺寸意外放大或缩小。
示例:
.parent { font-size: 16px; }
.child { font-size: 1.5em; } /* 计算为 16px * 1.5 = 24px */
.child { margin: 2em; } /* 如果自身 font-size 是 24px,则 margin 为 48px */
rem:根 em。始终相对于根元素(<html>) 的 font-size。这避免了 em 的嵌套问题,使得计算和预测更加容易。
默认情况下,根元素的 font-size 通常是 16px,所以 1rem = 16px。
最佳实践:在根元素上设置一个基准字体大小(如 62.5%,使得 1rem = 10px,方便计算),然后在整个网站中使用 rem 来定义尺寸。
示例:
html { font-size: 62.5%; } /* 此时 1rem = 10px */
.box { font-size: 1.6rem; } /* 计算为 16px */
.box { width: 30rem; } /* 计算为 300px */
视口相对单位:这些单位相对于浏览器视口(可视区域)的尺寸。
vw:视口宽度。1vw = 视口宽度的 1%。
vh:视口高度。1vh = 视口高度的 1%。
vmin:视口最小尺寸的 1%。取 vw 和 vh 中较小的那个。1vmin = min(1vw, 1vh)。
vmax:视口最大尺寸的 1%。取 vw 和 vh 中较大的那个。1vmax = max(1vw, 1vh)。
应用:非常适合创建全屏布局或元素,如全屏轮播图、标题等。
示例:
.hero-section {
width: 100vw; /* 宽度等于视口宽度 */
height: 100vh; /* 高度等于视口高度 */
}
.box {
font-size: 5vmin; /* 字体大小会随视口变化,确保在小尺寸方向上始终可读 */
}
ex 和 ch:
ex:相对于当前字体的字母 “x” 的高度。很少使用。
ch:相对于当前字体中数字 “0” 的宽度。在等宽字体布局中很有用。
主要用于 transform: rotate(); 和 linear-gradient() 等场景。
deg:度。一个完整的圆是 360deg。
示例:transform: rotate(45deg);
rad:弧度。一个完整的圆是 2π 弧度,约 6.2832rad。
grad:百分度。一个完整的圆是 400grad。
turn:圈。一个完整的圆是 1turn。
示例:transform: rotate(0.25turn); /* 等同于 90deg */
用于 transition-duration 和 animation-duration 等属性。
s:秒。
示例:transition: all 0.3s ease;
ms:毫秒。1000ms = 1s。
示例:animation-duration: 500ms; /* 等同于 0.5s */
主要用于媒体查询,针对高DPI(每英寸点数)屏幕提供高清晰度图像。
dpi:每英寸点数。
dpcm:每厘米点数。
dppx:每像素单位点数。这是最常用的单位,因为 CSS 像素是标准参考。
示例:为 Retina 屏幕(2x)提供高清图片。
@media (min-resolution: 2dppx) {
.logo {
background-image: url("logo@2x.png");
}
}
虽然不完全是“单位”,但它们是定义颜色值的不同方式。
关键词:如 red, blue, transparent(完全透明)。
十六进制:如 #ff0000(红色),#fff(白色的简写)。
RGB:rgb(255, 0, 0)。每个值在 0-255 之间。
RGBA:rgba(255, 0, 0, 0.5)。在 RGB 基础上增加了透明度通道(Alpha),值从 0(完全透明)到 1(完全不透明)。
HSL:hsl(120, 100%, 50%)。使用色相(Hue)、饱和度(Saturation)、亮度(Lightness)来表示颜色,更符合人类直觉。
HSLA:hsla(120, 100%, 50%, 0.3)。同样增加了透明度通道。
calc():计算函数。它允许在声明 CSS 属性值时执行计算,并可以混合使用不同的单位。
示例:
.sidebar {
width: calc(100% - 250px); /* 宽度总是视口宽度减去250像素 */
}
.box {
font-size: calc(1rem + 1vw); /* 动态字体大小,随视口变化 */
}
| 单位类型 | 推荐使用场景 |
|---|---|
rem |
字体大小、大多数布局尺寸(如 padding, margin)的首选,易于管理和实现响应式。 |
em |
需要相对于当前字体大小缩放的特例,如按钮的 padding 随按钮字体大小变化。 |
% |
容器内部布局,创建流式布局,与父元素宽度成比例。 |
vw/vh/vmin/vmax |
全屏布局、大标题字体、需要与视口大小紧密关联的元素。 |
px |
边框、阴影等需要绝对精确的细小样式。有时也用于固定尺寸的组件。 |
calc() |
需要混合不同单位进行复杂计算时,是实现灵活布局的强大工具。 |
希望这份详细的介绍能帮助你更好地理解和运用 CSS 中的各种单位!
获取方案