CSS - display:table 以 display:flex 为子 div

CSS - display:table with display:flex as sub-child div

我有一个 div 和 display:table;。在那个 div 中,我有 2 个 div。 1 div 有一个 width:100%, div2 有 width:320px

在 div1 中,我有多行,每行最多有 3 divs(有些有 1 或 2)。我正在使用 display:flex; justify-content:space-around; 将行及其 div 垂直和水平对齐。

这里的问题是,当我使用 display:flex; 时,div2 的所有内容都被推到最后一行的下方。这很奇怪,因为 div1 和 div2 彼此相邻并且 div1 的内容不会干扰 div2.

问题的可视化示例:

====================================
=        div1          =    div2   =
====================================
=         +++          =           =
=         +++          =           =
=                      =           =
=    +++  +++  +++     =           =
=    +++  +++  +++     =           =
=                      =           =
=    +++  +++  +++     =           =
=    +++  +++  +++     =           =
=                      =  content  =
=                      =     of    =
=                      =    div2   =
=                      =   starts  =
=                      =    here   =
====================================

each ++ is a div inside a row
     ++

有没有什么方法可以正确完成这件事? div1 和 div2 彼此相邻,而 div1 内容使用 display:flex; justify-content:space-around; 和 div2 内容从顶部开始并且不会被向下推通过 div1 个内容。

编辑:
这是我的 jsFiddle,用于显示错误。 https://jsfiddle.net/3uss54pc/

编辑 2:
我尝试删除 display:flex 并在 .row-div 上使用 float:left; 并在每个 .row 的前后添加一个 clear:both;,但 [=47] 的内容=]2还在被往下推

我想这不是 display:flex; 的问题,而是我的 display:table;??

的结构问题

我通过删除 flex 元素并改用 display:tabledisplay:table-cell; 来解决此问题。这样div2的内容就显示在正确的位置了。