box-sizing

解释 CSS 中 box-sizing 为什么会直接影响布局计算,以及为什么现代项目通常默认用 border-box。

#type / concept #status / growing #resource / css #tech / dev / frontend

[!info] related notes

box-sizing

box-sizing 是盒模型里最容易被低估、但实际开发里非常关键的属性。

一句话定义

box-sizing 决定 widthheight 计算时,到底只包含内容区,还是把 paddingborder 也一起算进去。

两个最重要的值

content-box

默认值。

这时:

  • width 只表示内容区宽度
  • paddingborder 会额外把盒子撑大

border-box

这时:

  • width 包含内容区、paddingborder
  • 更符合组件和布局开发时的直觉

为什么现代项目常用 border-box

因为它能显著降低布局计算心智负担。

例如一个卡片写:

.card {
  width: 240px;
  padding: 16px;
  border: 1px solid #ddd;
}

如果是 content-box,实际占用宽度会大于 240px;如果是 border-box,整体宽度就仍然是 240px

常见最佳实践

现代项目里常见的全局设置是:

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

这样大多数布局都会更稳定。

最短记忆方式

content-boxpaddingborder 往外长,border-box 让它们往里算。

创建于 2026/3/25 更新于 2026/5/27