티스토리 뷰
소소한 트러블 슈팅.
현재 진행하는 과제에서, 상단에 고정형 Header를 추가해달라는 요건이 있었음.
평소처럼 position:sticky를 사용했는데...적용이 안됨.
안 될 이유가 당장 없는데 안되서 당황함,
그래서 삽질을 좀 함.
그래서 정리를 함.
문제점
상위에 overflow에 대한 값이 있으면 적용되지 않음.
sticky는 상위 요소 중 하나라도 overflow 속성이 설정되어 있으면 작동하지 않음.
(ex. overflow로 hidden이나 auto, scroll등)
sticky는 뷰포트를 기준으로 top등의 값을 해석해서 노출하는 역할인데, 상위의 overflow 설정이 해당 영역을 또 다른 스크롤 컨테이너로 해석하기 때문이고, 이로 인해 sticky가 적용되는 뷰포트에 대한 해석이 달라지기 때문. 이번 과제에선 서비스 최상위의 스크롤에 대한 정의값이 있었고 그 아래아래아래아래아래....에 내 코드가 있으니 동작이 씹혔던 것.
해결법
아래와 같은 몇가지 대안이 있음
1. overflow의 기본값(visible) 유지. ...당연하지만 나는 적용 불가함
2. 상위를 overflow를 clip으로 정의
3. height 값 고정 (선정) -> 신규 지면의 최상단 스크롤을 설정하기에 높이가 변경될 일이 없고, 무엇보다 overflow clip을 설정함으로써 발생할 예상치 못 한 사이드 이펙트를 트래킹하기보다는, 이 방법이 좋다고 판단되어 적용함
'개발 > 트러블 슈팅(Trouble Shooting)' 카테고리의 다른 글
| [sonarqube] intellij에서 analyze current file 했을때, jsonrpc.RemoteEndpoint bad escape 이슈 (2) | 2025.03.19 |
|---|---|
| iOS는 다운받은 이미지의 크기를 멋대로 줄여버린다. (0) | 2023.09.19 |
| [webpack] you are using the runtime-only build of vue where the template compiler is not available (0) | 2021.11.15 |
| [moment] Module not found: Error: Can't resolve './locale' (0) | 2021.10.05 |
| [babel] core-js 버전을 3으로 올리면서 만나버린 것들 (2) | 2021.09.14 |
댓글