我有一个动态的元素列表。 我不希望这个列表太长。 我可以使用:
ul {
columns: 2;
-webkit-columns: 2;
-moz-columns: 2;
}
但这总是会产生两列。如果列表中只有几个元素,我宁愿只有一列。 所以对于 5 个或更少的元素,我想要这个:
1 2 3 4 5但是有 6 个或更多元素我想要这个:
1 4 2 5 3 6我使用 css3、html、bootstrap 2.3.2 和 jquery 有没有人提供有关执行此操作的最佳方法的一些提示?
最佳答案
如果您能够使用 CSS 网格,您可以使用 grid-template-rows 来做到这一点和 grid-auto-flow指示。网格可以在大多数浏览器中使用,在 IE11 中使用 autoprefixer :
.list {
display: grid;
grid-template-rows: repeat(5, min-content);
grid-auto-flow: column;
}
<ul class="list">
<li class="item">1</li>
<li class="item">2</li>
<li class="item">3</li>
<li class="item">4</li>
<li class="item">5</li>
<li class="item">6</li>
<li class="item">7</li>
</ul>
关于javascript - 如果元素数量超过 X,CSS/html 会在两列中显示列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33217009/