반응형
유연한 박스 레이아웃, CSS Flexbox
CSS Flexbox, 공식적으로 유연한 박스 레이아웃(Flexible Box Layout)이라고 불리는 이 기술은 웹 페이지의 요소를 효율적으로 배치, 정렬, 그리고 분배하기 위한 일차원 레이아웃 모델입니다. Flexbox는 복잡한 레이아웃을 단순화하고, 유연한 UI 디자인을 가능하게 합니다.
Flexbox의 기본 개념
- 플렉스 컨테이너 (Flex Container): Flexbox 레이아웃을 적용할 부모 요소입니다. 이 컨테이너 안의 자식들은 플렉스 아이템이 됩니다. 컨테이너를 생성하기 위해, CSS의
display
속성에flex
또는inline-flex
를 설정합니다. - 플렉스 아이템 (Flex Item): 플렉스 컨테이너 내부의 모든 직접적인 자식들은 플렉스 아이템이 됩니다.
- 주 축 (Main Axis)과 교차 축 (Cross Axis): Flexbox는 주 축과 교차 축을 가지고 있습니다. 주 축은 플렉스 아이템이 배치되는 기본 방향이며, 교차 축은 주 축에 수직인 방향입니다. 상대적인 개념이기 때문에 Main이 x축이라면 Cross는 y축이 됩니다. Main이 y축이라면 Cross는 x축이 됩니다.
주요 속성
- flex-direction: 플렉스 컨테이너의 주 축을 설정합니다. 값으로는
row
,row-reverse
,column
,column-reverse
가 있습니다. 여기서 'reverse'는 반대를 의미하기 때문에 'column-reverse' 같으면 아래에서 위로 쌓아 올라가는 방식입니다. - justify-content: 주 축을 따라 플렉스 아이템을 정렬합니다. 예를 들어,
space-between
,center
,flex-start
,flex-end
등이 있습니다. - align-items: 교차 축을 따라 플렉스 아이템을 정렬합니다. 값으로는
stretch
,center
,flex-start
,flex-end
등이 있습니다. - flex-wrap: 플렉스 아이템이 컨테이너를 벗어날 때 줄 바꿈을 할지 설정합니다.
nowrap
,wrap
,wrap-reverse
가 있습니다. 자동 줄바꿈이 됩니다. 'reverse'는 반대 방향으로 쌓아집니다. - flex-flow:
flex-direction
과flex-wrap
을 한 번에 설정하는 단축 속성입니다. - align-content: 여러 줄의 플렉스 아이템을 교차 축을 따라 정렬합니다.
stretch
,center
,flex-start
,flex-end
,space-between
,space-around
등이 있습니다. - flex: 아이템이 컨테이너 내에서 차지할 공간의 비율을 설정합니다.
flex-grow
,flex-shrink
,flex-basis
의 단축 속성입니다.
장점
- 유연한 레이아웃을 쉽게 구현할 수 있어, 다양한 화면 크기에 맞는 반응형 웹 디자인을 손쉽게 할 수 있습니다.
- 주 축과 교차 축을 이용한 간편한 정렬과 배치로 복잡한 레이아웃도 쉽게 처리할 수 있습니다.
- 컨테이너 안의 아이템 크기가 다르더라도 깔끔한 레이아웃을 유지할 수 있습니다.
예제
HTML과 CSS 예제를 코딩하고 그 결과를 확인합니다.

위 예제에서 'flex-container'는 플렉스 컨테이너로 설정되어 있으며, 아이템들은 컨테이너 내에서 균등하게 공간을 차지합니다. 'justify-content'와 'align-items' 속성을 이용해 아이템들을 가로 방향으로 공간을 균등하게 분배하고 세로 방향으로 중앙에 배치합니다. 또한 padding 값을 20px을 주어 container를 보호하고 있습니다.

반응형
'온라인 멘토와 함께하는 공부 > HTML' 카테고리의 다른 글
[CSS] 패딩(padding)까지는 내 몸 (47) | 2024.01.18 |
---|---|
[CSS] grid로 정렬하기 (44) | 2024.01.17 |
[HTML] HTML에서 이미지를 사용하는 방법 (32) | 2024.01.07 |
[HTML] CSS 선택자에 대하여 (31) | 2024.01.06 |
[HTML] 사용자 지정 브라우저 기본 스타일 (26) | 2024.01.05 |