html - 动态高度 float 元素之间不需要的垂直空间

标签 html css css-float removing-whitespace

<分区>

我有一个元素列表,这些元素位于一个容器中,分为两列或并排。如果所有元素都具有相同的高度,则元素会完美地 float 。不幸的是,当一个或几个元素的高度不同时,不会发生同样的情况,出现白色间隙,打破它。可以在此处看到一个工作示例 ( 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;
}

Screenshot available here

最佳答案

目前我找到的一种适用于这种特定情况(但不是全部)的解决方案是将元素放置在行(容器)中。容器元素高度将防止不需要的垂直间隙。

.row {
    display: block;
    float: left;
    overflow: hidden;
    width: 100%;
    height: auto;
}

关于html - 动态高度 float 元素之间不需要的垂直空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32394576/

上一篇:html - 内联 block 与内联似乎不共享相同的基线

下一篇:html - 将箭头添加到自定义验证 div

相关文章:

javascript - Electron 正在覆盖我的字体

html - Firefox float 元素需要 DOM 戳

html - ~ 在 CSS 中,但适用于所有 HTML 标签

javascript - SVG defs 使用不同图形之间的关系 Firefox

css - 如何压缩 CSS

html - 仅更改文本的前 6 个字符的颜色 css

IE9 和 float div 对齐的 CSS 问题

css - float 背景图片

jquery - 选择带有奇数 li 的 ul

php - 如何阻止特定文件夹向访客查看其内容?