flex-flow: перенос столбца не растягивает ширину родительского элемента

Когда я использую flex-flow: column wrap, ширина родительского элемента не растягивается.

сейчас

ожидать

*{
            margin: 0;
            padding: 0;
        }
        .box{
            background: #f03;
            position: relative;
            display: inline-block;
            /* top:10px; */
            /* left: 10px; */
            padding: 20px;
        }
        .in{
            display: flex;
            align-items: center;
            flex-flow: column wrap;
            max-height: 300px; 
            align-content: flex-start;
            justify-content: space-between;

        }
        .item{
            background: #fe3;
            width: 100px;
            margin-bottom: 20px;
            height: 100px;

        }
        .item:last-child{
            margin-left: 15px;
        }
    <body>
     <div class="box">
         <div class="in">
             <div class="item">1</div>
             <div class="item">2</div>
             <div class="item">3</div>
         </div>
     </div>
</body>

https://jsfiddle.net/p4oLk7dz/5/


Так что мне делать?


person user3579659    schedule 12.04.2018    source источник


Ответы (2)


Вы пытаетесь иметь гибкий контейнер внутри другого, первому нужен гибкий дисплей, чтобы получить содержимое элемента ниже

Я бы также внес небольшие изменения, но это действительно зависит от того, чего вы пытаетесь достичь.

Если это не то, что вы искали, пожалуйста, прокомментируйте, чтобы я мог попытаться улучшить его. Надеюсь, это сработает :)

.box{
                background: #f03;
                position: relative;
                display: flex;
                max-width: 220px;
                padding: 20px;
            }
            .in{
                  display: flex;
                  flex-wrap: wrap;
                  max-width: 220px;
            }

*{
                margin: 0;
                padding: 0;
            }
            .box{
                background: #f03;
                position: relative;
                display: flex;
                max-width: 220px;
                padding: 20px;
            }
            .in{
                  display: flex;
                  flex-wrap: wrap;
                  max-width: 220px;
            }
            .item{
                background: #fe3;
                width: 100px;
                margin-bottom: 20px;
                height: 100px;
                
            }
            .item-2{
                 order: 3;
            }
            .item-3{
                 margin-left: 20px;
            }
    <body>
         <div class="box">
             <div class="in">
                 <div class="item">1</div>
                 <div class="item item-2">2</div>
                 <div class="item item-3">3</div>
             </div>
         </div>
    </body>
    <!-- 第三个并没有把父元素宽度撑开 -->

person Gerardo BLANCO    schedule 12.04.2018
comment
спасибо,~~ Почему бы не растянуть ширину родительского элемента, когда я устанавливаю стиль `flex-direction:column and min-height`????? - person user3579659; 12.04.2018
comment
Это один из способов, я думаю, мне нравится больше строк jajaja. Надеюсь, вы сможете проголосовать и принять ответ, если он соответствует вашим потребностям. :) - person Gerardo BLANCO; 12.04.2018
comment
Это не решение проблемы. - person Michael Benjamin; 13.04.2018

Remove the display properties from this class 
.box{
            background: #f03;
            display: inline-block;
           display:relative;
            /* top:10px; */
            /* left: 10px; */
            padding: 20px;
      }

and everything works !!!

*{
            margin: 0;
            padding: 0;
        }
        .box{
            background: #f03;
            padding: 20px;
        }
        .in{
            display: flex;
            align-items: center;
            flex-flow: column wrap;
            max-height: 300px; 
            align-content: flex-start;
            justify-content: space-between;

        }
        .item{
            background: #fe3;
            width: 100px;
            margin-bottom: 20px;
            height: 100px;

        }
        .item:last-child{
            margin-left: 15px;
        }
    <body>
     <div class="box">
         <div class="in">
             <div class="item">1</div>
             <div class="item">2</div>
             <div class="item">3</div>
         </div>
     </div>
</body>

вы можете проверить результат здесь https://jsfiddle.net/p4oLk7dz/30/

person Friday Ameh    schedule 12.04.2018
comment
Я хочу, чтобы ширина родителя растягивалась автоматически, поэтому я не хочу, чтобы он был заполнен.???????????? - person user3579659; 12.04.2018