px和em的区别?

css   2025-03-26 16:17   36   0  

在 CSS 中,px 和 em 是两种常用的尺寸单位,它们的核心区别在于 计算方式 和 应用场景

1. px(像素)

  • 定义:绝对单位,表示屏幕上的物理像素点(如 16px)。

  • 特点

    • 固定尺寸:1px 等于屏幕的一个物理像素点(在高分辨率屏幕下,浏览器可能自动缩放,但逻辑上仍是绝对单位)。

    • 不继承:不受父元素字体大小影响,直接按设定值显示。

  • 适用场景

    • 需要精确控制尺寸的元素(如边框、图标)。

    • 对响应式布局要求不高的固定尺寸设计。

2. em(相对单位)

  • 定义:相对单位,基于 当前元素或父元素的字体大小 计算(如 1em = 当前元素 font-size 的值)。

  • 特点

    • 相对继承:若当前元素未设置 font-size,则继承父元素的 font-size

    • 层级叠加:嵌套使用 em 时,尺寸会逐层按比例放大或缩小。

  • 示例

    css复制body { font-size: 16px; }  .child {   font-size: 1.2em; /* 16px * 1.2 = 19.2px */    padding: 2em;     /* 19.2px * 2 = 38.4px */  }
  • 适用场景

    • 需要根据上下文动态调整的尺寸(如段落间距、按钮内边距)。

    • 响应式布局中适配不同屏幕尺寸(通过修改根字体大小,整体缩放元素)。

3. 核心区别对比

特性pxem
单位类型绝对单位相对单位
计算依据屏幕物理像素当前元素的 font-size
继承性继承父元素 font-size
响应式适配需手动调整自动按比例缩放
适用场景固定尺寸元素动态适配布局

4. 使用建议

  • 用 px

    • 需要严格固定尺寸时(如边框 border: 1px)。

    • 不希望尺寸受父元素影响时(如图标大小)。

  • 用 em

    • 希望尺寸随字体大小动态调整时(如行高 line-height: 1.5em)。

    • 实现响应式布局(结合媒体查询调整根字体大小)。

5. 扩展:rem(Root em)

  • 定义:基于 根元素(<html>)的 font-size 计算(如 1rem = 16px,默认根字体为 16px)。

  • 优势:避免 em 的层级嵌套问题,更适合全局响应式布局。

    css复制html { font-size: 16px; }  .box {   width: 10rem; /* 16px * 10 = 160px */  }

总结

  • px 是“刚性”单位,适合固定尺寸;

  • em 是“弹性”单位,适合动态适配;

  • 根据场景选择单位,结合 rem 能更高效地实现响应式设计。


博客评论
还没有人评论,赶紧抢个沙发~
发表评论
说明:请文明发言,共建和谐网络,您的个人信息不会被公开显示。