amp-accordion으로 접을 수 있는 메뉴 만들기

3 min read

접을 수 있는 메뉴는 화면 공간이 제한된 모바일 장치에서 사용자 경험을 개선하는 데 도움이 될 수 있습니다. 아코디언 구성 요소는 확장 또는 축소할 수 있는 콘텐츠 목록입니다. 예를 들어, 댓글 섹션을 접거나 내비게이션 메뉴에서 카테고리를 접었다 펴는 것과 같이 다양한 방법으로 웹에서 널리 사용됩니다.

AMP는 아코디언을 만들기 위한 확장 구성 요소로 amp-accordion를 사용합니다.

<script async custom-element="amp-accordion" src="https://cdn. ampproject.org/v0/amp-accordion-0.1.js"></script>

다음으로 몇 가지 콘텐츠 섹션을 추가해 봅시다. AMP에서 section 태그를 사용하려면 다음과 같은 조건이 있습니다.

  • 각 섹션은 amp-accordion의 직계 하위 요소이어야 합니다.
  • 각 섹션에는 정확히 두 개의 하위 항목이 있어야 합니다.
  • 첫 번째 하위 항목은 헤더 태그여야 합니다. (h1, h2, ..., h6 또는 header 중 하나)
  • 두 번째 하위 항목은 유효한 AMP-HTML 태그 및 HTML 태그, 또는 다른 amp-accordion 이어야 합니다.

이 조건을 만족하는 코드가 아래에 있습니다. 어떻게 작동하는지 봅시다.

<amp-accordion>
  <section>
    <h3>Item 1</h3>
    <div>The section content</div>
  </section>
  <section>
    <h3>Item 2</h3>
    <amp-img src="img/penguin.jpg"
             layout="fixed"
             width="125"
             height="75">
    </amp-img>
  </section>
  ...
</amp-accordion>

그러면 다음 이미지에 표시된 것과 같은 아코디언이 생성됩니다.

AMP 아코디언: Item1,2는 확장 Item3은 축소된 모습.

여기에 섹션 및 콘텐츠를 더 추가하면 확장 가능한 카테고리 메뉴를 만들 수 있을 것입니다.

확장 가능한 카테고리 메뉴 만들기

먼저 AMP-HTML을 작성해 보겠습니다. 카테고리에 대한 각각의 section을 추가합니다. 카테고리 제목은 각 섹션의 헤더에 정하고, 내용은 <li>으로 추가합니다.

<amp-accordion>
  <section>
    <h3>news</h3>
    <ul>
      <li>News story 1 content</li>
      <li>News story 2 content</li>
    </ul>
  </section>
  <section>
    <h3>sports</h3>
    <ul>
      <li>Sports story 1 content</li>
      <li>Sports story 2 content</li>
    </ul>
  </section>
</amp-accordion>

amp-accordion의 각 section은 다음과 같습니다.

<section>
  <h3 class="category-title">news</h3>
  <ul>
    <li>
      <figure class="related-thumb">
        <amp-img media="(min-width: 35.01rem)" 
                   src="img/penguin.jpg"
                   ...
        </amp-img>
        <figcaption>News story 1 content</figcaption>
      </figure>
    </li>
    ...

마크 업이 너무 길어서 여기에 표시할 수 없지만 전체 코드는 이 페이지 하단에서 볼 수 있습니다.

amp-accordion 스타일 꾸미기

CSS로 아코디언의 헤더 및 섹션의 스타일을 지정할 수 있습니다. 각각의 섹션을 구분하기 위해 배경색이 없는 회색 상단 테두리를 만들어 보겠습니다.

.category-title {
  font-family: Georgia, 'Times New Roman', serif;
  font-size: 1.5rem;
  color: #005689;
  background: none;
  border: 0;
  border-top: 1px solid #ddd;
  padding: 0.25rem;
}

이렇게 스타일까지 꾸미면 카테고리별로 확장할 수 있는 목록이 완성됩니다.

방문해주셔서 감사합니다. 즐거운 하루 되세요!

관심 있을 만한 글

  • AMP 페이지에서 대부분의 HTML 요소를 자유롭게 사용할 수 있습니다. 그러나 일부는 제한됩니다. 일반적으로 페이지의 성능에 영향을 주는 요소, 예를 들어 외부 HTTP 요청과 관련된 요소는 금지됩니다. 이러한 경우 AMP 태그는 기존 HTML과 유사한 기능을 제공하지…
  • 접을 수 있는 메뉴는 화면 공간이 제한된 모바일 장치에서 사용자 경험을 개선하는 데 도움이 될 수 있습니다. 아코디언 구성 요소는 확장 또는 축소할 수 있는 콘텐츠 목록입니다. 예를 들어, 댓글 섹션을 접거나 내비게이션 메뉴에서 카테고리를 접었다 펴는 것과 같이 다양한 …
  • 폭포형 차트(Waterfall charts)는 브라우저가 웹 페이지 리소스를 다운로드하고 처리하는 과정을 타임 라인에 표시합니다. 항목이 다운로드 되는 순서 또는 성능 저하 지점이 어딘지 등을 시각적으로 명확하게 표현합니다. 이것은 사용자에게 좋은 웹 성능을 제공하기 위해 없어서는 안 될 필수 요소입니다.…
  • AMP의 주요 구성 요소에는 AMP-HTML, AMP-JS, AMP-Cache 이렇게 세 가지가 있습니다. 아래에서 이 세 가지 주요 구성 요소에 대해서 살펴보겠습니다. AMP-HTML AMP-HTML은 AMP 콘텐츠를 작성하는 데 사용되는 HTML5 기반의 마크 업…
  • AMP는 HTML 태그와 유사한 기능을 하는 대체 가능한 AMP HTML 태그를 제공하지만, 이는 제한적이고 성능에 최적화된 방식으로 제공합니다. 이를 AMP Components 또는 AMP Custom Elements라고 합니다. AMP 구성 요소에는 세 가지 유형이 …
  • AMP 프로젝트는 전용 사이트인 AMP Start (ampstart.com)를 제공합니다. 이 사이트는 무료로 사용 및 수정이 가능하고 이미 완성된 표준 AMP 템플릿을 지원합니다. 바로 사용할 수 있게 미리 만들어진 템플릿 및 구성 요소를 찾고 있다면 참고할 수 있습니…

댓글 쓰기