css - 将列表项显示为列

标签 css html-lists multiple-columns

我需要按特定顺序在列中显示列表项。

例如,我有这样的代码:

<div style="height:400px;">
<ul>
   <li>1</li>
   <li>2</li>
   <li>3</li>
   <li>4</li>
   <li>5</li>
   <li>6</li>
   <li>7</li>
</ul>
</div>

我想将其显示在列中,如下所示:

1   5
2   6
3   
4

或者当有更多元素时:

1  5  9
2  6  10
3  7  11
4  8

列数+列宽不起作用,因为它尝试显示水平填充的列表,而我需要以垂直顺序显示它(如果没有第二列或第三列,则打开)。

有解决办法吗?

最佳答案

我有一个使用 Flexbox 的解决方案。它要求你的 ul 有指定的高度。

ul {
    display: flex;
    list-style: none;
    flex-direction: column;
    flex-wrap: wrap;

    height: 400px;
}

li {
    flex-basis: 25%;
}

“flex-direction:column”导致元素垂直堆叠。当一个列被填充时,“flex-wrap:wrap”使它们换行到下一列。列表项上的“flex-basis: 25%”使得每个元素的高度都是父项高度的四分之一。因此,如果您希望每列增加或减少行数,则可以更改此数字。

关于css - 将列表项显示为列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41692198/

相关文章:

html - 显示与文本相邻的图像时调整大小问题

css - Chrome 中的 Flexbox 容器没有达到 100% 的高度

javascript - 需要在 x 轴上使用 css3 动画动画

html 下拉列表弄乱了 html 无序列表列

css - 列表中的中心元素(CSS)

python - 如何在空单元格中填充数据框内容 NA 值?

css - 如何使用css将froala设置为计算高度

CSS、UL/OL : Incorrect indent with custom counter

sql - postgres 上这个 delayed_job 查询的最佳索引是什么?

css - 在两列中显示内容(每列 50%),如果内容不适合将列移至下一行并填充水平空间