我有一個包含一些子菜單的菜單,像這樣的條件多列
.menu {
position: absolute;
background: yellow;
margin-top: 2em;
}
header {
font-size: 20px;
}
ul {
-moz-column-count: 2;
-moz-column-gap: 10px;
-webkit-column-count: 2;
-webkit-column-gap: 20px;
column-count: 2;
column-gap: 10px;
list-style: none;
padding: 0;
}
li:nth-child(odd) {background: lightblue; }
li:nth-child(even) {background: lightyellow; }
div:not(.main) {
display: inline-block;
position: relative;
}
<div>menu one
<div class="menu">
<header>menu one header</header>
<ul>
<li>Item one</li>
<li>Item two 2</li>
<li>Item tree</li>
<li>Item four</li>
<li>Item five</li>
<li>six</li>
<li>Item 7</li>
</ul>
</div>
</div>
<div>menu two</div>
我需要的是2列僅出現如果有超過4項在.menu>ul
列表中。
是否有可能使用純CSS?
什麼專欄?這兩個菜單是'列'?如果少於4個項目,是否應該出現?我不認爲你可以這樣做,因爲CSS唯一重要的是孩子,所以你不能做這樣的事情:「當這件事的孩子數量是x或更多時,對父母/其他事情做些事情」 - 那就是什麼是JavaScript的。 – somethinghere
是的,如果不將它分成兩個'ul'元素,你就無法做到這一點......如果有人有解決方案,我會非常好奇,但我敢肯定,這個問題歸結爲CSS只是不擅長計數或if語句... – somethinghere
有一點'hack'已被用於執行此操作:http://alistapart.com/article/quantity-queries-for-css但是,似乎存在一些性能問題方法。 –