You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何阻止div元素重叠且保持宽度占满容器?

解决.show元素全宽不重叠的问题

问题根源在于CSS默认的box-sizing: content-box:你设置的width:100%仅计算元素内容区域的宽度,再加上.show的padding:20px和border:2px black solid,元素实际总宽度会超出父容器,最终导致重叠。

核心修复方案

给.show类添加box-sizing: border-box,让width:100%包含padding和border的宽度,元素总宽度刚好等于父容器宽度:

.show {
  padding: 20px;
  border: 2px black solid;
  width: 100%;
  box-sizing: border-box; /* 关键属性 */
}

额外优化:修复容器溢出问题

你的#container设置了width:100%和padding:20px,同样会因为content-box导致容器超出视口,建议也给容器加上box-sizing: border-box:

#container {
  display: flex;
  flex-direction: column;
  width: 100%;
  gap: 10px;
  padding: 20px;
  box-sizing: border-box; /* 避免容器溢出视口 */
}

修改后的完整代码

body {
  background-color: #D3D3D3;
}

#container {
  display: flex;
  flex-direction: column;
  width: 100%;
  gap: 10px;
  padding: 20px;
  box-sizing: border-box;
}

.section1 {
  display: flex;
  justify-content: center;
}

.section2 {
  display: flex;
  justify-content: center;
  gap: 10px;
}

.column {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.show {
  padding: 20px;
  border: 2px black solid;
  width: 100%;
  box-sizing: border-box;
}

.section3 {
  display: flex;
  justify-content: center;
}

这样修改后,所有.show元素既能保持全宽占满父容器,又不会因为padding和border导致宽度溢出,重叠问题自然解决。

内容的提问来源于stack exchange,提问作者jared-dev

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 19:40:19