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

CSS布局中两个独立section元素未正常分离的问题求助

问题原因

两个独立section出现布局粘连、表单被挤到右上角的核心原因是浮动未清除,和元素嵌套关系无关:

  • 你为.middle内的article设置了左浮动、侧边图片设置了右浮动,浮动元素会脱离常规文档流,父元素如果没有做清除浮动处理,高度不会被浮动的子元素撑开,只会塌陷到非浮动内容的高度。
  • 你给.middle设置的display: inline-block、在两个section之间加<br>、给后面的表单设width:100%都没法解决浮动塌陷的问题,后续的.infoform会自动顺着浮动元素留下的空隙往上排布,视觉上就像和前一个section合并成了同一个区块,内容被挤到右侧剩余空间里。
  • 另外你的HTML存在语法错误:<section.middle>和</section.middle>是错误写法,正确的类名写法应该是<section class="middle">,这个错误会导致浏览器DOM解析异常,加重布局错乱。
修复步骤

按以下顺序修改即可解决问题:

  1. 修正HTML标签语法错误,把middle区块的标签改为标准写法:
<!-- 错误写法 -->
<section.middle>
<!-- 中间内容 -->
</section.middle>

<!-- 正确写法 -->
<section class="middle">
<!-- 中间内容 -->
</section>
  1. 给.middle区块添加清除浮动规则,让它能完整包裹内部浮动的子元素,阻断浮动对后续区块的影响:
.middle{
    display:inline-block;
    width: 100%; /* 避免inline-block元素宽度随内容收缩 */
    overflow: hidden; /* 触发BFC,自动识别内部浮动元素高度,清除塌陷 */
}

如果不想用overflow:hidden(后续如果要做超出元素的下拉菜单会被裁剪),也可以用伪元素清除浮动的标准写法:

.middle::after {
    content: "";
    display: block;
    clear: both;
}
  1. 额外修复小问题:
    • 提交按钮的属性写错了,type-submit要改为type="submit",不然点击不会触发表单提交
    • 如果要实现水平表单单行排列的效果,可以给.form-inline下的label、input、button设置display: inline-block,搭配适当的外边距避免内容挤在一起。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 12:51:19