2026-03-18 13:57:57
em、rem、vh、vw与px的核心区别在于参照基准不同,导致元素尺寸的计算方式及响应特性存在差异。具体区别如下:
px(像素)
绝对单位:固定值,不随视口大小、父元素或根元素字体变化而改变。
参照基准:直接对应屏幕物理像素(或逻辑像素,取决于设备分辨率)。
适用场景:需要精确控制尺寸(如边框、图标)或非响应式布局时使用。
局限性:无法适应不同设备尺寸,可能导致在小屏幕上内容溢出或大屏幕上留白过多。
em
相对单位:基于当前元素的父元素字体大小计算。
计算方式:1em = 父元素字体大小(如父元素字体为16px,则1em = 16px)。
嵌套影响:若元素存在多层嵌套,em值会逐级继承和放大(如嵌套三层且每层字体放大1.2倍,最终尺寸为16px × 1.2³)。
适用场景:需要基于父元素字体比例缩放的场景(如按钮内边距随父字体调整)。
风险:嵌套过深可能导致尺寸计算失控,需谨慎管理继承链。
rem(root em)
相对单位:基于根元素(html)字体大小计算,避免嵌套影响。
计算方式:1rem = 根元素字体大小(默认通常为16px,可通过CSS修改)。
优势:统一参照基准,便于全局尺寸控制(如通过修改根字体实现整体缩放)。
适用场景:响应式布局、整体缩放或需要保持比例一致的模块(如栅格系统)。
实践建议:结合媒体查询调整根字体大小,实现适配不同设备的布局。
vh/vw(视口高度/宽度百分比)
相对单位:基于浏览器视口尺寸计算。
计算方式:1vh = 视口高度的1%,1vw = 视口宽度的1%(如视口宽800px,则1vw = 8px)。
动态调整:值随视口大小变化而实时更新(如旋转设备或调整浏览器窗口)。
适用场景:全屏布局、英雄区域(hero section)或需要按视口比例缩放的元素(如轮播图高度)。
注意事项:极端视口尺寸(如超宽屏或手机竖屏)可能导致内容可读性下降,需配合最小/最大值限制。
关键总结:
示例场景: