我想知道是否有可能使弹性项目与同一容器中的较大弹性项目水平对齐。使用CSS浮点数将很容易实现,但是我无法通过flex项来完成它。
网格布局
<div class="flex-container"> <div class="large-flex-item"> </div> <div class="small-flex-item"> </div> <div class="small-flex-item"> </div> </div>
的CSS
.flex-container { display: flex; flex-direction: row; flex-wrap: wrap; align-items: flex-start; max-width: 500px; margin-right: auto; margin-left: auto; } .small-flex-item { flex-basis: 33.333%; background: #000; padding-top: 30%; } .large-flex-item { flex-basis: 66.667%; background: #333; padding-top: 60%; }
您可以通过嵌套flex容器来实现布局。
HTML
<div class="flex-container"> <div class="large-flex-item"></div><!-- flex item #1 --> <div class="flex-container-inner"><!-- flex item #2 & nested flex container --> <div class="small-flex-item"></div><!-- this flex item and sibling will align... --> <div class="small-flex-item"></div><!-- ... in column next to .large-flex-item --> </div> </div>
CSS
.flex-container { display: flex; width: 500px; margin-right: auto; margin-left: auto; } .large-flex-item { flex-basis: 66.667%; height: 200px; background: #333; } .flex-container-inner { display: flex; flex-direction: column; flex-grow: 1; } .small-flex-item { flex-basis: 100%; height: 100px; background: #000; }