【发布时间】:2017-11-05 07:19:23
【问题描述】:
我相信这是 CSS 的默认行为,但我不知道为什么,如果有人能解释一下,那就太好了。
内容有 3 个 div 标签(A、B、C)。 A 和 B 以 100% 的宽度(60%+40%)浮动,但它们的高度不同。 A是300px,B是400px高。 C 有 40% 的宽度,它也向左浮动。
.content {
width: 400px;
height: 800px;
border: solid 1px;
}
.column-a {
width: 60%;
height: 300px;
background: green;
float: left;
}
.column-b {
width: 40%;
height: 400px;
background: red;
float: left;
}
.sub-columns {
width: 40%;
height: 200px;
background: orange;
float: left;
}
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width">
<title>JS Bin</title>
</head>
<body>
<div class="content">
<div class="column-a">A</div>
<div class="column-b">B</div>
<div class="sub-columns">C</div>
</div>
</body>
</html>
我的想法是 C 被放置在 A 的正下方,因为有空间,有点似乎浏览器不会把它放在那里,因为 B div 高于 A 并且 C 出现在 B div 下。图片:
为什么会这样,C不应该放在A下面吗?
【问题讨论】:
-
那你的问题是什么?
-
@Amit 为什么会这样,不应该把C放在A下面吗?
-
没有。浮动不会像那样“优化”空间 - 但正如您自己所说,您已经知道这一点。不知道这里有什么问题。
-
这就是它在 CSS 中的工作方式。我认为最简单的解决方法是将 A 和 C 包装在单独的 div 中,这个新的 div 应该是 60% 宽。
-
那么在这个简单的例子中,您可以通过将
B浮动到右侧而不是左侧来简单地实现您想要的...