html - 如何使 flex-wrap 平衡其包裹的元素?

标签 html css flexbox

<分区>

我正在制作一个响应式布局,在较小的屏幕上有一个侧边栏 <ul>正在变成 display: flexflex-wrap: wrap以及样式为 flex-grow: 1 的元素.大多数时候这看起来不错:

Navigation menu with balanced wrapping

但是,当只有几个元素溢出时,例如在稍大的屏幕上,这看起来很糟糕:

Navigation menu with the wrapping unbalanced

有没有办法得到flex-box尝试根据每行具有平衡的总元素宽度来包装东西?例如,在第二个示例中,“People”(可能还有“Protocols”)流到第二行会更有意义。

或者,我应该采用其他方法来布置此菜单吗?

jsfiddle link

最佳答案

您可以添加媒体查询来更改较小视口(viewport)中的行为。

例如:

@media (max-width: 768px) {
  nav li {
    min-width: 25%;
  }
}

那样的话,至少在小屏幕上每行不会超过 4 个元素。

关于html - 如何使 flex-wrap 平衡其包裹的元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54952375/

相关文章:

css - 如何使用样式组件来使用 :hover within a React element,?

html - Flexbox 在同一个 flexbox 中添加列 + 行

html - 如何在 CSS 中向后对齐单词

javascript - 如何让完整的按钮处理数据?意思是提交

html - 垂直对齐的 float 元素

html - 透明 <div> 防止右键,另存为

javascript - AngularJS DropDown 禁用文档滚动

javascript - 如何只制作一个可选择的菜单选项 html 和 jquery

jquery - Logo 不会滑落(HTML、CSS、jQuery)

html - 为什么文本链接和图标链接不是垂直居中的?