본문 바로가기
명함 만들기 캐릭터 모음 16가지 디자인 · PNG / SVG / PDF

건너뛰기 링크

키보드만 쓰는 사람이 메뉴 스무 개를 지나지 않고 본문부터 읽게 해 주는, 페이지의 첫 번째 요소.

내비게이션

실제 미리보기

출처

<div class="dc-skip-demo">
  <a class="dc-skip" href="#dc-skip-main">본문으로 건너뛰기</a>
  <div class="dc-skip-demo__top">
    <span class="dc-skip-demo__logo">이음</span>
    <nav class="dc-skip-demo__nav" aria-label="주 메뉴">
      <a class="dc-skip-demo__navlink" href="#">일자리</a>
      <a class="dc-skip-demo__navlink" href="#">생활 안내</a>
      <a class="dc-skip-demo__navlink" href="#">상담</a>
      <a class="dc-skip-demo__navlink" href="#">내 신청</a>
    </nav>
  </div>
  <main class="dc-skip-demo__main" id="dc-skip-main" tabindex="-1">
    <h1 class="dc-skip-demo__h1">오늘 올라온 일자리 12곳</h1>
    <p class="dc-skip-demo__p">건너뛰기 링크가 닿는 자리다. 메뉴를 지나 여기서부터 읽기가 시작된다.</p>
  </main>
</div>
.dc-skip-demo { position:relative; max-width:560px; border:1px solid var(--dc-line); border-radius:var(--dc-r-md); background:var(--dc-surface); font-family:var(--dc-font); }
.dc-skip { display:inline-block; margin:var(--dc-3) 0 0 var(--dc-3); padding:var(--dc-2) var(--dc-4); border-radius:var(--dc-r-sm); background:var(--dc-brand); color:var(--dc-text-on); font-size:13px; font-weight:700; text-decoration:underline; }
.dc-skip:hover { background:var(--dc-brand-hi); }
.dc-skip:focus-visible { outline:2px solid var(--dc-text); outline-offset:2px; }
.dc-skip--reveal { position:absolute; left:var(--dc-3); top:var(--dc-3); z-index:5; margin:0; box-shadow:var(--dc-sh-2); transform:translateY(-340%); transition:transform var(--dc-fast); }
.dc-skip--reveal:focus { transform:translateY(0); }
.dc-skip-row { display:flex; flex-wrap:wrap; gap:var(--dc-2); padding:var(--dc-3) var(--dc-3) 0; }
.dc-skip-row .dc-skip { margin:0; }
.dc-skip-demo__top { display:flex; align-items:center; flex-wrap:wrap; gap:var(--dc-3) var(--dc-4); margin-top:var(--dc-3); padding:var(--dc-3) var(--dc-4); border-top:1px solid var(--dc-line); border-bottom:1px solid var(--dc-line); background:var(--dc-sunken); }
.dc-skip-demo__logo { font-size:15px; font-weight:800; color:var(--dc-text); }
.dc-skip-demo__nav { display:flex; flex-wrap:wrap; gap:var(--dc-4); }
.dc-skip-demo__navlink { font-size:13px; color:var(--dc-text-sub); text-decoration:none; }
.dc-skip-demo__navlink:hover { color:var(--dc-brand-text); text-decoration:underline; }
.dc-skip-demo__main { padding:var(--dc-4); }
.dc-skip-demo__main:focus { outline:2px dashed var(--dc-brand); outline-offset:-4px; }
.dc-skip-demo__h1 { margin:0 0 var(--dc-2); font-size:17px; font-weight:700; color:var(--dc-text); }
.dc-skip-demo__p { margin:0; font-size:13px; color:var(--dc-text-sub); }
.dc-skip-demo__hint { margin:0; padding:var(--dc-3) var(--dc-4) 0; font-size:12px; color:var(--dc-text-mute); }

이렇게 씁니다

  • 문서에서 초점이 가장 먼저 닿는 자리에 둔다 — 헤더보다 위, body 의 첫 줄이다
  • 도착 지점에 id 와 tabindex="-1" 을 함께 준다. 그래야 초점이 실제로 옮겨진다
  • 메뉴가 아주 길면 '검색으로 건너뛰기' 같은 두 번째 링크를 더한다

주의할 점

  • display:none 으로 감추면 초점을 받지 못해 아무 일도 일어나지 않는다. 화면 위로 밀어 두고 :focus 에서 되돌린다
  • 나타났을 때 가려지지 않게 배경색과 z-index 를 준다 — 글자만 겹치면 읽을 수 없다

다음에 볼 것