带两列的Flex容器;第二列有四行

Nur*_*ihu 5 html css html5 css3 flexbox

我在flex中显示以下布局有困难。我有5个盒子,我想将我的容器一分为二,垂直显示一个盒子,垂直显示另外4个盒子。

这是我的CSS:

.trades, .trade-panel {
    flex: 1;
 }
.layout-4-5 {
    flex-direction: column;
}
.layout-4-5 > div {
    width: 50%;
}
Run Code Online (Sandbox Code Playgroud)

然后,我将第四个或最后一个孩子的基数设置为100%。

.layout-4-5 > div:nth-child(1) {
    flex-basis: 100%;
}
Run Code Online (Sandbox Code Playgroud)

这是我的HTML

<div class="trades layout-4-5">
  <!--trade-panel are my individual boxes --->
  <div class="trade-panel">
    </div>

</div>
Run Code Online (Sandbox Code Playgroud)

上面水平打印我的布局。考虑到“我flex-direction是” column并且我的第一个孩子或盒子有100%的基数,那该打印我想要的东西吗?请任何帮助将不胜感激。

注意:由于这些框的大小相等,因此包含其他四个框的列应更长,只要它们在上面的布置中即可。q

Mic*_*l_B 7

我对您的问题或代码并不完全清楚。但这里有一个通用的解决方案:

flex-container-1 {
    display: flex;                   /* establish flex container */
    flex-direction: row;             /* flex items will align horizontally */
    justify-content: center;         /* center flex items horizontally */
    align-items: center;             /* center flex items vertically */
    
    /* for demo purposes only */
    height: 250px;
    width: 400px;
    border: 1px solid #777;
    background-color: lightgreen;
}

flex-container-1 > flex-item {
    height: 90%;
    flex: 0 0 45%;                   /* <flex-grow> <flex-shrink> <flex-basis> */
    margin-right: 8px;               /* a bit of space between the centered items */
    border: 1px dashed #333;
    background-color: yellow;
}

flex-container-2 {
    height: 90%;
    flex: 0 0 45%;
    display: flex;                   /* flex item is now also flex container */
    flex-direction: column;          /* items will stack vertically */
    justify-content: space-between;  /* align items vertically */
}

flex-container-2 > flex-item {
    flex: 0 0 22%;
    border: 1px dashed #333;
    background-color: yellow;
}
Run Code Online (Sandbox Code Playgroud)
<flex-container-1><!-- main container -->

    <flex-item></flex-item><!-- flex item #1 (first column) -->
    
    <flex-container-2><!-- flex item #2 / nested flex container (second column) -->
    
        <flex-item></flex-item>

        <flex-item></flex-item>

        <flex-item></flex-item>

        <flex-item></flex-item>

    </flex-container-2><!-- close nested container -->
    
</flex-container-1><!-- close main container -->
Run Code Online (Sandbox Code Playgroud)

js小提琴