2026-10-20 11:53:36
px、rem、em、vh、vw的区别如下:
px(像素)
px是绝对长度单位,表示屏幕上的一个物理像素点,其大小固定不变。例如,设置width: 200px的元素在任何设备上始终占据200个像素的宽度。优点是精确可控,缺点是缺乏响应性,无法根据屏幕尺寸或用户设置自动调整,可能导致在小屏幕上内容拥挤或在大屏幕上留白过多。
rem(根相对单位)
rem基于根元素(<html>)的字体大小计算。默认情况下,浏览器根字体大小为16px,因此1rem=16px。通过修改根字体大小(如html { font-size: 32px; }),可全局调整rem的基准值(此时1rem=32px)。优势在于统一缩放,例如设置width: 10rem的元素会随根字体变化按比例调整,适合需要全局响应的布局(如字体、间距)。但需注意根字体设置需谨慎,避免影响默认文本大小。
em(相对单位)
em基于当前元素的字体大小计算。若当前元素未设置字体,则继承父元素的字体大小。例如,若父元素字体为16px,子元素设置font-size: 1.5em,则实际大小为24px;若子元素自身设置font-size: 20px,则其1em=20px。优势是局部响应性强,适合模块内元素按比例缩放(如按钮内文字与边框)。但嵌套使用时易因继承关系导致计算复杂,需逐层管理字体大小。
vh/vw(视口单位)
vh表示视口高度的1%,vw表示视口宽度的1%。例如,height: 50vh的元素始终占据视口高度的50%,无论屏幕尺寸如何。优势是纯响应式布局,无需依赖字体或父元素,适合全屏组件(如轮播图、页眉)。但极端设备(如超宽屏)可能导致内容拉伸过度,需结合媒体查询优化。
总结:px适合固定尺寸;rem适合全局响应式布局;em适合模块内比例缩放;vh/vw适合视口相关的动态尺寸。实际开发中常组合使用,例如用rem控制基础字体,em调整局部元素,vh/vw实现全屏适配。