일반적인 CSS를 사용하면 두 개의 열 중 하나를 왼쪽과 오른쪽 사이에 약간의 간격을두고 부동 할 수 있습니다. flexbox로 어떻게 할 수 있습니까?
#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>
답변
justify-content: space-between
부모 요소에 추가 할 수 있습니다 . 이렇게하면 자식 flexbox 항목이 그 사이에 공간을두고 반대쪽에 정렬됩니다.
#container {
width: 500px;
border: solid 1px #000;
display: flex;
justify-content: space-between;
}
margin-left: auto
오른쪽에 정렬하기 위해 두 번째 요소에 추가 할 수도 있습니다 .
#b {
width: 20%;
border: solid 1px #000;
height: 200px;
margin-left: auto;
}
답변
결과를 얻기 위해 4 가지 방법을 생각해 냈습니다. 여기 데모입니다
방법 1 :
#a {
margin-right: auto;
}
방법 2 :
#a {
flex-grow: 1;
}
방법 3 :
#b {
margin-left: auto;
}
방법 4 :
#container {
justify-content: space-between;
}
답변
또 다른 옵션은 flex: auto
나머지 공간을 채우려는 태그 사이에 스타일이있는 다른 태그를 추가 하는 것입니다.
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;
}
이것은 flex : 1 1 auto와 동일하며 주 축을 따라 추가 공간을 흡수합니다.
답변
여러 가지 방법이 있지만 가장 간단한 방법은 공백을 사용하는 것입니다.
#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;
}