2026-07-31 09:03:41
em、rem、vh、vw与px没有固定换算关系,它们各自基于不同基准动态计算,最终由浏览器渲染为像素值,但对应关系随环境变化而改变。具体特性如下:
em单位:基于当前元素的父元素字体大小计算。
若父元素字体大小为16px,则1em = 16px;若父元素字体大小变为20px,则1em = 20px。
嵌套元素中,em会逐级继承父元素的字体大小,导致计算复杂化。例如,子元素设置font-size: 1.2em,若父元素为16px,则子元素实际为19.2px;若父元素改为20px,子元素则变为24px。
rem单位:基于根元素(html)字体大小计算,通常默认值为16px(可通过CSS修改)。
若根元素字体大小为16px,则1rem = 16px;若设置为20px,则1rem = 20px。
与em不同,rem始终以根元素为基准,避免了嵌套导致的计算混乱,适合全局尺寸控制(如间距、字体)。
vh单位:基于视口高度的百分比计算,1vh = 视口高度的1%。
若视口高度为1000px,则1vh = 10px;若视口高度变为800px,则1vh = 8px。
常用于全屏布局或垂直方向响应式设计(如height: 100vh表示元素高度等于视口高度)。
vw单位:基于视口宽度的百分比计算,1vw = 视口宽度的1%。
若视口宽度为1200px,则1vw = 12px;若视口宽度变为600px,则1vw = 6px。
适合水平方向响应式设计(如width: 50vw表示元素宽度为视口宽度的一半)。
px单位:固定像素值,不随环境变化。
1px始终代表屏幕上的一个物理像素点(在高DPI设备中可能被缩放,但逻辑值不变)。
与相对单位(em、rem、vh、vw)的本质区别在于其静态性,无法适应不同设备或布局上下文。
关键区别总结:
em适合局部文本尺寸(如按钮内文字相对父容器调整)。
rem适合全局统一尺寸(如整个页面的字体、间距)。
vh/vw适合视口相关的布局(如全屏横幅、自适应卡片)。
px适合需要精确控制的场景(如图标大小、边框宽度)。
示例说明:
理解这些单位的动态特性,而非简单追求与px的固定换算,是掌握响应式设计的关键。