display: flex;
레이아웃 배치를 위한 전용 기능으로 고안된 기능. 인터넷 익스플로러 구 버전에서는 지원 안 되기도 함. IE 10, 11 지원.
<div class="container">
<div class="item">box1</div>
<div class="item">box2</div>
<div class="item">box3</div>
</div>
위와 같이 html 구조를 설정해, box들을 가로로 나란히 병렬하고 싶을 때.
부모요소인 container에 display: flex;를 적용해 사용. container가 flex의 영향을 받는 공간이며, 그 안에 자리잡는 item들이 설정한 속성에 따라 배치됨.
***** flex 적용 속성 *****
◎ item 적용 속성
(1) flex-basis // 아이템 기본 크기 설정
flex-direction이 row일 때는 width를, column일 때는 height를 설정.
width를 설정하면 아이템이 width보다 많을 때 다음 줄로 넘기는 반면, item 내용이 설정한 flex-basis보다 많을 경우 아이템 크기만큼 늘어남. 둘 다 적용하면 width가 적용됨.
(2) flex-grow // 여백 나눠 가지기
flex-grow에 숫자를 적으면 여백이 같은 비율로 배분되어 부피 차지.(item의 부피가 같아지는 것 아님.)
각 아이템에 입력한 숫자만큼의 비율로 여백 부여됨. 기본값 0
(3) flex-shrink // flex-basis보다 작아질 수 있는지 설정
flex-grow와 함께 쓰이는 속성. item이 flex-basis 값보다 작아질 수 있는지 결정.
0보다 큰 값을 입력하면 해당 item은 flex-item보다 작아질 수 있음. 기본값 1
container의 폭을 줄여도 flex-shrink를 0으로 설정하면 설정된 width값보다 작아지지 않음.
(4) flex // 축약형
flex: flex-grow, flex-shrink, flex-basis;
.item {
flex: 1;
// flex-grow: 1; flex-shrink: 1; flex-basis: 0%;
flex: 1 1 20%;
// flex-grow: 1; flex-shrink: 1; flex-basis: 20%;
flex: 1 auto;
// flex-grow: 1; flex-shrink: 1; flex-basis: auto;
// flex-basis 표기 생략시 0%로 설정됨
}
+) 영역 차제로 정확한 비율로 크기를 배분하고 싶다면 flex-basis를 0으로 설정하면 유용함.
(5) align-self // 교차축으로 아이템 정렬
align-item이 전체 item에 적용하는 정렬 설정이라면 align-self는 해당 아이템만 적용하는 정렬 속성. 기본값 auto.
기본적으로 align-item의 설정을 상속 받음. align-item보다 우선권 있음.
(6) order // 나열 순서
각 아이템의 배치 순서를 결정. 시각적으로 바꾸는 것일 뿐 html 자체가 바뀌는 건 아님. 작은 숫자일수록 먼저 배치.
(7) z-index // Z축 정렬
Z축(화면을 보는 사람으로부터 얼마나 떨어져 있는지 정도) 정렬. 숫자가 클수록 위에 올라옴.
'지식조각' 카테고리의 다른 글
html, css에서 구글 폰트 (Google Font) 사용하기 (0) | 2021.12.14 |
---|---|
터미널 git 명령어 자주쓰는 것 정리 (0) | 2021.11.23 |
display: flex; 속성 정리 (1) (0) | 2021.11.22 |
display: flex; 선언한 부모의 자식 중, 마지막 자식 오른쪽에 붙이려면? (0) | 2021.11.16 |
SCSS 설치와 기본세팅 방법 (0) | 2021.11.09 |