flex를 심도 있게 공부하고 싶어서 레이아웃 잡는 것 외에 flex item에 적용하는 속성들에 대하여 학습하기로 하였다.
auto
이며, 이때에는 width, height 값은 가 적용된다. 반대로, flex-basis가 적용되어 있다면 width, height 값은 무시되어 컨텐츠의 크기를 갖게된다.0
보다 큰 값이 들어가면 해당 아이템이 빈 공간을 메우게 된다.css
/* 1:2:1의 비율로 세팅할 경우 */
.item:nth-child(1) { flex-grow: 1; }
.item:nth-child(2) { flex-grow: 2; }
.item:nth-child(3) { flex-grow: 1; }
여백의 비는 정확히 1:2:1이다. 정수 뿐 아니라 소수 비율도 가능하다.
0
보다 큰 값이 들어가면 해당 아이템이 flex-basis보다 작아진다.1
이기 때문에 적용하지 않았어도 아이템이 flex-basis보다 작다.css
.container {
display: flex;
}
.item:nth-child(1) {
flex-shrink: 0;
width: 100px;
}
.item:nth-child(2) {
flex-grow: 1;
}
서로 관련된 속성이기 때문에, 축약형을 쓰는 것이 편리하다. 단, 주의할 점은 flex: 1; 과 같이 flex-basis를 생략해서 쓰면 flex-basis의 값은 0 이다.
css
.item {
flex: 1;
/* flex-grow: 1; flex-shrink: 1; flex-basis: 0%; */
flex: 1 1 auto;
/* flex-grow: 1; flex-shrink: 1; flex-basis: auto; */
flex: 1 500px;
/* flex-grow: 1; flex-shrink: 1; flex-basis: 500px; */
}