반응형
Header가 다음과 같은 구조를 갖는다고 생각해 보자.
<header class="header">
<div class="header__wrapper">
...
</div>
</header>
Header는 스크롤 이벤트에 따라 position이 변경된다.
즉 기존의 HTML 구조에서 독립적인 요소로 변경된다는 것이다.
예를 들어 scrollY 값이 0이 아닌 경우 header 태그에. sticky css를 적용시킨다고 가정해 보자.
.sticky {
position: fixed;
top: 0;
left: 0;
width: 100%;
z-index: 11;
}
header에는 아무런 css를 설정하지 않았다고 하자.
이 결과는 갑자기 Header가 툭 끊어지는 느낌과 하위 콘텐츠가 위로 확 올라가는 느낌을 받는다.
붙을 때도 마찬가지로 header 요소가 위로 휙 끊어져서 붙는 것처럼 보이며 하위 콘텐츠가 아래로 확 내려가는 끊어짐 현상을 보여준다.
이를 해결하기 위해 나는 header__wrapper에. sticky class를 붙여주기로 했다.
생각해 보자.
사용자의 스크롤 이벤트가 발생한다.
만약 header에 자체 height 속성이 없다면, header__wrapper가 position이 fixed로 변경되는 순간.
동일한 현상이 발생할 것이다.
그래서 다음과 같이 수정했다.
header {
height: 40px;
}
header에 기본 높이를 가지도록 만들었다. 이 높이는 header__wrapper의 크기와 같다.
header가 기본 크기를 가짐에 따라 header__wrapper의 position 값이 fixed로 변경되어도 기본 높이를 유지할 수 있어 이전과 같은 끊김 현상이 제거되었다.
반응형
'웹 프로그래밍 기초' 카테고리의 다른 글
Grid (0) | 2023.04.10 |
---|---|
[CSS] Cascade, specificity, inheritance (1) | 2023.04.10 |
DOM (2) (0) | 2022.03.12 |
DOM (1) (0) | 2022.03.12 |
브라우저의 렌더링 과정 (0) | 2022.03.11 |
댓글