flex
축약형 속성 이해하기
flex
속성은 아래 3가지 속성을 한 번에 설정하는 축약형:
flex: flex-grow flex-shrink flex-basis;
세 가지 값의 의미
- 첫 번째 값 (
flex-grow
):- 남는 공간을 얼마나 차지할 것인지의 비율
- 기본값:
0
(늘어나지 않음) 1
이상이면 남는 공간을 해당 비율만큼 차지
- 두 번째 값 (
flex-shrink
):- 공간이 부족할 때 얼마나 줄어들지의 비율
- 기본값:
1
(다른 요소와 동일하게 줄어듦) 0
이면 줄어들지 않음, 클수록 더 많이 줄어듦
- 세 번째 값 (
flex-basis
):- 요소의 기본 크기
px
,%
,em
등의 단위 사용auto
는 요소의 원래 크기를 사용
자주 쓰는 축약 표현들
flex: 0 0 20%
- 의미:
- 늘어나지 않고 (
flex-grow: 0
) - 줄어들지도 않고 (
flex-shrink: 0
) - 기본 너비는 20%로 고정 (
flex-basis: 20%
)
- 늘어나지 않고 (
- 용도: 고정 너비가 필요한 요소(예: 사이드바)
flex: 1 0 auto
- 의미:
- 남는 공간을 모두 차지 (
flex-grow: 1
) - 줄어들지 않고 (
flex-shrink: 0
) - 기본 크기는 내용물에 맞춤 (
flex-basis: auto
)
- 남는 공간을 모두 차지 (
- 용도: 남는 공간을 모두 채워야 하는 메인 컨텐츠
flex: 0 1 auto
- 의미:
- 늘어나지 않고 (
flex-grow: 0
) - 필요하면 줄어들고 (
flex-shrink: 1
) - 기본 크기는 내용물에 맞춤 (
flex-basis: auto
)
- 늘어나지 않고 (
- 용도: 기본 설정값, 보통 내용물 크기를 유지하려는 요소
헤더에 많이 쓰는 패턴
로고
메뉴
사용자
header {
display: flex;
justify-content: space-between;
}
.logo { flex: 0 0 20%; } /* 로고는 20% 고정 */
.menu { flex: 1 1 auto; } /* 메뉴는 남는 공간 다 차지 */
.user { flex: 0 0 auto; } /* 사용자 영역은 내용물 크기만큼만 */
가장 자주 쓰이는 패턴 세 가지
flex: 0 0 200px
- 너비 고정, 늘어나지도 줄어들지도 않음flex: 1 1 auto
- 남는 공간을 차지, 필요시 줄어듬flex: 1 0 0
- 동등하게 공간 분할, 줄어들지 않음
'CSS' 카테고리의 다른 글
Fruitables 예제 제목과 버튼 양쪽 정렬/카드배열/html 정리 (0) | 2025.04.18 |
---|---|
[CSS] 자바 스크립트 없이 슬라이드 만들기 (2유형+1유형) (0) | 2025.04.07 |
[CSS] 탭 메뉴 (자바스크립트 없이) (0) | 2025.04.07 |
[CSS] display 속성에서 none / block의 차이 (0) | 2025.04.01 |