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

使用Floats实现自定义网格:为何Div无法并排显示?

问题原因及解决方法

你的div无法通过float并排,核心是CSS里存在两处语法错误,导致宽度计算和边距设置失效:

  1. calc运算的语法错误
    CSS的calc()函数要求减法运算符-的两侧必须有空格,否则浏览器无法正确解析计算式。你写的calc((100%-50px)/2)会被判定为无效表达式,元素宽度会被浏览器默认处理,最终总宽度超出父容器。

  2. :not选择器的语法错误
    :not(last-child)是错误写法,正确的伪类选择器格式为:not(:last-child),缺少内层冒号会让这条边距样式完全不生效,导致两个col的总宽度超过父容器,无法并排。


修正后的CSS代码

.row {
  max-width: 1440px;
  margin: 0 auto;
}

.row::after {
  content: "";
  display: table;
  clear: both;
}

.col-1-2 {
  background-color: red;
  width: calc((100% - 50px)/2); /* 修正:-两侧添加空格 */
  float: left;
}

.col-1-2:not(:last-child) { /* 修正:补全:not()内的伪类语法 */
  margin-right: 50px;
}

修正后,两个col的宽度会被正确计算为(父容器宽度 - 50px边距)/2,加上第一个col的margin-right,总宽度刚好等于父容器宽度,即可实现并排显示。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 20:15:02