需求
由上而下、由左至右排列元素,元素数量不定。
平时用多了 flex
布局,在这时候却使不上力了(整个右侧面板是 absolute 定位的,无法用 flex 撑开)
方法
最后发现了长期以来忽略的一个 CSS 属性 writing-mode
可以完美解决。MDN
示例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56
| <!DOCTYPE html> <html lang="zh-cn"> <head> <meta charset="UTF-8" /> <meta http-equiv="X-UA-Compatible" content="ie=edge" /> <title>Document</title> <style> html, body, ul, li { padding: 0; margin: 0; } body { margin: 20px; } .list { display: inline-block; height: 200px; font-size: 0; border: 1px solid #f5222d; writing-mode: vertical-lr; } .item { display: inline-block; width: 150px; height: 40px; margin: 5px 5px; font-size: 14px; line-height: 40px; color: #fff; text-align: center; list-style: none; background: #00a0e9; border-radius: 4px; writing-mode: horizontal-tb; }
</style> </head> <body> <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> <li class="item">8</li> <li class="item">9</li> <li class="item">10</li> </ul> </body> </html>
|