scroll-behavior
페이지나 스크롤 컨테이너의 스크롤 동작 방식을 제어합니다. sbs를 적용하면 앵커 링크 이동 시 부드러운 스크롤 애니메이션이 활성화됩니다.
클래스 목록
| <tr> <th class="tal py12px px16px bg18181B bb2pxsolid27272A cA1A1AA fw600 ttu fs12px ls0-05em">클래스 | CSS | 설명 |
|---|---|---|
sba | scroll-behavior: auto | 기본값. 즉시 점프 이동 |
sbs | scroll-behavior: smooth | 부드러운 스크롤 애니메이션 |
클래스별 상세
sbascroll-behavior: auto
브라우저 기본값입니다. 앵커 링크 이동이나 scrollTo() 호출 시 즉시 해당 위치로 점프합니다. 애니메이션 없이 빠르게 이동해야 할 때 사용합니다.
<!-- Default scroll behavior (instant) -->
<div class="sba oh h20rem">
<div id="section-a">Section A</div>
<div id="section-b">Section B</div>
</div>sbsscroll-behavior: smooth
앵커 링크 클릭이나 scrollTo() 호출 시 부드러운 스크롤 애니메이션이 적용됩니다. 주로 html 태그나 스크롤 컨테이너에 적용합니다.
<!-- Apply smooth scroll to full page -->
<html class="sbs">
<body>
<a href="#section1">Go to Section 1</a>
<a href="#section2">Go to Section 2</a>
...
<div id="section1">Section 1</div>
<div id="section2">Section 2</div>
</body>
</html>
<!-- Apply to specific scroll container only -->
<div class="sbs oh h30rem">
<a href="#item1">Item 1</a>
<a href="#item2">Item 2</a>
<div id="item1" class="mt4rem">Item 1 Content</div>
<div id="item2" class="mt4rem">Item 2 Content</div>
</div>적용 대상
sbs는 스크롤이 발생하는 컨테이너에 적용해야 합니다. 페이지 전체에 적용하려면 html 태그에, 특정 영역에만 적용하려면 해당 스크롤 컨테이너에 추가하세요.
사용 예시
페이지 내 목차(TOC) 네비게이션에서 smooth scroll을 적용하는 패턴입니다.
<!-- TOC Navigation + smooth scroll -->
<html class="sbs">
<body>
<nav class="pf t0 l0 w20rem h100vh oya p2rem">
<a href="#intro" class="db py8px c38BDF8 tdn">Introduction</a>
<a href="#usage" class="db py8px c38BDF8 tdn">Usage</a>
<a href="#api" class="db py8px c38BDF8 tdn">API</a>
</nav>
<main class="ml20rem p4rem">
<section id="intro">Introduction content...</section>
<section id="usage">Usage Content...</section>
<section id="api">API Content...</section>
</main>
</body>
</html>팁 & 주의사항
prefers-reduced-motion
모션 민감 사용자를 위해 prefers-reduced-motion: reduce 미디어 쿼리에서 smooth scroll을 비활성화하는 것을 고려하세요.
JS scrollTo와의 관계
JavaScript의 element.scrollTo({ behavior: 'smooth' })는 CSS scroll-behavior와 독립적입니다. CSS에 sbs를 적용하면 JS에서 behavior를 지정하지 않아도 smooth하게 동작합니다.