border-box和content-box是box-sizing的两个值,决定宽高计算方式。content-box的宽高不含padding和border,总尺寸会增大;border-box的宽高包含padding和border,总尺寸固定。推荐全局设置*{box-sizing:border-box}以统一布局行为,便于控制尺寸,避免错位。可单独为元素设置content-box恢复默认。实际开发中建议全局使用border-box,利于响应式设计,调试时可通过开发者工具查看盒模型变化。

在css中,border-box 和 content-box 是 box-sizing 属性的两个常用值,它们决定了元素的宽度和高度如何计算。切换它们的方法非常直接,只需设置对应的 box-sizing 值即可。
理解 box-sizing 的区别
content-box(默认值):元素的 width 和 height 只包含内容区域,不包括 padding 和 border。当你增加 padding 或 border 时,元素的总尺寸会变大。
border-box:width 和 height 包含了内容、padding 和 border。设置 width 为 200px 时,无论 padding 或 border 多大,整个盒子的宽度都保持 200px。
切换到 border-box 的推荐方式
为了统一布局行为,很多开发者会在项目开始时将所有元素设为 border-box:
立即学习“前端免费学习笔记(深入)”;
* { box-sizing: border-box; }
这样设置后,所有元素都会使用 border-box 模型,便于控制布局尺寸,避免因 padding 导致溢出或错位。
单独切换某个元素
如果只想对特定元素切换模型,直接为其设置属性即可:
.example { box-sizing: content-box; width: 200px; padding: 20px; border: 5px solid #000; }
此时该元素恢复默认行为:总宽度 = 200 + 2×20 + 2×5 = 250px。
若改为 border-box,总宽度仍为 200px,内容区域会自动压缩。
实际使用建议
基本上就这些,掌握 box-sizing 切换能有效减少布局问题。


