html - 使用 flexbox 跨列打破无序列表元素

标签 html css flexbox

有没有办法用 flexbox 打破无序列表中的列表项?我想创建一个 3 列下拉菜单。

比如我的html是:

<ul id="nav">
  <li><a href="./?>Navigation link 1</a></li>
  <li><a href="./?>Navigation link 2</a></li>
  <li><a href="./?>Navigation link 3</a></li>
  <li><a href="./?>Navigation link 4</a></li>
  <li><a href="./?>Navigation link 5</a></li>
</ul>

我不希望它这样显示:

Navigation link 1 | Navigation link 2
Navigation link 3 | Navigation link 4
Navigation link 5 |

我希望它像这样显示:

Navigation link 1 | Navigation Link 5
Navigation link 2 |
Navigation link 3 |
Navigation link 4 |

我尝试使用 flexbox 并应用了这些属性,但我找不到将列表项分成多于 1 列的方法:

#nav {
  display: flex;
  flex-direction: column;
}

最佳答案

flex 容器的初始设置是flex-wrap: nowrap

这意味着 flex 元素被迫保持在一行中。

要创建多行 flex 容器,您可以使用 flex-wrap: wrap 覆盖此设置。

为容器定义高度也很重要。否则,额外的 flex 元素可能会简单地扩展容器而无需包装。

关于html - 使用 flexbox 跨列打破无序列表元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39027868/

相关文章:

html - 外面重复的图像

html - 使分页保持在页面的中心

html - 试图将两个 div 彼此对齐并失败

html - Flexbox child 高度

css - HTML 5 拖放多个图像

jquery - 两个日期的差异显示在另一个文本框中

javascript - 嵌套 div 中单击事件中的目标元素

html - 如何针对不同的屏幕分辨率优化网站?

javascript - 我在这个网站的 CSS 中做 slider 时遇到问题

css - 覆盖默认的 flexbox 子元素为 100% 高度