px是绝对单位,固定大小;em相对父元素且会嵌套叠加;rem基于根元素字体,利于统一控制;vw和vh分别相对于视口宽高的1%,适合响应式设计。
在CSS中,字体大小的单位有多种,常用的包括 px、em、rem、vw 和 vh。它们各自有不同的计算方式和适用场景,理解这些区别有助于更灵活地控制页面布局与响应式设计。
px 是绝对单位,表示屏幕上的一个物理像素点。设置字体为 16px 就是固定为 16 像素大小。
特点:
em 是相对于当前元素或其父元素的字体大小。如果父元素字体是 16px,那么 1em = 16px。
注意:em 会继承并叠加,容易造成层级嵌套时的计算复杂。
例如:
设 1.5em,则基于子元素的 24px 计算 → 36pxrem 相对于根元素(html 元素)的字体大小。默认情况下 html 的 font-size 是 16px,所以 1rem = 16px。
优势:
比如设置 html { font-size: 10px; },则 1rem = 10px,2rem = 20px。
vw 表示视口宽度的 1%。如果屏幕宽度是 1000px,那么 1vw = 10px。
适用于根据屏幕宽度动态调整字体大小。
例子:
vh 表示视口高度的 1%。如果屏幕高度是 800px,1vh = 8px。
虽然也可用于字体,但更多用于布局高度控制。用于字体时可以让文字在垂直空间中自适应。
注意:部分移动浏览器对 vh 的解析存在兼容性问题(如Safari的工具栏会影响实际高度)。
基本上就这些。选择哪个单位取决于你的需求:要固定用 px,要可扩展用 rem,要做响应式 fluid 效果可以结合 vw,而 em 适合局部相对调整。合理搭配使用效果更好。