css相对长度单位有哪些?常用相对单位em和rem怎么使用

来源:站长素材作者:北京网站建设头衔:草根站长
导读:本期聚焦于小伙伴创作的《css相对长度单位有哪些?常用相对单位em和rem怎么使用》,敬请观看详情,探索知识的价值。以下视频、文章将为您系统阐述其核心内容与价值。如果您觉得《css相对长度单位有哪些?常用相对单位em和rem怎么使用》有用,将其分享出去将是对创作者最好的鼓励。

在CSS的样式设置中,长度单位是定义元素尺寸、间距、字体大小等属性的基础,相对长度单位指的是相对于其他长度值来计算最终尺寸的单位,相比绝对长度单位有更好的适配性,适合响应式页面开发。

css相对长度单位有哪些?常用相对单位em和rem怎么使用

CSS常见相对长度单位汇总

CSS规范中定义的相对长度单位主要有以下这些,不同单位的参照基准存在差异:

  • em:相对于当前元素的字体大小计算
  • rem:相对于根元素(html元素)的字体大小计算
  • ex:相对于当前字体的x-height高度,即小写字母x的高度
  • ch:相对于当前字体的字符0的宽度
  • vw:相对于视口宽度的1%
  • vh:相对于视口高度的1%
  • vmin:相对于视口宽度和高度中较小的那个的1%
  • vmax:相对于视口宽度和高度中较大的那个的1%
  • %:相对于父元素的对应属性值计算

em单位详解

em的计算规则

em单位的计算基准是当前元素自身的字体大小,如果当前元素没有设置字体大小,会继承父元素的字体大小,直到找到根元素的字体大小作为最终基准。默认情况下,浏览器的根元素字体大小是16px,所以1em在默认状态下等于16px。

em使用示例

下面通过一个嵌套结构的案例展示em的计算逻辑:

/* 根元素默认字体大小16px */
html {
    font-size: 16px;
}
/* 父元素设置字体大小为20px,1em=20px */
.parent {
    font-size: 20px;
    width: 10em; /* 10 * 20px = 200px */
    padding: 1em; /* 1 * 20px = 20px */
}
/* 子元素未设置字体大小,继承父元素的20px,1em=20px */
.child {
    width: 5em; /* 5 * 20px = 100px */
    margin: 0.5em; /* 0.5 * 20px = 10px */
}
/* 子元素单独设置字体大小为24px,1em=24px */
.child-custom {
    font-size: 24px;
    height: 2em; /* 2 * 24px = 48px */
}

em的使用注意事项

em单位存在继承传递的问题,当嵌套层级较多时,每一层的em计算基准都会变化,容易出现尺寸计算不符合预期的情况,需要逐层确认字体大小的继承关系。

rem单位详解

rem的计算规则

rem是root em的缩写,计算基准始终是根元素(html元素)的字体大小,无论元素嵌套多少层,只要根元素的字体大小不变,1rem的数值就固定不变。默认状态下根元素字体大小16px,1rem=16px。

rem使用示例

下面的案例展示rem的固定基准特性:

/* 根元素设置字体大小为16px,1rem=16px */
html {
    font-size: 16px;
}
/* 父元素字体大小变化不影响rem的计算 */
.parent {
    font-size: 20px;
    width: 10rem; /* 10 * 16px = 160px */
    padding: 1rem; /* 1 * 16px = 16px */
}
/* 子元素无论嵌套多少层,rem都基于根元素计算 */
.child {
    font-size: 24px;
    width: 5rem; /* 5 * 16px = 80px */
    margin: 0.5rem; /* 0.5 * 16px = 8px */
}

rem的响应式适配用法

实际项目中通常会结合媒体查询修改根元素的字体大小,实现整体页面的响应式适配,示例如下:

/* 基准:视口宽度375px时,根字体大小16px */
html {
    font-size: 16px;
}
/* 视口宽度大于768px时,根字体大小调整为18px */
@media screen and (min-width: 768px) {
    html {
        font-size: 18px;
    }
}
/* 视口宽度大于1200px时,根字体大小调整为20px */
@media screen and (min-width: 1200px) {
    html {
        font-size: 20px;
    }
}
/* 所有尺寸用rem设置,根字体变化时会整体缩放 */
.container {
    width: 20rem;
    padding: 1rem;
}

em和rem的区别对比

二者核心差异在于计算基准不同,具体对比如下:

对比项emrem
计算基准当前元素的字体大小,继承父元素字体大小根元素(html)的字体大小
嵌套影响嵌套层级多时计算复杂,容易出错不受嵌套层级影响,计算简单统一
适配灵活性适合单个组件内部的相对尺寸设置适合整个页面的响应式尺寸统一适配
默认数值默认1em=16px(继承根元素字体大小)默认1rem=16px(根元素默认字体大小)

使用建议

如果是开发组件库或者单个独立模块,需要模块内部尺寸相对自身字体大小调整,可以优先使用em单位;如果是开发整个响应式页面,需要所有尺寸基于统一基准缩放,优先使用rem单位,也可以二者结合使用,发挥各自的优势。

cssemrem相对长度单位修改时间:2026-06-14 17:15:33

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