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

如何避免窗口缩放时div容器内的元素发生堆叠?

解决计算器按钮窗口缩放时堆叠的问题

你当前用Bootstrap的col-sm类布局按钮,当窗口宽度小于576px(sm断点默认值)时,列会自动堆叠换行。要避免这种情况,可参考以下几种方案:

方案一:改用自适应所有屏幕的列类

把每个按钮外层的col-sm替换成col,Bootstrap中col类会让列在任意屏幕宽度下都保持在同一行,自动均分父容器宽度:

<div class="row">
  <div class="col">
    <button type="button" class="b1 btn btn-danger">+</button>
  </div>
  <!-- 其他按钮列同理修改 -->
</div>

方案二:固定计算器容器最小宽度

给最外层的.calbody设置最小宽度,确保窗口缩小到一定程度时,容器宽度不再收缩,按钮自然不会堆叠:

.calbody {
  min-width: 400px; /* 根据按钮总宽度调整数值 */
  width: fit-content; /* 让容器自适应内容宽度 */
  margin: 0 auto; /* 让计算器居中显示 */
}

方案三:强制行内元素不换行

利用Bootstrap自带的flex-nowrap类,给.row添加这个类,就能强制行内的列不换行:

<div class="row flex-nowrap">
  <!-- 按钮列保持col-sm或col都可以 -->
</div>

也可以自定义CSS实现:

.row {
  display: flex;
  flex-wrap: nowrap;
}
.col-sm {
  flex: 1; /* 保持各列均分宽度 */
}

修改后的完整代码示例

<body>
<div class="calbody" style="min-width: 400px; width: fit-content; margin: 0 auto;">
  <div class="top-body">
    <h1 class="body_name">CALCULATOR</h1>
    <div><input class="screen" type="text" /></div>
  </div>
  <div class="mainbody">
    <div class="container">
      <div class="row flex-nowrap">
        <div class="col">
          <button type="button" class="b1 btn btn-danger">+</button>
        </div>
        <div class="col">
          <button type="button" class="btn btn-danger">-</button>
        </div>
        <div class="col">
          <button type="button" class="btn btn-danger">x</button>
        </div>
        <div class="col">
          <button type="button" class="btn btn-danger">/</button>
        </div>
      </div>
    </div>
  </div>
</div>
</body>

内容的提问来源于stack exchange,提问作者Aravind Shajan

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 03:27:39