导读:本期聚焦于小伙伴创作的《css中什么是相对长度单位,相对长度单位有哪些常见类型》,敬请观看详情,探索知识的价值。以下视频、文章将为您系统阐述其核心内容与价值。如果您觉得《css中什么是相对长度单位,相对长度单位有哪些常见类型》有用,将其分享出去将是对创作者最好的鼓励。

css中的相对长度单位是指长度值不是固定的绝对值,而是相对于某个参考基准来计算最终尺寸的单位,这类单位在响应式布局开发中应用十分广泛,能够根据参考基准的变化自动调整元素尺寸,适配不同的显示场景。

css中什么是相对长度单位,相对长度单位有哪些常见类型

相对长度单位的核心特点

相对长度单位和绝对长度单位最大的区别在于参考基准不同,绝对长度单位比如px是固定的像素值,不会随环境变化而改变,而相对长度单位的实际渲染尺寸完全依赖于参考基准的数值,常见的参考基准包括父元素的字体大小、根元素的字体大小、视口的尺寸等。这种特性让相对长度单位非常适合用来做响应式适配,不需要针对不同屏幕尺寸写多套固定的尺寸代码。

常见的css相对长度单位

1. em单位

em是相对当前元素的字体大小来计算的单位,如果当前元素没有设置字体大小,会继承父元素的字体大小作为参考基准。比如当前元素的字体大小是16px,那么1em就等于16px,2em就等于32px。

/* 父元素字体大小为16px */
.parent {
    font-size: 16px;
}
/* 子元素没有设置字体大小,继承父元素的16px,1em=16px */
.child {
    width: 10em; /* 实际宽度为160px */
    height: 5em; /* 实际高度为80px */
    font-size: 1.2em; /* 实际字体大小为19.2px */
}

需要注意的是,如果元素自身设置了font-sizeem单位,那么参考基准是父元素的字体大小,而如果元素的宽高、边距等属性使用em单位,参考基准是该元素自身的字体大小,这一点很容易混淆。

2. rem单位

rem是相对于根元素(也就是html元素)的字体大小来计算的单位,和em不同,它的参考基准是全局统一的,不会受到父元素字体大小的影响,使用起来更加可控。

/* 根元素字体大小设置为16px */
html {
    font-size: 16px;
}
/* 无论父元素字体大小是多少,1rem始终等于16px */
.box {
    width: 10rem; /* 实际宽度为160px */
    padding: 1rem; /* 实际内边距为16px */
}
/* 修改根元素字体大小后,所有rem单位的数值会同步变化 */
@media screen and (max-width: 768px) {
    html {
        font-size: 14px;
    }
}

很多响应式布局方案都会通过动态修改根元素的字体大小,配合rem单位来实现不同屏幕尺寸下的元素尺寸自适应,开发时只需要按照设计稿的尺寸换算成rem值即可。

3. 视口相对单位

视口相对单位是相对于浏览器视口尺寸来计算的单位,常见的包括vwvhvminvmax四种:

  • vw:相对于视口宽度的1%,视口宽度为100vw
  • vh:相对于视口高度的1%,视口高度为100vh
  • vmin:取视口宽度和高度中较小值的1%
  • vmax:取视口宽度和高度中较大值的1%
/* 元素宽度占满整个视口宽度 */
.full-width {
    width: 100vw;
}
/* 元素高度占满整个视口高度 */
.full-height {
    height: 100vh;
}
/* 字体大小随视口宽度变化,视口宽度1000px时,字体大小为30px */
.text {
    font-size: 3vw;
}

这类单位适合用来设置全屏元素、随视口变化的字体尺寸等场景,不需要依赖元素的字体大小作为参考。

4. 其他相对单位

除了上述常见的单位,还有exch两个相对单位,ex相对于当前字体的x高度,ch相对于当前字体的字符0的宽度,这两个单位的使用场景相对少一些,一般在处理文字排版时可能会用到。

相对长度单位的选择建议

开发时可以根据场景选择合适的相对长度单位:如果是需要跟随根元素字体大小变化的全局尺寸,优先选择rem;如果是组件内部的尺寸,跟随自身字体大小变化,可选择em;如果需要跟随视口尺寸变化,选择视口单位;固定不变的细节尺寸可以使用px

单位类型参考基准适用场景
em当前元素字体大小组件内部尺寸、内边距、字体大小
rem根元素字体大小全局响应式尺寸、布局宽度
vw/vh视口宽度/高度全屏元素、随视口变化的尺寸

css相对长度单位emremvw修改时间:2026-06-28 07:51:38

免责声明:​ 已尽一切努力确保本网站所含信息的准确性。网站内容多为原创整理与精心编撰,观点力求客观中立。本站旨在免费分享,内容仅供个人学习、研究或参考使用。若引用了第三方作品,版权归原作者所有。如内容涉及您的权益,请联系我们处理。
内容垂直聚焦
专注技术核心技术栏目,确保每篇文章深度聚焦于实用技能。从代码技巧到架构设计,为用户提供无干扰的纯技术知识沉淀,精准满足专业提升需求。
知识结构清晰
覆盖从开发到部署的全链路。AI、前端、编程、数据库、服务器、建站、系统层层递进,构建清晰学习路径,帮助用户系统化掌握开发与运维所需的核心技术。
深度技术解析
拒绝泛泛而谈,深入技术细节与实践难点。无论是数据库优化还是服务器配置,均结合真实场景与代码示例进行剖析,致力于提供可直接应用于工作的解决方案。
专业领域覆盖
精准对应开发生命周期。从前端界面到后端编程,从数据库操作到服务器运维,形成完整闭环,一站式满足全栈工程师和运维人员的技术需求。
即学即用高效
内容强调实操性,步骤清晰、代码完整。用户可根据教程直接复现和应用于自身项目,显著缩短从学习到实践的距离,快速解决开发中的具体问题。
持续更新保障
专注既定技术方向进行长期、稳定的内容输出。确保各栏目技术文章持续更新迭代,紧跟主流技术发展趋势,为用户提供经久不衰的学习价值。