올바른 이해와 사용 방법
플렉스 컨테이너는 CSS Flexible Box Layout Module을 사용해 콘텐츠인 플렉스 아이템에 대해 새로운 플렉스 레이아웃 규칙(flex formatting context)을 설정하는데, 이는 일반적인 블록 컨테이너를 설정하는 것과 동일하지만, 블록 레이아웃 대신 '플렉스 레이아웃'이 사용됩니다.
특징
플렉스 아이템을 가로 또는 세로 방향으로 배치하기
플렉스 아이템을 가로 또는 세로 방향으로 배치할 수 있습니다.
A
B
C
A
B
C
플렉스 아이템을 가로 또는 세로 방향으로 배치하기 위해서는 flex-direction 속성을 사용합니다.
flex-direction 속성
flex-direction 속성은 플렉스 컨테이너 안의
플렉스 아이템이 가로 또는 세로 방향으로 배치되도록 설정합니다.
가로 방향으로 배치하기
row 값은 플렉스 아이템을 가로 방향으로 배치합니다.
<div class="container">
<div class="item">A</div>
<div class="item">B</div>
<div class="item">C</div>
</div>
.container {
display: flex;
flex-direction: row; /* 가로 방향으로 배치하기 */
border: 4px dashed silver;
}
.item {
border: 4px solid blue;
background-color: yellow;
}
/*
* 일부 스타일 코드는 가독성을 위해 생략했습니다!
*/
A
B
C
세로 방향으로 배치하기
column 값은 플렉스 아이템을 세로 방향으로 배치합니다.
<div class="container">
<div class="item">A</div>
<div class="item">B</div>
<div class="item">C</div>
</div>
.container {
display: flex;
flex-direction: column; /* 세로 방향으로 배치하기 */
border: 4px dashed silver;
}
.item {
border: 4px solid blue;
background-color: yellow;
}
/*
* 일부 스타일 코드는 가독성을 위해 생략했습니다!
*/
A
B
C
플렉스 아이템 배치 순서를 유연하게 지정하기
플렉스 아이템의 배치 순서를 유연하게 지정할 수 있습니다.
A
B
C
A
B
C
A
B
C
A
B
C
가로 방향에서 역순으로 배치하기
flex-direction 속성의 row-reverse 값은 플렉스 아이템을 가로 방향에서 역순으로 배치합니다.
<div class="container">
<div class="item">A</div>
<div class="item">B</div>
<div class="item">C</div>
</div>
.container {
display: flex;
flex-direction: row-reverse; /* 가로 방향에서 역순으로 배치하기 */
border: 4px dashed silver;
}
.item {
border: 4px solid blue;
background-color: yellow;
}
/*
* 일부 스타일 코드는 가독성을 위해 생략했습니다!
*/
A
B
C
세로 방향에서 역순으로 배치하기
flex-direction 속성의 column-reverse 값은 플렉스 아이템을 세로 방향에서 역순으로 배치합니다.
<div class="container">
<div class="item">A</div>
<div class="item">B</div>
<div class="item">C</div>
</div>
.container {
display: flex;
flex-direction: column-reverse; /* 세로 방향에서 역순으로 배치하기 */
border: 4px dashed silver;
}
.item {
border: 4px solid blue;
background-color: yellow;
}
/*
* 일부 스타일 코드는 가독성을 위해 생략했습니다!
*/
A
B
C
특정 플렉스 아이템만 원하는 순서에 배치하기
order 속성
가로 방향에서 특정 플렉스 아이템("B")만 맨 처음에 배치하기
<div class="container">
<div class="item">A</div>
<div class="item item-b">B</div>
<div class="item">C</div>
</div>
.container {
display: flex;
flex-direction: row; /* 가로 방향으로 배치하기 */
border: 4px dashed silver;
}
.item {
border: 4px solid blue;
background-color: yellow;
}
.item-b {
order: -1; /* 값이 작을수록 시각적으로 먼저 배치 */
background-color: yellowgreen;
}
/*
* 일부 스타일 코드는 가독성을 위해 생략했습니다!
*/
A
B
C
세로 방향에서 특정 플렉스 아이템("B")만 맨 처음에 배치하기
<div class="container">
<div class="item">A</div>
<div class="item item-b">B</div>
<div class="item">C</div>
</div>
.container {
display: flex;
flex-direction: column; /* 세로 방향으로 배치하기 */
border: 4px dashed silver;
}
.item {
border: 4px solid blue;
background-color: yellow;
}
.item-b {
order: -1; /* 값이 작을수록 시각적으로 먼저 배치 */
background-color: yellowgreen;
}
/*
* 일부 스타일 코드는 가독성을 위해 생략했습니다!
*/
A
B
C
브라우저 호환성
| Module |
데스크탑 Chrome
|
데스크탑 Edge
|
데스크탑 Firefox
|
Safari
|
|---|---|---|---|---|
| CSS Flexible Box Layout Module | 29 | 12 | 28 | 9 |
명세서
| 명세서 사양 | |
|---|---|
| flexbox |
CSS Flexible Box Layout Module Level 1 #flow-order |