【发布时间】:2020-05-06 07:20:26
【问题描述】:
我发现,当有嵌套的 float:left 块时,css“clearfix”示例无法正常工作。
这是一个例子:
.left {
float: left;
width: 100px;
height: 200px;
background: green;
}
.right {
margin-left: 100px;
background: yellow;
}
.clearfix:after {
content: ' ';
display: table;
clear: both;
}
ul.clearfix {
padding: 10px;
}
.clearfix li {
float: left;
list-style: none;
border: 1px solid red;
}
<div class="left">
Image
</div>
<div class="right">
<ul class="clearfix">
<li>A</li>
<li>B</li>
<li>C</li>
</ul>
<p>Some description</p>
</div>
它显示,文本“some text”出现在“left”块下。 虽然在带有“clearfix” css 的元素列表之后存在巨大的空间。 有什么解决办法吗?
【问题讨论】:
-
clearfix 正在清除
left元素,因此逻辑上 p 将显示在它的下方和右侧。逻辑但不直观 -
按逻辑,它可以消除父容器之间的差异吗?例如,左右块 - 是不同的容器。
-
浮点数比这更复杂
-
您似乎正试图将两个元素放在一起。有比
float更好的选择来实现这一点。看看display: flex