css box-sizing属性是什么

推荐使用 box-sizing: border-box 因为它使元素的宽高包含 padding 和 border,设定的宽度即实际占据空间,避免布局溢出;通过全局设置 , ::before, *::after { box-sizing: border-box; } 可提升开发效率和响应式设计的可控性。

box-sizing 属性定义了元素的宽度和高度如何计算,直接影响布局行为。默认情况下,CSS 的 width 和 height 只包含内容区域,而 padding 和 border 会额外增加尺寸。box-sizing 可以改变这种计算方式,让布局更直观可控。

box-sizing 的常用值

content-box(默认值)
width 和 height 只应用于内容区域,padding 和 border 会增加元素总宽高。
例如:一个元素 width: 200px; padding: 10px; border: 5px solid,则实际宽度为 200 + 20 + 10 = 230px。

border-box
width 和 height 包含内容、padding 和 border,内容区域会自动压缩。
同样设置 width: 200px; padding: 10px; border: 5px solid,实际宽高仍为 200px,内容区只剩 170px 宽。

为什么推荐使用 border-box

使用 box-sizing: border-box 能让布局更可预测,尤其在栅格系统或响应式设计中:

  • 设定的宽度就是最终占据的空间,避免溢出容器
  • 多个盒子并排时更容易控制总宽度
  • 减少计算负担,提升开发效率

如何全局设置

通常建议在项目开始时统一设置:

*, *::before, *::after {
  box-sizing: border-box;
}

这样所有元素都采用 border-box 模型,布局更一致。

基本上就这些,不复杂但容易忽略。