정의 및 사용 방법
flex-basis 속성은 플렉스 레이아웃에서 플렉스 아이템의 크기를 계산할 때 사용하는 주축 방향의 기준(basis) 크기를 지정합니다.
주축 방향의 기준 크기란
플렉스 컨테이너(부모)의 flex-direction 속성으로 지정된 플렉스 아이템의 배치 방향이 '가로 축'일 때는 너비를, '세로 축'일 때는 높이를 기준으로 한 크기를 말합니다.
기본 예제
이 속성은 개별 플렉스 아이템에 해당하는 요소에 지정해야 합니다.
Item-1
Item-2
Item-3
부연 설명
<div class="flex-container">
<div class="item item-1">Item-1</div>
<div class="item item-2">Item-2</div>
<div class="item item-3">Item-3</div>
</div>
그 다음 아래의 CSS 코드 블록처럼 .flex-container를 플렉스 컨테이너로 지정하고, flex-direction 속성의 값을 row로 설정하여 플렉스 아이템의 배치 방향이 '가로 축'이 되도록 했습니다. 이렇게 하면, flex-basis로 설정하는 플렉스 아이템의 주축 방향의 크기 기준은 너비가 됩니다.
.flex-container { /* 플렉스 컨테이너 */
display: flex;
border: 4px dashed silver;
flex-direction: row; /* 플렉스 아이템의 배치 방향이 '가로 축'이므로
flex-basis는 플렉스 아이템의 너비를 기준으로 한 크기를 설정함 */
}
.item { /* 플렉스 아이템 */
border: 4px solid blue;
background-color: silver;
flex-grow: 0; /* 남는 공간이 있어도 플렉스 아이템이 전혀 커지지 않는다는 뜻 */
flex-shrink: 0; /* 공간이 부족하더라도 플렉스 아이템이 전혀 축소하지 않는다는 뜻 */
flex-basis: auto; /* 플렉스 아이템의 본래 콘텐츠 너비를 기준으로 한다는 뜻 */
}
.item.item-2 {
background-color: yellow;
flex-basis: /* value <= 라이브 데모에서 동적으로 구현 */
}
플렉스 아이템의 주축 방향의 크기는 flex-basis, flex-grow, flex-shrink 속성이 함께 작동하여 최종 크기를 결정합니다.
특징
형식 구문
selector {
flex-basis: content | <'width'>
}
구문
/* content: 플렉스 아이템의 내용에 따라 자동으로 크기가 조정 */
flex-basis: content;
/* <'width'>: width 속성에서 사용하는 값의 종류들(<길이> | <백분율(%)> | <키워드>)을 동일하게 사용 가능 */
flex-basis: auto;
flex-basis: 120px;
flex-basis: 13rem;
flex-basis: 50%;
flex-basis: max-content;
flex-basis: min-content;
flex-basis: fit-content;
/* 글로벌 값 */
flex-basis: inherit;
flex-basis: initial;
flex-basis: revert;
flex-basis: revert-layer;
flex-basis: unset;
값
flex-basis 속성은 형식 구문에서 정의한 content와 <'width'>를 값으로 사용할 수 있습니다.
- 주축 방향이 '가로 축'이면
- 주축 방향이 '세로 축'이면
-
min-height가 설정되어 있는 경우 -
max-height가 설정되어 있는 경우
-
aspect-ratio가 설정되어 있는 경우
content
플렉스 아이템의 내용에 따라 자동으로 크기가 조정됩니다.
<'width'>
<'width'>width 속성에서 사용하는 값의 종류들(<길이> | <백분율(%)> | <키워드>)을 동일하게 사용 가능합니다.
<길이>
길이 단위의 값은 항상 양수입니다. (음수 값은 유효하지 않습니다.)
<백분율(%)>
<키워드>
auto,
max-content,
min-content,
fit-content 키워드를 사용할 수 있습니다.
auto는 flex-basis 속성의 초깃값입니다.
형식 정의
브라우저 호환성
| 속성과 값 |
데스크탑 Chrome
|
데스크탑 Edge
|
데스크탑 Firefox
|
Safari
|
|---|---|---|---|---|
flex-basis
|
29 | 12 | 20 | 9 |
content
|
94 | 94 | 61 | 15.4 |
fit-content
|
94 | 94 | 94 | 16 |
max-content
|
94 | 94 | 66 | 16 |
min-content
|
94 | 94 | 66 | 16 |
명세서
| 명세서 사양 | |
|---|---|
flex-basis
|
CSS Flexible Box Layout Module Level 1 #flex-basis-property |
같이 보기
- CSS flexbox의 align-items 속성
- CSS flex-direction 속성 – 플렉스 아이템이 배치되는 흐름 방향 지정
- CSS flex-wrap 속성 – 플렉스 컨테이너의 줄바꿈 허용 설정
- CSS flex-flow 속성 – flex-direction과 flex-wrap의 단축 속성
- CSS flexbox의 justify-content 속성
- CSS flexbox의 align-content 속성
- CSS flexbox의 gap 속성
- CSS flexbox의 align-self 속성
- CSS 플렉스 컨테이너(Flex Container)
- CSS 플렉스 아이템(Flex Item)