rem相对于根元素字体大小,适合全局控制;2. em相对于父元素字体大小,具继承叠加性,适合局部缩放;3. 推荐rem用于响应式设计,em用于动态布局,结合使用提升灵活性。

在css中,em和rem都是相对单位,常用于设置字体大小,但它们的计算方式不同,理解它们的区别对响应式设计非常重要。
em:相对于父元素的字体大小
em是基于当前元素或其父元素的字体大小来计算的。如果当前元素没有设置字体大小,则继承父元素的字体大小作为基准。
例如,如果父元素的字体大小是16px,那么:
- 1em = 16px
- 1.5em = 24px
需要注意的是,em具有继承和叠加效应。子元素使用em时,是相对于其直接父元素的字体大小,如果多层嵌套使用em,容易造成尺寸计算复杂。
立即学习“前端免费学习笔记(深入)”;
rem:相对于根元素的字体大小
rem(root em)是相对于根元素(即html元素)的字体大小。无论元素处于dom树的哪一层,1rem始终等于html元素的字体大小。
例如,如果html元素的字体大小为16px:
- 1rem = 16px
- 2rem = 32px
这样可以避免em的层级叠加问题,更适合全局统一控制字体尺寸。
实际应用中的选择建议
在现代前端开发中,推荐使用rem作为主要字体单位,特别是在构建响应式布局或使用设计系统时,能保持一致性。
而em适合用于局部缩放,比如按钮、行高等需要根据当前文本大小动态调整的场景。
也可以结合使用:用rem控制整体结构,用em处理细微的相对布局。
基本上就这些,掌握em和rem的区别,能让你的样式更灵活、更可控。