У меня есть страница, созданная во flexbox, в которой кнопки расположены по краям страницы.
Все кнопки на месте, если у меня есть кнопки везде:
html,
body {
height: 100%;
margin: 0;
text-align: center;
}
#root {
background-color: blue;
height: 85%;
width: 85%;
}
.tray {
box-sizing: border-box;
background-color: red;
border: thin solid black;
}
.tray-top,
.tray-bottom {
height: 48px;
line-height: 48px;
clear:both;
display:flex;
flex-direction:row;
justify-content:space-between;
}
.tray-left,
.tray-right {
width: 48px;
height: calc(100% - 96px);
float: left;
display:flex;
flex-direction:column;
justify-content:space-between;
}
.tray-right {
float: right;
}
.button {
background-color: yellow;
width: 46px;
height: 46px;
display:inline-block;
}
<div id="root">
<div class="tray tray-top">
<div class="button begin">1</div>
<div class="button middle">2</div>
<div class="button end">3</div>
</div>
<div class="tray tray-left">
<div class="button begin">4</div>
<div class="button middle">5</div>
<div class="button end">6</div>
</div>
<div class="tray tray-right">
<div class="button begin">7</div>
<div class="button middle">8</div>
<div class="button end">9</div>
</div>
<div class="tray tray-bottom">
<div class="button begin">10</div>
<div class="button middle">11</div>
<div class="button end">12</div>
</div>
</div>
Итак, приведенный выше код хорош и работает так, как я хочу. Ящики 2,5,8,11 все посередине.
Однако, если мне не нужны некоторые ящики (например, 1,4,10), я все еще хочу 2,5,8,11 посередине , Теперь, конечно, они уже не посередине:
html,
body {
height: 100%;
margin: 0;
text-align: center;
}
#root {
background-color: blue;
height: 85%;
width: 85%;
}
.tray {
box-sizing: border-box;
background-color: red;
border: thin solid black;
}
.tray-top,
.tray-bottom {
height: 48px;
line-height: 48px;
clear:both;
display:flex;
flex-direction:row;
justify-content:space-between;
}
.tray-left,
.tray-right {
width: 48px;
height: calc(100% - 96px);
float: left;
display:flex;
flex-direction:column;
justify-content:space-between;
}
.tray-right {
float: right;
}
.button {
background-color: yellow;
width: 46px;
height: 46px;
display:inline-block;
}
<div id="root">
<div class="tray tray-top">
<!--<div class="button begin">1</div>-->
<div class="button middle">2</div>
<div class="button end">3</div>
</div>
<div class="tray tray-left">
<!--<div class="button begin">4</div>-->
<div class="button middle">5</div>
<div class="button end">6</div>
</div>
<div class="tray tray-right">
<div class="button begin">7</div>
<div class="button middle">8</div>
<div class="button end">9</div>
</div>
<div class="tray tray-bottom">
<!--<div class="button begin">10</div>-->
<div class="button middle">11</div>
<div class="button end">12</div>
</div>
</div>
Теперь я могу добавить flex: 1;
к кнопкам, чтобы иметь некоторый контроль над этим, но в этом случае я бы потерял их отступы (что важно, поскольку они кнопки).
Можно ли с помощью flexbox все время иметь по 2,5,8 и 11 посередине, независимо от других элементов до и после них?