[html] 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>



답변

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;
}

예보기


답변