html - 如何制作从一列流到下一列的高度未定义的多列布局?

标签 html css

我有一个包含任意数量列表的单列布局,每个列表都有任意数量的列表项。在某个断点处,我希望该布局变成两列,但没有告诉任何这些列表去哪一列 - 它应该只是流动。然后,第三个断点会将布局分成三列。

要求:

  • 相同的、未更改的标记需要跨断点工作
  • 没有javascript
  • 列表没有固定高度
  • 保存列表的父容器没有固定高度
  • 不通过任何类型的选择器区分列表

我尝试过的事情:

  • Flexbox - 与此最接近,但它需要一个固定高度的父容器才能将列表推送到第二列和第三列,否则它们会在第一列中无休止地向下流动。

  • 网格布局 - 需要各种选择器来指示元素应该放在哪一列。

其他解决方案违反了要求。我没有添加代码,因为代码实际上由一系列匿名的无序列表组成。

这是我对 Flexbox 的看法:http://jsbin.com/mabigisu/1/edit

取消注释高度表明它适用于固定高度,这是我不能拥有的,并且没有办法限制列数。

最佳答案

这件衣服怎么样?

它主要基于 this Pinterest 类似于 Kushagra Agarwal 的解决方案。不利的一面是它确实需要包装 div (.wrapper) 以及父

CSS ......

.wrapper {
    width: 90%;
    max-width: 1100px;
    margin: 50px auto;
}
.parent {
    -webkit-column-gap: 10px;
    -webkit-column-fill: auto;
    -moz-column-gap: 10px;
    -moz-column-fill: auto;
    column-gap: 15px;
    column-fill: auto;
}
ul {
    display: inline-block;
    background: #fff;
    -webkit-column-break-inside: avoid;
    -moz-column-break-inside: avoid;
    column-break-inside: avoid;
    padding: 15px;
    padding-bottom: 5px;
    width:100%;
    margin:5px;
}
ul li, h5 {
    font: 12px/18px Arial, sans-serif;
    color: #333;
    margin: 0;
    list-style-type:none;
}
@media (min-width: 420px) {
    .parent {
        -webkit-column-count: 2;
        -moz-column-count: 2;
        column-count: 2;
    }
}
@media (min-width: 768px) {
    .parent {
        -webkit-column-count: 3;
        -moz-column-count: 3;
        column-count: 3;
    }
}
@media (min-width: 960px) {
    .parent {
        -webkit-column-count: 4;
        -moz-column-count: 4;
        column-count: 4;
    }
}
@media (min-width: 1100px) {
    .parent {
        -webkit-column-count: 5;
        -moz-column-count: 5;
        column-count: 5;
    }
}

这是一个 fiddle http://jsfiddle.net/KqygU/1/

关于html - 如何制作从一列流到下一列的高度未定义的多列布局?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22337383/

相关文章:

javascript - Canvas:动画贝塞尔曲线绘制

Jquery 将 HTML 作为对象或数组返回

css - IE7 : Item doesn't float

css - SVG圆圈有间隙

java - 基于类选择元素的 XPath

jquery - 使用 jquery 更改 css 规则

html - 指定图像尺寸以提高站点速度

PHP 图像处理。棕褐色、饱和度、 toastr 滤镜与 CSS 中的完全相同

html - CSS 边框右侧样式

css - 强制嵌套 div 的最小高度为 100%?