CSS에서 height 대신에 min-height를 사용해야 하는 이유
이번 포스팅에서는 CSS에서 height
속성을 사용할 때 흔히 겪을 수 있는 문제점과 min-height
속성을 사용하여 이러한 문제를 쉽게 예방하는 방법에 대해서 살펴보았습니다.
height 속성의 기본값
height
속성을 명시해주지 않으면 auto
라는 키워드가 기본값으로 사용이 되는데요.
height
속성이 auto
로 설정되어 있는 요소는 내부 컨텐츠를 해당 요소를 딱 맞게 담을 수 있을만큼 높이가 자동 결정됩니다.
이 기본값 덕분에 우리가 height
속성을 별도로 명시해주지 않아도 요소의 높이는 화면 크기에 따라서 자동 조절됩니다.
다시 말해 요소의 폭이 좁아지면 한 줄에 담을 수 있는 컨텐츠의 양이 적어지기 때문에 요소의 높이가 높아지게 되고,
반대로 요소의 폭이 넓어지면 한 줄에 담을 수 있는 컨텐츠의 양이 늘어나서 요소의 높이가 자연스럽게 낮아지게 됩니다.
height 속성의 위험성
height
속성을 직접 설정해줄 때는 여러 가지 문제로 이어질 수 있으므로 각별한 주의가 필요한데요.
대표적인 사례로 height
속성을 절대 픽셀값으로 설정해서 의도치 않게 컨텐츠가 요소 밖으로 삐져나오는 경우를 들 수 있습니다.
위 화면에서 <div>
요소의 height
속성을 100px
로 설정하였기 때문에, 두번째 요소의 컨텐츠가 요소 밖으로 밀려나오는 것을 볼 수 있습니다.
CSS에서 컨텐츠가 넘칠 때 요소 밖으로 빠져나올지 말지는 결정하는
overflow
속성에 대해서는 별도의 포스팅에서 다루었으니 참고 바랍니다.
이러한 현상은 비단 고정 폭의 요소 뿐만 아니라, width
속성이 퍼센트(%)와 같이 상대값으로 설정되어 있을 경우에도 쉽게 발생할 수 있습니다.
특히, 디스플레이의 폭이 상대적으로 좁은 모바일 환경에서는 이것이 전체 웹페이지의 레이아웃을 어긋나게 하는 원인이 될 수 있으며, 데스크탑 환경에서도 사용자가 브라우저의 너비를 확 줄여버리면 비슷한 문제로 이어질 수 있어서 width
속성을 명시해줄 때는 각별한 주의가 필요하겠습니다.
대안: min-height 속성
그럼 어떻게 하면 컨텐츠가 요소 밖으로 밀려나오는 문제를 예방하면서 요소의 높이를 좀 더 안전하게 지정할 수 있을까요?
바로 여기서 width
속성의 대안으로 min-width
속성을 활용할 수 있는데요.
min-width
속성을 사용하면 컨텐츠의 양이 적을 때는 설정값으로 높이가 고정되고, 컨텐츠 양이 많을 때는 넘치지 않고 요소의 높이가 자연스럽게 늘어나기 때문입니다.
위 화면에서 보시면 height
속성 대신에 min-height
속성을 사용하여 첫 번째 요소의 높이는 100px
이 유지되지만, 두 번째 요소의 높이는 늘어난 것을 확인할 수 있습니다.
마치면서
지금까지 CSS에서 height
속성을 사용할 때 흔히 발생할 수 있는 문제와 min-height
속성을 사용하여 이러한 문제를 피하는 방법에 대해서 알아보겠습니다.
저는 개인적으로 모바일 친화적인 디자인을 위해서 왠만하면 height
속성은 애초에 사용하지 않으려고 노력하는 편인데요.
지금까지 함께 살펴본 것 처럼 높이 지정이 필요한 경우에는 min-height
속성을 우선적으로 쓰는 것이 바람직한 경우가 많기 때문입니다.