使用 box-sizing: border-box 可解决盒模型导致的布局偏移,使 padding 和 border 包含在宽高内;配合 Flex 或 Grid 布局能有效避免传统盒模型问题,提升布局稳定性。
盒模型导致的布局偏移,通常是因为元素的 padding 和 border 会额外增加元素的总宽度和高度,从而破坏预期的布局。比如设置一个宽度为100%的盒子,加上 padding 后实际宽度会超过父容器,造成横向滚动或错位。
添加以下全局样式:
* {
box-sizing: border-box;
}
这样设置后,当你定义 width: 200px,这个值就包含了内容、padding 和 border,不会超出预期尺寸。解决方法有几种:
width: calc(50% - 10px);
例如用 Flex 实现等宽两栏:
.container {
display: flex;
}
.left, .right {
flex: 1;
padding: 20px;
box-sizing: border-box;
}
即使有 padding,flex 会自动分配可用空间,不会溢出。基本上就这些。关键在于统一使用 box-sizing: border-box 并优先采用现代布局方式,能大幅降低盒模型带来的偏移问题。