导读:本期聚焦于小伙伴创作的《CSS中的单位应该怎么表示?盘点常用的CSS长度与单位写法》,敬请观看详情。把设计稿上的尺寸写进样式表时,用错单位往往会让页面在手机上错乱。CSS里并不只有px,百分比、em、rem、vw、vh都能控制元素大小。px是固定像素,不随屏幕缩放;em相对于父级字体大小,嵌套过深容易算错;rem以根元素字体为基准,更适合响应式。vw和vh把视口宽高分成一百份,做全屏布局很方便。理解这些单位的换算规则和适用场景,才能写出适配多端的界面。

在编写网页样式时,CSS单位决定了元素尺寸、间距、字体大小该如何计算。不同单位有着完全不同的参照基准,选错单位可能导致页面在桌面端正常,到了移动端却严重错位。掌握CSS单位的表示方式与计算逻辑,是前端开发的基本功。

CSS中的单位应该怎么表示?盘点常用的CSS长度与单位写法

一、绝对长度单位

绝对长度单位与现实物理尺寸挂钩,在大多数屏幕渲染场景下,它们最终都会被映射为像素。最常见的绝对单位是px(像素)。我们在代码里写width: 200px,意思就是元素渲染宽度为200个设备无关像素。

除了px,CSS还定义了cm、mm、in、pt、pc等绝对单位,例如1in等于2.54厘米,1pt等于1/72英寸。但在Web开发中,这些单位极少用于屏幕布局,更多出现在打印样式里。下面是一段使用px和pt的对比示例:

/* 屏幕布局常用 px */
.box {
  width: 300px;
  font-size: 16px;
}

/* 打印场景可能用 pt */
@media print {
  .paper {
    width: 21cm;
    font-size: 12pt;
  }
}

绝对单位的优势是结果可预期,写多少就是多少;劣势是缺乏弹性,无法根据用户设备自动调整,因此在响应式设计中通常不单独使用。

二、相对字体单位em与rem

em是一个相对单位,它相对于当前元素的字体大小。如果一个元素自身font-size为16px,那么width: 2em就等于32px。需要注意的是,当em用于设置字体大小时,它参照的是父元素的字体大小,这就容易在多层嵌套时引发“连锁放大”问题。

rem则是相对于根元素(即html标签)的字体大小。无论嵌套多深,1.5rem永远等于根字体大小的1.5倍。正因为这个稳定性,rem成为移动端适配的主流方案。下面演示em与rem的差异:

html {
  font-size: 16px;
}

.parent {
  font-size: 20px;
}

/* 子元素用 em,基于父级 20px,实际 40px */
.child-em {
  font-size: 2em;
}

/* 子元素用 rem,基于根 16px,实际 32px */
.child-rem {
  font-size: 2rem;
}

使用rem时,我们常通过JavaScript动态修改根字体大小,或者借助媒体查询实现不同屏幕下的缩放。它的缺点是对于不需要随根字体变化的部分(如边框)也需谨慎使用,否则线条会跟着变粗变细。

三、视口单位vw与vh

视口单位以浏览器可视区域为基准。vw表示视口宽度的百分之一,vh表示视口高度的百分之一。比如width: 50vw代表元素占屏幕宽度一半,height: 100vh则可实现铺满整屏。

这类单位非常适合做全屏海报、左右分栏等布局。不过在移动端,vh有时会把地址栏高度计算进去,导致实际可见区域出现滚动偏差。可以配合calc()做兼容处理:

/* 全屏容器 */
.full-screen {
  width: 100vw;
  height: 100vh;
}

/* 使用 calc 避免溢出 */
.safe-box {
  height: calc(100vh - 60px);
}

视口单位的优点是不依赖父级或根元素,直接响应窗口变化;缺点是精细控制能力弱,一般要和px、rem混用以兼顾细节。

四、百分比与无单位数值

百分比%是最容易被误解的单位之一。它的参照物不是视口,而是父元素的对应属性。例如父级宽400px,子级width: 50%就是200px;但若是padding-top: 50%,则是相对父级宽度而非高度计算,这一特性常被用来做自适应正方形。

此外,CSS中还有一些无单位数值,如line-height: 1.5z-index: 2opacity: 0.8。它们不是长度单位,却也是“值的表示法”的一部分。误给line-height加px是新手常见错误,会导致行高无法随字体缩放。

/* 自适应正方形:padding 百分比基于父宽 */
.square {
  width: 100%;
  padding-top: 100%;
  position: relative;
}

/* 正确写法:无单位行高 */
.text {
  font-size: 14px;
  line-height: 1.6;
}

理解百分比的参照规则和单位的有无,能帮你避开大量布局诡异的坑。综合来看,现代项目多以rem负责宏观缩放,px负责细节描边,vw/vh负责视口级响应,三者组合最为稳妥。

CSS单位长度单位rem布局修改时间:2026-08-07 22:36:31

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