我正在尝试创建一个双列布局,其中第二列也是一个网格,其中有两个单元格。然而,嵌套网格中的两个单元格不会扩展以填充其容器。
我多么想要它:
怎么样:
当我设置.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)
你的问题是,你没有告诉自己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
. 我花了一些时间才重现你的问题。