嵌套弹性盒不扩展

Xia*_*ous 1 html css flexbox

我正在尝试创建一个双列布局,其中第二列也是一个网格,其中有两个单元格。然而,嵌套网格中的两个单元格不会扩展以填充其容器。

我多么想要它: 我多么想要它

怎么样: 怎么样

当我设置.header-cell3and4为有flex: 1而不是display: flex它会弄乱我的图像在单元格内的定位。

.header-grid1 { display: flex; }
.header-cell1 { flex: 0 0 66.6666%; }
.header-cell2 { flex: 0 0 33.3333%; }
.header-grid2 { display: flex; flex-flow: column; align-self: flex-start; text-align: center; }
.header-cell3and4 { display: flex; justify-content: center; }


<div id="header">
    <div class="header-Grid1">
        <div class="header-cell1">
            <img src="image.png">
        </div>

        <div class="header-cell2">
            <div class="header-grid2">
                <div class="header-cell3">
                    <img src="image.png" alt="text"><div class="flexcenter"><a href="link">text</a></div>
                </div>
                <div class="header-cell4">
                    <img src="image.png" alt="text"><div class="flexcenter"><a href="link">text</a></div>
                </div>
            </div>
        </div>
    </div>
</div>
Run Code Online (Sandbox Code Playgroud)

nil*_*ils 6

你的问题是,你没有告诉自己header-cell4要成长。您可以使用 flex-shortcut 来做到这一点:(flex: 1 0 auto第一个值是flex-grow,第二个值是flex-shrink,第三个值是flex-basis)。

如果你想了解更多关于 flexbox 的知识,我推荐css-tricks flexbox 指南

这是工作代码:

CSS

.header-grid1 {
    display: flex;
}
.header-cell1 {
    flex-wrap: wrap;
    display: flex;
    flex: 0 0 66.666%;
}
.header-cell2 {
    flex-wrap: wrap;
    flex: 0 0 33.333%;
    display: flex;
    flex-flow: column;
    text-align: center;
}

.header-cell3 {
    display: flex;
    justify-content: center;
    flex: 0 0 auto;
}
.header-cell4 {
    display: flex;
    justify-content: center;
    flex: 1 0 auto;
}
Run Code Online (Sandbox Code Playgroud)

超文本标记语言

<div id="header">
    <div class="header-grid1">
        <div class="header-cell1">
            <img src="image.png">
        </div>
        <div class="header-cell2">
            <div class="header-cell3">
                <img src="image.png" alt="text">
                <div class="flexcenter">
                    <a href="link">text</a>
                </div>
            </div>
            <div class="header-cell4">
                <img src="image.png" alt="text">
                <div class="flexcenter">
                    <a href="link">text</a>
                </div>
            </div>
        </div>
    </div>
</div>
Run Code Online (Sandbox Code Playgroud)

JSFiddle:http://jsfiddle.net/9gryLby6/2/

请下次您发帖时,向我们提供您实际工作的 CSS 代码,而不是诸如.header-cell3and4. 我花了一些时间才重现你的问题。