我正在尝试创建双列布局,其中第二列也是一个网格,其中包含两个单元格。但是,嵌套网格中的两个单元格不会扩展以填充其容器。
我喜欢它:
它是怎样的:
当我将.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>
答案 0 :(得分:3)
你的问题是,你没有告诉header-cell4
成长。您可以使用flex-shortcut执行此操作:flex: 1 0 auto
(第一个值为flex-grow
,第二个值为flex-shrink
,第三个值为flex-basis
。
如果您想了解有关flexbox的更多信息,建议您使用css-tricks flexbox guide。
以下是工作代码:
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;
}
HTML
<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>
JSFiddle:http://jsfiddle.net/9gryLby6/2/
请在下次发帖时,向我们提供实际工作的CSS代码,而不是.header-cell3and4
之类的内容。我只花了一些时间来重现你的问题。