Как выровнять столбцы flexbox слева и справа?
С типичным CSS я мог плавать один из двух столбцов влево и другой справа с некоторой промежутком между желобами. Как бы я это сделал с flexbox?
http://jsfiddle.net/1sp9jd32/
#container {
width: 500px;
border: solid 1px #000;
display: -webkit-flex;
display: -ms-flexbox;
display: flex;
}
#a {
width: 20%;
border: solid 1px #000;
}
#b {
width: 20%;
border: solid 1px #000;
height: 200px;
}
<div id="container">
<div id="a">
a
</div>
<div id="b">
b
</div>
</div>
Ответы
Ответ 1
Вы можете добавить justify-content: space-between
к родительскому элементу. При этом элементы flexbox для детей будут выровнены с противоположными сторонами с пространством между ними.
Обновленный пример
#container {
width: 500px;
border: solid 1px #000;
display: flex;
justify-content: space-between;
}
#container {
width: 500px;
border: solid 1px #000;
display: flex;
justify-content: space-between;
}
#a {
width: 20%;
border: solid 1px #000;
}
#b {
width: 20%;
border: solid 1px #000;
height: 200px;
}
<div id="container">
<div id="a">
a
</div>
<div id="b">
b
</div>
</div>
Ответ 2
Я придумал 4 метода для достижения результатов. Вот демонстрация
Способ 1:
#a {
margin-right: auto;
}
Способ 2:
#a {
flex-grow: 1;
}
Способ 3:
#b {
margin-left: auto;
}
Способ 4:
#container {
justify-content: space-between;
}
Ответ 3
Существуют разные способы, но проще всего использовать пробел - см. пример в конце
#container {
border: solid 1px #000;
display: flex;
flex-direction: row;
justify-content: space-between;
padding: 10px;
height: 50px;
}
.item {
width: 20%;
border: solid 1px #000;
text-align: center;
}
см. пример
Ответ 4
Другой вариант - добавить еще один тег с помощью flex: auto
style между вашими тегами, которые вы хотите заполнить оставшимся пространством.
https://jsfiddle.net/tsey5qu4/
HTML:
<div class="parent">
<div class="left">Left</div>
<div class="fill-remaining-space"></div>
<div class="right">Right</div>
</div>
CSS:
.fill-remaining-space {
flex: auto;
}
Это эквивалентно изгибу: 1 1 авто, который поглощает любое дополнительное пространство вдоль главной оси.