我有一个相互重叠的 flex 包装 div 容器。这些可能是不同的高度并包裹多次。如何避免重叠?

Posted

技术标签:

【中文标题】我有一个相互重叠的 flex 包装 div 容器。这些可能是不同的高度并包裹多次。如何避免重叠?【英文标题】:I have a container of flex wrapped divs that overlap each other. these could be various heights and wrap multiple times. How do I avoid the overlap? 【发布时间】:2022-01-23 19:49:19 【问题描述】:

我需要第一个 div 将第二个 div 向右推,依此类推,但是,div 的宽度在包裹后保持不变,导致它重叠。

添加 100% 的宽度是可行的,但它会使最小 div 的宽度与两侧最大的留出空间相同。

列映射如下:

orderedColumns.map((column, index) => 
        return (
          <Column
            key=index
            column=column
     
          />
        );
      ) 
<div style= display: "flex" >
       <div
         style=
           height: "60px",
           display: "flex",
           flexDirection: "column",
           flexWrap: "wrap",
           overflowX: "visible"
         
       >
         <div>Test1</div>
         <div>Test1</div>
         <div>Test1</div>
         <div>Test1</div>
         <div>Test1</div>
       </div>
       <div
         style=
           height: "60px",
           display: "flex",
           flexDirection: "column",
           flexWrap: "wrap",
           overflowX: "visible"
         
       >
         <div>Test2</div>
         <div>Test2</div>
         <div>Test2</div>
         <div>Test2</div>
         <div>Test2</div>
         <div>Test2</div>
         <div>Test2</div>
         <div>Test2</div>
         <div>Test2</div>
         <div>Test2</div>
         <div>Test2</div>
         <div>Test2</div>
       </div>
       <div
         style=
           height: "60px",
           display: "flex",
           flexDirection: "column",
           flexWrap: "wrap",
           overflowX: "visible"
         
       >
         <div>Test3</div>
         <div>Test3</div>
         <div>Test3</div>
         <div>Test3</div>
         <div>Test3</div>
       </div>
     </div>

任何想法都将不胜感激。

谢谢。

【问题讨论】:

【参考方案1】:

在 Flexbox 列中,当项目换行时,不会重新计算父级的宽度,因此会出现问题。参考When flexbox items wrap in column mode, container does not grow its width。

所以我看不出如何使用 flexbox 列实现所需的布局,因为父级无法知道实际宽度。

【讨论】:

以上是关于我有一个相互重叠的 flex 包装 div 容器。这些可能是不同的高度并包裹多次。如何避免重叠?的主要内容,如果未能解决你的问题,请参考以下文章

IE11中的Flex项目重叠项目

如何防止收缩包装的容器滚动条与其内容重叠?

Flex 容器增长过多,与其他元素重叠

弹性项目可以包装在具有动态高度的容器中吗?

将3个div样式化以在flex容器内正确对齐[关闭]

在具有 object-fit 的 flex 容器中实现重叠图像