Tor*_*orK 5 html javascript css jquery twitter-bootstrap
我有一个动态的元素列表。我不希望这个列表太长。我可以使用:
ul {
columns: 2;
-webkit-columns: 2;
-moz-columns: 2;
}
Run Code Online (Sandbox Code Playgroud)
但这总是导致两列。如果列表中只有几个元素,我宁愿只有一列。所以有 5 个或更少的元素,我想要这个:
1 2 3 4 5但是有 6 个或更多元素我想要这个:
1 4 2 5 3 6我使用 css3、html、bootstrap 2.3.2 和 jquery 有没有人有一些关于最好的方法的提示?
您可以简单地过滤ul元素:
$('ul').filter(function(){
return this.childNodes.length > 5
}).addClass('twoColumns');Run Code Online (Sandbox Code Playgroud)
ul.twoColumns {
list-style: none;
columns: 2;
-webkit-columns: 2;
-moz-columns: 2;
}Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<ul>
<li>1</li>
<li>2</li>
<li>3</li>
<li>4</li>
<li>5</li>
<li>6</li>
</ul>Run Code Online (Sandbox Code Playgroud)
如果您能够使用 CSS 网格,则可以使用grid-template-rows和grid-auto-flow指令来完成此操作。Grid 可以在大多数浏览器中使用,也可以在带有autoprefixer 的IE11 中使用:
.list {
display: grid;
grid-template-rows: repeat(5, min-content);
grid-auto-flow: column;
}Run Code Online (Sandbox Code Playgroud)
<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>Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7430 次 |
| 最近记录: |