플렉서블 박스(flexible box)는 플렉스 박스(flex box)라고도 불리며, CSS3 에서 처음으로 소개된 레이아웃 모델이다. 이 레이아웃은 서로 다른 크기의 화면과 기기에서도 HTML 요소들이 자동으로 재정렬되어 웹페이지의 레이아웃을 언제나 똑같이 유지할 수 있게 해준다. 쉽게 말하자면 반응형 웹에서 레이아웃을 유지하게 해주는 CSS 속성이다.
- 플렉서블박스 사용법
display : flex | inline-flex
- 플렉스아이템 배치 방향 설정
flex-direction : row | row-reverse | column | column-reverse
- 플렉스아이템에 여러 줄 배치
flex-wrap : nowrap | wrap | wrap-reverse
- 플렉스아이템 배치방향과 여러줄 배치를 한번에 설정법
flex-flow : flex-directiion flex-wrap
- 주축방향으로 다양하게 배치
justify-content : flex-start | flex-end | center | space-between | space-around
- 교차축 방향으로 다양하게 플렉스 아이템 배치
align-items: stretch | flex-start | flex-end | center | baseline
- 플렉스아이템의 배치 순서 바꾸기
order : 정수값
- 플렉스아이템의 크기 늘이고 줄이기
flex : flex-grow | flex-shrink | flex-basis
앞서 배운 Flexible Box가 한 방향(1차원) 레이아웃 이었다면, Grid는 두 방향 (가로-세로, 2차원) 레이아웃이다. 따라서, 플렉서블 박스 보다 더 복합적인 레이아웃 표현이 가능하다. 그리드는 파이어폭스 브라우저의 개발자 도구를 이용하는것이 편하다. 부모 요소는 그리드 컨테이너라 부르고, 자식 요소는 그리드 아이템이라고 부른다.
그리드 컨테이너 : display :grid를 적용하는 그리드의 전체영역이다. 그리트 컨테이너 안의 요소들이 그리드 규칙의 영햑을 받아 정렬된다고 생각하면 된다.
그리드 아이템 : 그리드 컨테이너의 자식 요소들 이다. 바로 이 아이템들이 그리드의 규칙에 의해 배치된다.
그리드 트랙 : 그리드의 행 또는 열이다.
그리드 셀 : 그리드의 한칸을 가리키는 것이다. 그리드 아이템 하나가 들어가는 칸 이라고 생각하면 된다.
그리드 라인 : 그리드 셀을 구분하는 선이다.
그리드 넘버 : 그리드 라인의 각 번호이다.
그리드 갭 : 그리드 셀 사이의 간격이다.
그리드 영역 : 그리드 라인으로 둘러싸인 사각형 영역으로, 그리드 셀의 집합이다.
그리드의 속성들은 플렉서블 박스와 마찬가지로 , 컨테이너에 적용하는 속성, 아이템에 적용하는 속성 이렇게 두가지로 나뉜다.
- 그리드 컨테이너를 위한 속성
display : 그리드 컨테이너를 정의
grid-template-rows : 행의 크기를 정의
grid-template-columns : 열의 크기를 정의
grid-template-areas : 영역을 참조해 템플릿 생성
grid-template : grid-template-xxx 의 단축 속성
row-gap(grid-row-gap) : 행과 행 사이의 간격을(line) 정의
column-gap (grid-column-gap) : 열과 열 사이의 간격을(line) 정의
gap(grid-gap) : xxx-gap 의 단축 속성
grid-auto-rows : 행의 크기를 정의
grid-auto-columns : 열의 크기를 정의
grid-auto-flow : 자동 배치 알고리즘 방식을 정의
grid : grid-template-xxx 와 grid-auto-xxx의 단축 속성
align-content : 그리드 콘텐츠를 수직 정렬
justify-content : 그리드 콘텐츠를 수평 정렬
place-content : align-content 와 justify-content의 단축 속성
align-items : 그리드 아이템들을 수직 정렬
justify-items : 그리드 아이템들을 수평 정렬
place-items : align-items 와 justify-items의 단축 속성
- 그리드 아이템을 위한 속성
grid-row-start : 그리드 아이템의 행 시작 위치 지정
grid-row-end : 그리드 아이템의 행 끝 위치 지정
grid-row : grid-row-xxx 의 단축 속성 (행 시작 끝 위치 )
grid-column-start : 그리드 아이템의 열 시작 위치 지정
grid-column-end : 그리드 아이템의 열 끝 위치 지정
grid-column : grid-column-xxx 의 단축 속성 (열 시작 끝 위치)
grid-area : 영역 이름을 설정하거나 , grid-row와 grid-column 의 단축 속성
align-self : 단일 그리드 아이템을 수직 정렬
justify-self : 단일 그리드 아이템을 수평 정렬
place-self : align-self 와 justify-self 의 단축 속성
order : 그리드 아이템의 배치 순서를 지정
z-index : 그리드 아이템의 쌓이는 순서를 지정
Grid의 사용법은 엄청 다양하고 방대하기 때문에 , 링크를 들어가 학습하도록 한다.