元素实际宽度大于设定值是因默认 content-box 盒模型将 padding 和 border 计入总宽;改用 border-box 可使 width 包含 padding 与 border,推荐全局设置 * { box-sizing: border-box; }。
元素实际显示宽度比设定值大,通常是因为 padding 和 border 默认被加在 width 之外,导致总宽度 = width + padding × 2 + border × 2。
默认情况下,CSS 使用的是 content-box 盒模型。比如设了 width: 200px; padding: 10px; border: 2px solid #000;,元素实际占宽就是 200 + 20 + 4 = 224px。
把盒模型设为 border-box 后,width 就代表元素的**总宽度**(含 padding 和 border),更符合直觉和设计稿需求。
* { box-sizing: border-box; }
.my-input { width: 200px; padding: 12px; border: 1px solid #ccc; b
ox-sizing: border-box; }
margin 是盒子外部的空白,不会让元素“变宽”,但可能造成相邻元素间距异常、换行或溢出。若发现元素“撑开容器”或错位,也要顺手检查 margin 是否多余或未重置。
基本上就这些。改用 box-sizing: border-box 并养成检查 padding/border 的习惯,能避免绝大多数“明明设了 100px 却看起来不止”的问题。