【发布时间】:2015-09-04 18:54:00
【问题描述】:
我有一个元素列表,这些元素以两列或并排放置在容器中。如果所有元素都具有相同的高度,则元素会完美浮动。不幸的是,当一个或几个元素的高度不同时,同样的情况不会发生,会出现一个白色间隙,破坏它。可以在这里看到一个工作示例(http://jsbin.com/juluxibuda/edit?html,css,output)。 我过去已经解决了这个问题,不记得确切的方法(使用 JS 在所有元素之间保持相同的高度等),并且我知道像 Masonry 这样的库,但我想知道是否有唯一的 CSS 解决方案或者什么可以在这里完成。
html:
<div class="container">
<div class="foo">foo</div>
<div class="foo">foo</div>
<div class="foo">foo</div>
<div class="foo">foo</div>
<div class="foo">foods ds dsds sd sd<a href="#">as klasklas</a></div>
<div class="foo">foo</div>
<div class="foo">foo</div>
<div class="foo">foo lkds kljds jkldas s</div>
<div class="foo">fas asasoods ds dsds sd sd<a href="#">as klasklas</a></div>
<div class="foo">foo</div>
<div class="foo">foo</div>
<div class="foo">foo</div>
<div class="foo">foo</div>
<div class="foo">foods ds dsds sd sd<a href="#">as klasklas</a></div>
<div class="foo">foo</div>
<div class="foo">foo</div>
<div class="foo">foo lkds kljds jkldas s</div>
<div class="foo">fas asasoods ds dsds sd sd<a href="#">as klasklas</a></div>
</div>
css:
.container {
width: 100%;
}
.container .foo {
float: left;
width: 40%;
margin-right: 5%;
margin-bottom: 10px;
background: yellow;
}
.container .foo a {
display: block;
}
【问题讨论】:
-
不...即使是 flexbox 也无法做到这一点并且保持相同的 HTML 结构。这就是砖石如此受欢迎的原因。
-
没错,它如此受欢迎的原因:)
标签: html css css-float removing-whitespace