css - 防止 Flex-wrap 3 :1 case

标签 css flexbox

抱歉,我不知道如何写出正确的问题。但这是我想解决的问题:

如果容器有 4 个元素,并且每个元素都有 Flex:1 --> 那么它将按照以下顺序定位元素:1 行有 4 个元素 --> 2 行,第 1 行有 3 个元素和 1 个大元素在第 2 行 ---> 2 行有 2 个元素 ---> 和 4 行。

有什么方法可以防止出现“2 行,第 1 行有 3 个元素,第 2 行有 1 个大元素”的情况? (第二种情况)

同一个箱子,一个容器有 6 个元素,8 个元素,...等等......

示例如下:

Example

非常感谢。

最佳答案

最简单、最优雅的解决方案可能是将每两个元素包装在单独的 Flex-container 中,而不使用 flex-wrap:wrap;:

.flex-outer {
  display: flex;
  flex-wrap: wrap;
}

/* no row-wrapping here */
/* just leave it with default flex-wrap: nowrap */
.flex-inner {
  display: flex;
}

/* Just styles for demo */
.flex-item {
  width: 200px;
  height: 100px;
  background-color: orange;
  color: white;
  font-size: 3rem;
}
<div class="flex-outer">
  <div class="flex-inner">
    <div class="flex-item">
      One
    </div>
    <div class="flex-item">
      Two
    </div>
  </div>
  <div class="flex-inner">
    <div class="flex-item">
      Three
    </div>
    <div class="flex-item">
      Four
    </div>
  </div>
</div>

如果您希望元素占据所有剩余空间,请为 .flex-item.flex-inner 设置 flex: 1;

关于css - 防止 Flex-wrap 3 :1 case,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41816645/

相关文章:

javascript - 将div分成方 block

html - 2 使用 Flex 的图像旁边的元素

当 Grid 过早换行时(在 11 行而不是 12 行之后)Primeflex Flexgrid 的 CSS 修复?

html - 使用 flexbox 将一个元素移动到列表的末尾

css - 使用 Flex-box 堆叠列表

jquery - 评论表单的模态对话框示例?

css - Webfonts 和 OpenType 旧式数字 (onum) 功能

css - 试图让一个 div 相对或绝对定位在另外两个之上

html - CSS - 相对于响应高度的位置

html - 如何在悬停时从底部显示文本