css - 如何在列中分解 html 列表,并在列方向上遵循字母顺序?

标签 css flexbox multiple-columns css-grid css-multicolumn-layout

如果我有一个这样的列表怎么办:

<ul>
  <li>a</li>
  <li>b</li>
  <li>c</li>
  <li>d</li>
  <li>e</li>
  <li>f</li>
  <li>g</li>
  <li>h</li>
  <li>i</li>
</ul>

并且想要这样的渲染:

a | e | i
b | f |
c | g |
d | h |

我的意思是,分成几列但尊重“垂直”字母顺序?此外,柱子的“高度”应与可用空间一样高。所以没有像上面那样固定 4 行。也没有固定高度的容器。

这可能吗?我知道我可以使用 Flexbox 来做到这一点,但要固定容器的高度。我也查看了网格规范,但不确定这是否可行。

有什么想法吗?

最佳答案

尝试这样的 CSS 网格:

ul {
  margin: 0;
  padding: 0;
  list-style:none;
  height: 100vh;
  display: grid;
  grid-template-rows: repeat(auto-fit, 1.2em); /* define the heoght of one row here */
  grid-auto-flow: column;
  font-size: 50px;
}

body {
  margin: 0;
}
<ul>
  <li>a</li>
  <li>b</li>
  <li>c</li>
  <li>d</li>
  <li>e</li>
  <li>f</li>
  <li>g</li>
  <li>h</li>
  <li>i</li>
</ul>

关于css - 如何在列中分解 html 列表,并在列方向上遵循字母顺序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70956665/

相关文章:

html - 为什么底部 div 文本会渗入顶部 div

javascript - Material design lite 和 Drift 之间的 CSS 冲突

javascript - 使用内联 IMG 在 TD 中居中文本

css - 在一行中设置两个宽度相等的折叠列,其中一个中心列会收缩和增长以适应内容

html - 多列元素符号列表和默认 CSS 设置问题,HTML5

css - 图像未显示在设备上(Ionic2 应用程序)

html - 为什么固定定位不适用于 iOS 上的 flex?

html - 将一个 div 放在另一个下面(使用 flexbox)

html - 使多列共享 Bootstrap 中所有列的最大高度

parsing - 使用 awk 在 $4 和 $5 之间添加一列