Post

CSS 레이아웃

레이아웃(Layout)이란? : 구성 요소를 공간에 효과적으로 배열하는 일,  또는 그 기술
웹 요소를 올바른 장소에 배치하는 기술을 말한다.
CSS 레이아웃 기술은 형제 요소들을 가지런히 정렬할 수 있게 해주며 요소가 컨테이너 내부에 어떤 위치에 놓이게 될지 결정할 수 있다.

Flexbox

플렉스박스는 행 또는 열을 주축으로 설정하여 웹 요소를 배치 및 정렬하는 1차원 레이아웃 방식을 말한다.
요소의 배치와 정렬은 플렉스 컨테이너와 플렉스 아이템간의 상호작용을 통해 결정된다.

  • 플렉스 컨테이너 : 플렉스박스 방식으로 레이아웃을 결정할 요소
  • 플렉스 아이템: 플렉스 컨테이너 내부에서 플렉스박스 방식으로 배치되는 요소 

##

Flexbox 기본 사용법

Flexbox를 사용하기 위해서는 먼저 플렉스 컨테이너를 지정해주어야 한다 display: flex;

1
2
3
ul{
display:flex;
}

Flexbox의 옵션들

- flex-direction

플렉스 컨테이너의 주축을 결정하는 속성이다. 행은 가로 축을, 열은 세로 축을 주축으로 한다

   
속성값 의미
row 기본값, 주축은 행이고 방향은 콘텐츠의 방향과 동일
row-reverse 주축은 행이고 방향은 콘텐츠의 방향과 반대
column 주축은 열이고 방향은 콘텐츠의 방향과 동일
column-reverse 주축은 열이고 방향은 콘텐츠의 방향과 반대

- flex-wrap

플렉스 아이템들이 강제로 한줄에 배치되게 할 것인지, 또는 가능한 영역 내에서 벗어나지 않고 여러행으로 나누어 표현 할 것인지를 결정하는 속성

   
속성값 의미
nowrap 기본값. 공간이 부족하더라도 요소를 한줄에 배치
wrap 공간 크기에 따라 요소가 여러 행에 걸쳐 배치
wrap-reverse wrap과 동일하나 요소 나열되는 시작점과 끝점이 반대

- justify-content

플렉스아이템들이 플렉스박스 주축을 따라 배치될 때, 요소 사이의 공간을 분배하는 방식을 결정

   
속성값 의미
flex-start 주축의 시작점으로부터 끝점을 향해 배치
flex-end 주축의 끝점으로부터 시작점을 향해 배치
center 주축의 중심부에 배치
space-between 주축에서 일정한 간격을 둔 채 양끝 정렬 배치
space-around 모든 요소가 동일한 여백을 갖도록 배치
space-evenly 모든 요소 사이의 간격을 동일하게 유지해 배치

- align-items 

플렉스 컨테이너의 교차축 위에서 플렉스아이템들이 어떤 식으로 정렬될 것인지를 스스로 결정

   
속성값 의미
stretch 플렉스아이템이 교차축 길이에 맞춰 늘어남, but 너비 or 높이가 우선
flex-start 교차축의 시작점으로부터 끝점을 향해 배치
flex-end 교차축의 끝점으로부터 시작점을 향해 배치
center 교차축의 중심부에 배치

- align-self

각각의 플렉스아이템이 교차축에서 어떤 식으로 정렬될 것인지를 스스로 결정

   
속성값 의미
stretch 플렉스아이템이 교차축 길이에 맞춰 늘어남, but 너비 or 높이가 우선
flex-start 교차축의 시작점으로부터 끝점을 향해 배치
flex-end 교차축의 끝점으로부터 시작점을 향해 배치
center 교차축의 중심부에 배치

- align-content

교차축 위에서 justify-content와 동일하게 사용할 수 있는 속성, 다음 두 조건이 만족되면서 여유 공간이 있을 때만 동작할 수 있다 - 아이템을 배치하기 위해 필요한 공간보다 플렉스 컨테이너가 더 클 때  - flex-wrap의 값이 wrap으로 지정되어 있을 때

- flex-grow

플렉스아이템이 기본 크기보다 더 커질 수 있는지를 결정하고, 플렉스 컨테이너 내부에서 할당받을 수 있는 공간을 상대적으로 정의할 수 있는 속성

   
속성값 의미
숫자 음수는 허용되지 않는다. 양의 정수, 양의 실수 가능

- flex-shrink

플렉스아이템이 기본 크기보다 더 작아질 수 있는지를 결정하고, 플렉스 컨테이너 내부에서 할당받을 수 있는 공간을 상대적으로 정의할 수 있는 속성

   
속성값 의미
숫자 음수는 허용되지 않는다. 양의 정수, 양의 실수 가능

- flex-basis 

플렉스아이템 초기 크기를 지정한다. box-sizing이 따로 설정되지 않은 경우, 콘텐츠 박스의 크기를 결정하게 된다. 기본값은 auto이다

   
속성값 의미
단위가 있는 값 width 속성을 정의할 때와 동일한 방식

- flex

flex는 flex-grow, flex-shrink, flex-basis 세 가지 속성을 정의할 수 있는 단축 속성이다(순서대로)**

1
2
3
.item{
  flex: 0 0 200px;
}
This post is licensed under CC BY 4.0 by the author.