使用 box-sizing: border-box 可使元素高度包含 padding 和 border,.box 设置 height: 100px 后,即使添加 padding 和 border,总高度仍为 100px,适用于导航栏、卡片、表单等需固定高度的场景,推荐全局设置 * { box-sizing: border-box } 以统一尺寸计算方式,提升布局可控性。
在CSS中,若要设置盒模型元素的固定高度并结合 height 与 box-sizing 属性实现预期布局效果,关键在于理解不同 box-sizing 值如何影响元素尺寸计算。
box-sizing 决定了元素的宽度和高度是否包含内边距(padding)和边框(border):
height 仅指内容区域的高度,padding 和 border 会额外增加总高度。height 包含内容、padding 和 border,更便于控制整体尺寸。当需要固定元素总高度时,推荐使用 border-box,避免因添加 padding 或 border 导致布局溢出。
以下是一个实用示例,让一个盒子始终保持 100px 高,无论是否设置 padding:
.box {
height: 100px;
padding: 20px;
border: 5px solid #333;
box-sizing: border-box; /* 总高度仍为 100px */
background: #f0f0f0;
}
使用 box-sizing: border-box 后,内容区会自动压缩,确保整个元素视觉高度正好是 100px。
这类设置特别适合用于:
统一在全局设置 * { box-sizing: border-box; } 可简化后续开发中的尺寸计算。
基本上就这些。合理使用 height 和 box-sizing 能大幅提升布局可控性,避免意外的高度溢出问题。