scroll-margin
스크롤 스냅 시 요소의 스냅 위치에 오프셋(여백)을 추가합니다. 일반 margin처럼 상하좌우를 개별 지정할 수 있으며, 스냅 포인트의 정렬을 미세 조정할 때 사용합니다.
클래스 목록
| 패턴 | CSS | 설명 |
|---|---|---|
sm{N}px | scroll-margin: {N}px | 전체 방향 scroll-margin |
smt{N}px | scroll-margin-top: {N}px | 상단 scroll-margin |
smr{N}px | scroll-margin-right: {N}px | 우측 scroll-margin |
smb{N}px | scroll-margin-bottom: {N}px | 하단 scroll-margin |
sml{N}px | scroll-margin-left: {N}px | 좌측 scroll-margin |
사용 예시
스크롤 스냅 아이템에 여백을 추가하여 스냅 위치를 조정합니다.
<!-- 스냅 아이템에 scroll-margin 적용 -->
<div class="oxa df" style="scroll-snap-type: x mandatory">
<div class="sml16px fs0 w100p">아이템 1</div>
<div class="sml16px fs0 w100p">아이템 2</div>
<div class="sml16px fs0 w100p">아이템 3</div>
</div>
<!-- 세로 스크롤에서 상단 여백 -->
<div class="oya h30rem" style="scroll-snap-type: y mandatory">
<section class="smt2rem h30rem">섹션 1</section>
<section class="smt2rem h30rem">섹션 2</section>
</div>방향별 적용
상하좌우 개별적으로 scroll-margin을 지정할 수 있습니다.
<!-- 방향별 scroll-margin -->
<div class="smt16px">상단에 16px 여백</div>
<div class="smr2rem">우측에 20px 여백</div>
<div class="smb8px">하단에 8px 여백</div>
<div class="sml12px">좌측에 12px 여백</div>
<!-- 전체 방향 -->
<div class="sm2rem">모든 방향에 20px 여백</div>팁 & 주의사항
scroll-margin vs scroll-padding
scroll-margin은 스냅 자식 요소에 적용하고, scroll-padding은 스크롤 컨테이너에 적용합니다. 둘 다 스냅 위치를 조정하지만 적용 대상이 다릅니다.
단위 규칙
20px 미만은 px(예: sm16px), 20px 이상은 rem(예: sm2rem)을 사용합니다.