overflow란?
부모 아래에 있는 자식이 부모를 넘어서게 하고 싶다고 했을 때 overflow를 사용하면 된다.
overflow는 말 그대로 넘치는 콘텐츠에 대한 처리 방법이다.
이때 수평방향은 overflow-x, 수직방향은 overflow-y를 사용하면 된다.
overflow는 크게 4가지 속성값을 가진다. x와 y는 방향만 다를 뿐 속성은 같다.
- visible(기본값) : 경계를 벗어나는 컨텐츠를 자르지 않고 넘치게 둔다.
- hidden : 경계를 벗어나는 컨텐츠를 자른다.
- scroll : 스크롤바를 추가해 사용자가 스크롤할 수 있게 한다.
- auto : 스크롤바가 필요하면 스크롤바를 추가, 그렇지 않으면 추가하지 않는다.
overflow가 작동하지 않을 때
그런데 overflow-x와 overflow-y를 사용했는데도 자식이 부모를 넘어서지 못하는 경우가 있다.
이는 대개 부모의 display: flex;가 원인이 될 수 있다.
flexbox인 부모의 자식(flex item)들은 flex box에 맞춰 크기가 조절되기 때문이다.
flex box에서 자식요소의 크기를 맞추는 것을 막기 위해서는 flex-shrink: 0을 사용하면 된다.
flex-shrink란?
flex-shrink란 flex box안에서 자식(flex item)을 얼마나 축소시킬지 지정하는 속성이다.
flex-shrink의 기본값은 1이다. 1보다 커질수록 해당 아이템은 다른 아이템보다 더 많이 축소되게 된다.
이때 flex-shrink 값을 0으로 주면 해당 아이템은 축소되지 않는다.
따라서 의도대로 overflow가 작동하게 된다.
overflow & flex-shrink 사용 예시
See the Pen overflow-x by 김다영 (@xnpzlttb-the-solid) on CodePen.
'HTML, CSS' 카테고리의 다른 글
(CSS) flexbox 3탄 : flex-grow, flex-shrink, flex-basis, flex 사용법 (0) | 2024.05.09 |
---|---|
(CSS) flexbox 2탄 : flex-flow, align-content, order 사용법 (0) | 2024.05.08 |
(CSS) @keyframe과 animation 사용 방법 정리 (2) | 2024.05.01 |
(CSS) 단위 정리, px, em, rem, vh, vw, % (0) | 2024.04.29 |
(CSS) position : absolute로 요소 정중앙에 위치 시키기 (0) | 2024.04.24 |