지금까지 플렉서블 박스(flexible box)의 작성에 적용되어 왔던 "display : box"와 "display : flexbox"의 기술 방법은 이젠 오래된 방법이 되어 버렸습니다.
CSS의 유연한 레이아웃이 새롭게 다시 정의되었습니다. 플렉서블 박스(flexible box, flexbox)는 복잡한 웹 사이트의 다양한 화면 크기와 디스플레이 장치에 유연한 페이지 레이아웃을 실현할 수 있는 CSS3의 새로운 레이아웃 모듈(Flexible Box Layout Module)입니다.
복잡한 레이아웃도 쉽게 반응형 레이아웃을 구현할 수 있습니다. Flex 아이템(Flex Item)이라는 여러 자식(子) 요소를 내포한 flex 컨테이너(Container)의 부모(親) 요소로 구성되어 있습니다.
Flex 박스는 부모 요소에 "display : flex;"을 지정함으로써, float와 clearfix, 의사(擬似) 요소를 사용하지 않아도 유연한 레이아웃을 구현할 수있는 것이 특징입니다.
flex 아이템을 포함하는 부모(親) 요소입니다. Flex 컨테이너는 display 속성 값에 flex 또는 inline-flex를 "display : flex", "display : inline-flex"로 지정하여 정의됩니다.
스폰서 링크
flex 컨테이너의 자식(子) 요소로서 flex 아이템입니다. 부모 요소인 flex 컨테이너에 flex 속성 값을 지정함으로써 자식 요소는 자동으로 flex 아이템이 됩니다.
CSS에서 별도로 지정할 필요가 없습니다.
Flexible 박스는 2개의 축(軸)을 가지고 있습니다. Flex의 부모 요소인 flex 컨테이너(flex container)에는 main-start (시작)과 main-end(끝)이 있습니다.
이 두 점을 연결한 것이 main-axis(주축)이며, 평행한 축입니다.
Main-axis(주축)에 대한 수직 축을 나타냅니다. Main-axis가 Horizontal의 경우 Cross-axis는 Vertical이 됩니다.
flexible 박스의 속성 | |
---|---|
flex-direction | 부모 요소인 flex 컨테이너에 놓여있는 자식 요소를 어떻게 배치할 지를 지정합니다. Flex 컨테이너의 주축의 방향을 설정함으로써 자식 요소의 flex 아이템의 방향이 결정됩니다. |
justify-content | Flex 아이템을 어떻게 Flex 컨테이너의 주축을 따라서 배치할 것인지를 정의합니다. 시작점인 main-start와 끝점인 main-end 가 있습니다. 이 두 점을 연결한 것이 주축(主軸)입니다. |
align-items | Flex 아이템을 어떻게 flex 컨테이너의 교차축을 따라거 레이아웃을 설정할 지를 정의합니다. Flex 아이템을 수직 방향의 배치를 나타냅니다. 시작점은 cross-start, 종점은 cross-end 입니다. |
스폰서 링크
Flexbox의 레이아웃을 사용하려면, HTML의 부모 요소의 display 속성에 "flex"를 지정하면 됩니다. 아래와 같이 해당 요소를 flex 컨테이너로써, 자식 요소를 flex 아이템으로 정의합니다.
Flex 속성 값은 flex 컨테이너를 블록 레벨 요소로 지정합니다. inline-flex 값은 flex 컨테이너를 인라인 레벨 요소로 지정합니다.
CSS
</style> .main_flex { display : flex; display : -webkit-flex; } .main_inline-flex { display : inline-flex; display : -webkit-inline-flex; } </style>
row | 텍스트의 자식 요소와 같은 방향으로, 일반적으로 flex 아이템은 왼쪽에서 오른쪽으로 수평 방향으로 배치됩니다. 기본 값입니다. |
---|---|
row-reverse | row 값의 반대로, flex 아이템은 오른쪽에서 왼쪽으로 수평 방향으로 배치됩니다. |
column | flex 아이템은 위에서 아래로 수직 방향으로 배치됩니다. |
column-reverse | flex 아이템은 아래에서 위로 수직 방향으로 배치됩니다. |
flex-start | 자식 요소인 Flex 아이템을 가로로 배치할 경우에는 "왼쪽 정렬", 세로로 배치할 경우에는 "위쪽 정렬"로 처음 끝단부터 간격없이 배치됩니다. |
---|---|
flex-end | flex-start 값의 반대입니다. Flex 아이템을 가로로 배치할 경우에는 끝단에서 간격없이 "오른쪽 정렬", 세로로 배치할 경우에는 "아래쪽 정렬"이 됩니다. |
center | Flex 아이템을 상하 가운데 정렬이 됩니다. |
space-between | Flex 아이템은 균등하게 간격을 두고 배치됩니다. 좌우 양끝의 flex 아이템의 시작 및 끝에는 공간이 포함되지 않습니다. "flex 아이템"의 폭의 합계가 "flex 컨테이너"의 폭보다 긴 경우, 이 값은 "flex-start" 값과 동일하게 됩니다. |
space-around | flex 아이템은 모든 아이템은 일정한 간격으로 배치됩니다. space-between과 같이 균등 간격으로 배치되지만, 좌우 양끝의 flex 아이템은 외부에 간격의 절반 정도의 공간이 생깁니다. "flex 항목"의 폭의 합계가 "flex 컨테이너"의 폭보다 긴 경우, 이 값은 "center" 값과 동일하게 됩니다. |
flex-start | flex 아이템은 flex 컨테이너의 교차축의 시작점 (cross start, 위쪽 정렬)에 배치됩니다. |
---|---|
flex-end | flex-start 값의 반대입니다. flex 아이템은 flex 컨테이너의 교차축의 시작점 (cross end, 아래쪽 정렬)에 배치됩니다. |
center | Flex 아이템을 중앙 배치로 지정합니다. |
baseline | Flex 아이템은 베이스라인에 맟춰서 배치됩니다. |
stretch | Flex 컨테이너의 높이까지 뻗어 나갑니다. |
스폰서 링크
스폰서 링크
Category
TABMODE Copyright©All rights reserved