실무에 바로 적용할 수 있는 웹 제작 꿀팁 및 유용한 자료실 공간입니다.
나눔웹이 제공하는 핵심 노하우와 마케팅 인사이트를 자유롭게 활용해 보십시오.

나눔웹 UI/UX 꿀팁

고정 헤더에 제목이 가려질 때, scroll-margin-top으로 앵커 맞추는 법

목차나 "서비스 안내" 버튼을 눌렀는데, 제목이 고정 헤더 아래로 숨어 보이지 않았던 적 있으신가요?
고정·스티키 메뉴가 있는 페이지에서 흔한 문제입니다. scroll-margin-top을 앵커 대상에 두면, 레이아웃 여백은 그대로 두고 스크롤 멈춤 위치만 아래로 밀어 제목이 메뉴 아래에 깔끔히 드러납니다.

💡 왜 그냥 margin-top을 주면 안 되나요?

일반 margin-top이나 padding-top은 평소 화면에도 빈 칸이 생깁니다. scroll-margin-top은 해시(#)로 이동할 때만 쓰는 스크롤용 여백이라, 문단 간격은 유지한 채 앵커 위치만 보정합니다. 크롬·엣지·사파리·파이어폭스 최신 버전에서 모두 동작합니다.

1. 앵커가 붙는 제목에 scroll-margin-top 넣기

링크 대상이 되는 h2·h3에 id를 두고, 헤더 높이만큼 scroll-margin-top을 줍니다. 헤더가 약 64px라면 12px 정도 여유를 더해 76px처럼 잡으면 제목이 메뉴에 딱 붙지 않습니다.

/* 고정·스티키 헤더 높이 + 살짝 여유 */
:root {
  --header-h: 64px;
}

.article h2[id],
.article h3[id] {
  scroll-margin-top: calc(var(--header-h) + 12px);
}

2. HTML 앵커와 목차 링크 연결

대상 제목에 id를 쓰고, 목차·버튼은 href="#id"로 연결합니다. 자바스크립트 스크롤 보정 없이도 브라우저가 스크롤 마진을 반영합니다. 헤더 높이가 모바일·PC에서 다르면 미디어쿼리로 --header-h만 바꿔 주면 됩니다.

<nav>
  <a href="#pricing">요금 안내</a>
</nav>

<h2 id="pricing">요금 안내</h2>

/* 모바일 헤더가 더 높을 때 */
@media (max-width: 768px) {
  :root { --header-h: 56px; }
}

3. scroll-padding과의 차이, 주의할 점

scroll-padding-top은 스크롤 컨테이너(보통 html) 쪽에 여백을 두는 방식이고, scroll-margin-top은 도착 요소에 붙입니다. 문서 목차처럼 특정 제목만 보정할 때는 마진이 범위가 분명합니다. 둘을 같은 값으로 겹치면 여백이 두 배가 되니, 한쪽에만 맞추는 편이 안전합니다. 또한 [id] 전체에 걸면 숨은 스킵 링크·폼 필드까지 영향이 갈 수 있어, 본문 제목 선택자로 좁히는 것을 권합니다.

구분쓰는 곳특징
scroll-margin-toph2[id] 등 앵커 대상레이아웃 간격 유지, 스크롤만 보정
scroll-padding-tophtml / 스크롤 박스컨테이너 전역 여백
margin+padding 트릭구형 우회평소에도 빈 칸이 생김

"앵커는 제목이 보이는 자리에서 멈춰야 합니다."

나눔웹은 고정 메뉴·원페이지 섹션을 만들 때 헤더 높이와 앵커 여백을 같이 맞춰,
목차와 CTA 클릭이 가려지지 않게 손봅니다.


List of Articles
번호 분류 제목 글쓴이
83 웹 성능 홈페이지 로딩 속도를 3배 높이는 '이미지 최적화' 실무 가이드 나눔웹
82 퍼블리싱 CSS 변수로 유지보수와 테마 기능을 한 번에! (CSS Custom Properties) 나눔웹
81 마케팅 카카오톡 링크 썸네일의 비밀! 클릭률을 높이는 '오픈 그래프(OG)' 세팅법 나눔웹
80 모바일 모바일 꽉 찬 화면 하단 짤림 현상! '100vh'의 함정과 완벽 해결법 나눔웹
79 웹 성능 홈페이지 첫 화면 글자 깜빡임(투명 현상) 1초 만에 해결하는 법 나눔웹
78 퍼블리싱 스마트폰에서 로고가 흐리게 보인다고요? 'SVG' 포맷이 정답입니다. 나눔웹
77 웹 성능 클릭 실수 유발하는 '화면 덜컹거림(CLS)', 단 한 줄로 해결하는 법 나눔웹
76 모바일 고객의 이탈을 막는 1초 디테일, '모바일 맞춤형 키보드' 세팅법 나눔웹
75 UI/UX 모바일에서 버튼 누를 때 생기는 촌스러운 '회색 박스' 없애는 법 나눔웹
74 UI/UX 레이아웃을 망치는 긴 글, 예쁘게 '...'으로 자르는 마법의 CSS 나눔웹
73 UI/UX 상단 메뉴에 제목이 가려진다고요? '부드러운 스크롤' 마법의 2줄 나눔웹
72 모바일 아이폰에서 입력창 누를 때 화면 '자동 확대'되는 현상 막는 법 나눔웹
71 퍼블리싱 지저분한 모바일 스크롤바, 기능은 남기고 쏙 숨기는 마법의 CSS 나눔웹
70 모바일 모바일 웹을 진짜 '앱(App)'처럼! 이미지 꾹 누를 때 뜨는 팝업 막기 나눔웹
69 UI/UX 애플(Apple) 사이트처럼 고급스러운 '반투명 유리' 메뉴 만드는 법 나눔웹
68 퍼블리싱 무거운 플러그인 NO! 넷플릭스처럼 쫀득한 '가로 스와이프' CSS로 뚝딱 만들기 나눔웹
67 UI/UX 1%의 디테일이 브랜딩을 완성합니다! '텍스트 드래그 색상' 바꾸기 나눔웹
66 UI/UX 투박한 파란색 체크박스는 그만! 단 1줄로 우리 회사 컬러 입히기 나눔웹
65 모바일 하단 고정 버튼이 아이폰 '검은 줄'에 겹친다면? (Safe Area 대응법) 나눔웹
64 모바일 앗, 실수로 새로고침! 튕기는 모바일 화면 꽉 잡는 법 (Overscroll) 나눔웹
Board Pagination Prev 1 2 3 4 5 Next
/ 5
rhwlsghkcocndgus XE2.1.39 STAGE1.5.4