Flexbox 레이아웃에서 발생하는 축소 문제
CSS Flexbox를 사용하다 보면 화면이나 컨테이너의 크기를 줄였을 때 플렉스 아이템들이 의도치 않게 비율에 따라 함께 줄어드는 현상을 겪게 됩니다. 이는 플렉스 아이템의 flex-shrink 기본값이 1로 설정되어 있어, 공간이 부족해지면 아이템이 자동으로 축소되기 때문입니다.
해결 방법: CSS 속성 추가하기
플렉스 아이템의 의도치 않은 축소를 방지하려면 아래와 같은 CSS 코드를 추가하면 됩니다.
* {
flex-shrink: 0;
min-width: 0;
min-height: 0;
}각 속성의 역할
flex-shrink
flex-shrink는 플렉스 아이템이 축소될 수 있는지 여부를 결정하는 속성입니다. 기본값인 1로 설정되면 컨테이너 공간이 부족할 때 아이템이 줄어들 수 있습니다. 반면 값을 0으로 지정하면 아이템이 더 이상 축소되지 않고 원래 크기를 그대로 유지합니다.
min-width와 min-height
min-width: 0과 min-height: 0은 플렉스 아이템이 콘텐츠 크기보다 작아질 수 있도록 허용하는 역할을 합니다. 기본적으로 플렉스 아이템의 최소 크기는 auto(콘텐츠 크기)로 설정되어 있어 내용물보다 작아지지 않는데, 이 값을 0으로 지정하면 아이템이 콘텐츠 크기 이하로도 유연하게 조절될 수 있습니다.
이 세 가지 속성을 함께 활용하면 Flexbox 레이아웃에서 요소가 임의로 줄어드는 문제를 효과적으로 제어하고, 원하는 레이아웃 구조를 안정적으로 유지할 수 있습니다.