본문으로 건너뛰기

Positioned Layout

overflow 속성은 position 속성과 결합할 때, 고려해야 할 사항들이 있다.

사례#1: Absolute w/ Overflow​

.wrapper {
overflow: hidden;
/* position: relative 없음 */
}
.box {
position: absolute;
}
  • absolute로 설정된 자식은 "누가 나를 통제하나?"를 먼저 탐색
  • 부모가 position: relative가 없으면 "통제자"가 없는 상태
  • 그래서 overflow: hidden을 무시하고 위치를 잡음

따라서 자식 요소 position: absolute 상황에서는 부모의 position을 고려한 작업이 필요하다

사례#2: Containing Block과의 관계​

.wrapper {
position: relative; /* containing block이 됨 */
overflow: auto;
}
.box {
position: absolute;
}

absolute 요소는 containing block이 설정되면 일반 요소처럼 overflow의 영향을 받는다. 따라서 스크롤 컨테이너 안에서도 정상적으로 스크롤 가능하다.

예외: Fixed Position w/ Overflow​

.wrapper {
position: relative;
overflow: hidden;
}
.box {
position: fixed;
}
  • fixed 요소는 일반 HTML 요소로는 contain할 수 없음
  • overflow: hidden이나 auto의 영향을 받지 않음
  • 항상 viewport를 기준으로 동작
  • 이런 특성을 이용해 스크롤 컨테이너를 벗어나는 툴팁 등을 구현할 수 있음