我有按字母顺序排列的国家/地区列表:
Albania
Andorra
Armenia
Austria
Azerbaijan
Belarus
Belgium
Bosnia and Herzegovina
Bulgaria
Croatia
Cyprus
Czech Republic
Denmark
Estonia
Finland
France
Georgia
Germany
Greece
...
我在列表中显示它们:
<ul class="mylist">
<li>Albania</li>
<li>Andorra</li>
<li>Armenia</li>
<li>Austria</li>
<li>Azerbaijan</li>
...
</ul>
该列表在大型显示屏上显示4列:
ul.mylist li {
float: left;
width: 25%;
}
小显示屏上的和2:
ul.mylist li {
float: left;
width: 50%;
}
这会产生类似(大显示)的列表:
Albania Andorra Armenia Austria
Azerbaijan Belarus Belgium Bosnia and Herzegovina
Bulgaria Croatia...
好的,现在到了棘手的部分:显示的国家/地区的数量可能会因过滤器选项而有所不同。我想以另一种方式(从上到下,从左到右)对国家进行排序:
Albania Bosnia and Herzegovina Finland [4th col]
Andorra Bulgaria France ...
Armenia Croatia Georgia
Austria Cyprus Germany
Azerbaijan Czech Republic ...
Belarus Denmark
Belgium Estonia
如何记住CSS会将列表折叠到小显示屏上的2列?
答案 0 :(得分:7)
使用CSS3 multi-column layout。 Browser support is questionable所以请使用供应商前缀。
ul {
margin: 0;
padding: 0;
}
li {
display: inline-block;
width: 100%;
}
/* default */
ul {
-moz-column-count: 4;
-webkit-column-count: 4;
column-count: 4;
}
/* < 800px */
@media screen and (max-width: 799px) {
ul {
-moz-column-count: 3;
-webkit-column-count: 3;
column-count: 3;
}
}
/* < 400px */
@media screen and (max-width: 399px) {
ul {
-moz-column-count: 2;
-webkit-column-count: 2;
column-count: 2;
}
}
<ul>
<li>Albania</li>
<li>Andorra</li>
<li>Armenia</li>
<li>Austria</li>
<li>Azerbaijan</li>
<li>Belarus</li>
<li>Belgium</li>
<li>Bosnia and Herzegovina</li>
<li>Bulgaria</li>
<li>Croatia</li>
<li>Cyprus</li>
<li>Czech Republic</li>
<li>Denmark</li>
<li>Estonia</li>
<li>Finland</li>
<li>France</li>
<li>Georgia</li>
<li>Germany</li>
<li>Greece</li>
</ul>
答案 1 :(得分:0)
只是要从Salman中弄清楚答案(我从post的第三个解决方案“ Text Columns”(文本列)中读到第三个解决方案后,才明白他的答案),这是更改{ {1}}从左到右,从上到下的顺序为:
li
萨尔曼(Salman)的所有其他答案是对大/小屏幕进行调整