flex-flow:列包裹不会拉伸父元素的宽度

时间:2018-04-12 16:44:04

标签: html css css3 flexbox

当我使用flex-flow: column wrap时,父元素的宽度不会被拉伸。

now

expect

*{
            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/

<小时/> 那我该怎么办?

2 个答案:

答案 0 :(得分:1)

你正试图在oder中有一个flex容器,第一个需要display flex来获取下面元素的内容

我也会做一些小改动,但这实际上取决于你想要实现的目标。

如果这不是你想要的,请发表评论,以便我可以尝试改进它。 希望这有效:)

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

&#13;
&#13;
*{
                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;
            }
&#13;
    <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>
    <!-- 第三个并没有把父元素宽度撑开 -->
&#13;
&#13;
&#13;

答案 1 :(得分:0)

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/

查看结果