2020-10-10 15:29:39
CSS中字体大小单位px、em、rem、vw、vh的核心区别在于计算基准与适用场景:px为绝对单位,em基于父元素且会嵌套叠加,rem基于根元素,vw/vh分别相对于视口宽高的1%。具体分析如下:
1. px(像素)大小固定:不随父元素字体大小或页面缩放变化。
简单直观:适合需要精确控制的场景(如品牌字体、图标尺寸)。
局限性:不利于可访问性,用户无法通过浏览器设置调整文字大小。
继承与叠加:em值会逐级继承,容易造成嵌套层级中的计算复杂。
示例:父元素font-size: 16px,子元素font-size: 1.5em → 实际为24px(16 × 1.5);若孙子元素也设1.5em,则基于子元素的24px计算 → 36px。
灵活性:适合局部相对调整(如按钮内文字随容器缩放)。
统一控制:不受父级字体影响,避免em的层层放大问题。
响应式友好:通过调整html的font-size可全局缩放页面字体(如媒体查询中修改根字体)。
示例:设置html { font-size: 10px; },则1rem = 10px,2rem = 20px。
动态调整:字体大小随视口宽度变化,实现流体效果。
示例:font-size: 5vw → 字体大小为视口宽度的5%,在移动端窄屏下自动变小,宽屏下变大。
兼容性:主流浏览器均支持,但极端宽高比下可能需额外限制。
垂直自适应:主要用于布局高度控制(如全屏区块),但也可用于字体实现垂直空间自适应。
兼容性:部分移动浏览器(如Safari)可能因工具栏隐藏/显示影响实际高度计算。
通过合理搭配这些单位,可兼顾设计精确性、可维护性与响应式需求。