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

CSS中浮动Div未按预期工作问题求助

用Float实现带间距的两栏并排布局解决方案

问题出在总宽度超出容器:你给两个div分别设了60%和40%宽度,再加上每个div左右各10px的margin,总宽度算下来是 60% + 20px + 40% + 20px = 100% + 40px,直接超过了容器的100%宽度,所以第二个div被挤到下方。

用Float实现的核心是让两个div的宽度+自身margin的总和刚好等于容器宽度,这里可以用CSS的calc()函数直接计算实际宽度(注意box-sizing: border-box只处理border和padding,不包含margin,所以margin得单独扣减),修改后的代码如下:

修改后的CSS代码

/* General Styles Preset */
* {
  box-sizing: border-box;
  margin: 0;
}

/* Boxes and containers styles */
div.container {
  overflow: hidden;
  width: 100%;
}
.boxone {
  float: left;
  width: calc(60% - 20px); /* 60%宽度减去左右各10px的margin */
  height: 300px;
  margin: 10px;
  background-color: aquamarine;
}
.boxtwo {
  float: left;
  width: calc(40% - 20px); /* 40%宽度减去左右各10px的margin */
  height: 300px;
  margin: 10px;
  background-color: cadetblue;
}

对应的HTML代码

<div class="container">
  <div class="boxone"></div>
  <div class="boxtwo"></div>
</div>

如果只想要两个div之间有10px间距、容器左右无margin,可以调整margin设置进一步优化:

.boxone {
  float: left;
  width: calc(60% - 10px);
  height: 300px;
  margin: 10px 10px 10px 0; /* 仅右侧留10px间距 */
  background-color: aquamarine;
}
.boxtwo {
  float: left;
  width: calc(40% - 10px);
  height: 300px;
  margin: 10px 0 10px 10px; /* 仅左侧留10px间距 */
  background-color: cadetblue;
}

这样总宽度就是 (60%-10px) + 10px + (40%-10px) = 100%,刚好填满容器,同时两个div间保持10px间距,上下也有10px的margin。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 13:02:27