You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让ul的li元素每满5个时自动创建新列(不使用grid)

实现ul下li每5个自动切换新列的非Grid布局方案

以下两种方案均无需修改原有HTML结构,不依赖Grid布局即可实现需求:

方案1:Flex布局实现(兼容性好,适合li高度固定场景)

ul {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  flex-wrap: wrap;
  /* 高度设置为刚好容纳5个li,可根据实际li高度调整 */
  height: calc(5 * 32px);
  /* 可选:列间距 */
  column-gap: 40px;
}
li {
  /* 保持每个li高度一致 */
  height: 32px;
  line-height: 32px;
}

核心逻辑是让列表纵向排列,高度限制为刚好放下5个li,超出高度的元素会自动换行到新列。

方案2:CSS多列布局实现(适合li高度不固定场景)

ul {
  list-style: none;
  padding: 0;
  margin: 0;
  columns: auto;
  column-fill: auto;
  /* 高度设置为刚好容纳5个li,可根据实际调整 */
  height: calc(5 * 32px);
  /* 可选:列间距 */
  column-gap: 40px;
}
li {
  /* 防止单个li被拆分到不同列 */
  break-inside: avoid;
}

核心逻辑是通过多列布局的自动填充规则,优先填满第一列的5个位置后再填充下一列。


内容的提问来源于stack exchange,提问作者Ken Torres

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 23:45:02