부트스트랩 - 악세사이드: 초보자 가이드

안녕하세요, 미래의 웹 개발자 여러분! 오늘 우리는 부트스트랩 악세사이드의 fascinujący 세계로 빠져들어갈 거예요. 친절한 이웃 컴퓨터 교사로서, 이 여정을 안내해드리는 것을 기대하고 있습니다. 코드를 한 줄도 작성해 본 적이 없으신 분들도 걱정 마세요 - 우리는 처음부터 시작해서 차곡차곡 올라갈 거예요!

Bootstrap - Accordion

부트스트랩 악세사이드는 무엇인가요?

자, 구체적인 내용에 들어가기 전에 웹 디자인에서 악세사이드가 무엇인지 이야기해보겠습니다. 음악의 악세사이드를 생각해보세요 - 그것은 확장되고 수축되며 다양한 섹션을 드러냅니다. 부트스트랩 악세사이드도 웹 페이지에서 정확히 그와 같은 방식으로 작동합니다! 이는 사용자가 필요에 따라 콘텐츠를 보이고 숨기는 데 유용한 방법입니다.

작동 원리

부트스트랩 악세사이드는 HTML, CSS, 그리고 자바스크립트를 결합하여 만들어졌습니다 ( 걱정 마세요, 부트스트랩이 대부분의 자바스크립트를 처리해줍니다!). 이는 확장되고 접히는 요소들의 시리즈로 구성되어 있습니다.

다음은 주요 구성 요소의 개요입니다:

  1. 외부 컨테이너 ( 일반적으로 클래스 accordion을 가진 <div> )
  2. 각각의 악세사이드 항목 ( 각각 <div>에 클래스 accordion-item을 가짐)
  3. 각 항목의 헤더 ( 일반적으로 클래스 accordion-header를 가진 <h2> 요소)
  4. 헤더 내에 확장/접기 작동을 촉발하는 버튼
  5. 클릭할 때 보이고 숨겨지는 콘텐츠 패널 ( 클래스 accordion-collapsecollapse를 가진 <div> 요소)

이제 이를 실제로 보겠습니다!

기본 예제

여기 간단한 부트스트랩 악세사이드 예제가 있습니다:

<div class="accordion" id="basicAccordion">
<div class="accordion-item">
<h2 class="accordion-header" id="headingOne">
<button class="accordion-button" type="button" data-bs-toggle="collapse" data-bs-target="#collapseOne" aria-expanded="true" aria-controls="collapseOne">
악세사이드 항목 #1
</button>
</h2>
<div id="collapseOne" class="accordion-collapse collapse show" aria-labelledby="headingOne" data-bs-parent="#basicAccordion">
<div class="accordion-body">
첫 번째 악세사이드 항목의 콘텐츠입니다.
</div>
</div>
</div>
<div class="accordion-item">
<h2 class="accordion-header" id="headingTwo">
<button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#collapseTwo" aria-expanded="false" aria-controls="collapseTwo">
악세사이드 항목 #2
</button>
</h2>
<div id="collapseTwo" class="accordion-collapse collapse" aria-labelledby="headingTwo" data-bs-parent="#basicAccordion">
<div class="accordion-body">
두 번째 악세사이드 항목의 콘텐츠입니다.
</div>
</div>
</div>
</div>

이를 다음과 같이 설명할 수 있습니다:

  1. 우리는 <div>로 시작하여 클래스 accordion을 가집니다. 이는我们的 주요 컨테이너입니다.
  2. 내부에는 accordion-item 클래스를 가진 <div> 요소들이 각각의 접이식 섹션을 나타냅니다.
  3. 각 항목에는 헤더 (accordion-header)와 확장/접기 작동을 촉발하는 버튼이 있습니다.
  4. 콘텐츠는 별도의 <div> 요소에 있으며, 클래스 accordion-collapsecollapse를 가집니다.
  5. data-bs-toggle="collapse"data-bs-target="#collapseOne" 속성은 버튼과 콘텐츠 <div>를 연결합니다.

Pro tip: 첫 번째 항목이 class="accordion-collapse collapse show"aria-expanded="true"를 가지고 있음에 주목하세요. 이는 페이지가 로드될 때 기본적으로 열려 있음을 의미합니다.

플러시 악세사이드

테두리 없이 더 깔끔한 모양을 원하신다면, 부트스트랩의 플러시 악세사이드를 사용해보세요:

<div class="accordion accordion-flush" id="flushAccordion">
<div class="accordion-item">
<h2 class="accordion-header" id="flush-headingOne">
<button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#flush-collapseOne" aria-expanded="false" aria-controls="flush-collapseOne">
플러시 악세사이드 항목 #1
</button>
</h2>
<div id="flush-collapseOne" class="accordion-collapse collapse" aria-labelledby="flush-headingOne" data-bs-parent="#flushAccordion">
<div class="accordion-body">
플러시 악세사이드의 첫 번째 항목입니다.
</div>
</div>
</div>
<!-- 필요에 따라 더 많은 항목을 추가하세요 -->
</div>

이جا의 주요 차이는 주요 컨테이너에 accordion-flush 클래스를 추가한 것입니다. 이는 기본 배경색과 일부 테두리를 제거하여 깨끗한 모양을 제공합니다.

항상 열린 악세사이드

기본적으로 부트스트랩 악세사이드는 새로운 항목이 열릴 때 다른 항목을 닫습니다. 하지만 여러 항목을 동시에 열고 싶다면 어떻게 하나요? 다음과 같이 합니다:

<div class="accordion" id="alwaysOpenAccordion">
<div class="accordion-item">
<h2 class="accordion-header" id="headingAlwaysOne">
<button class="accordion-button" type="button" data-bs-toggle="collapse" data-bs-target="#collapseAlwaysOne" aria-expanded="true" aria-controls="collapseAlwaysOne">
항상 열린 항목 #1
</button>
</h2>
<div id="collapseAlwaysOne" class="accordion-collapse collapse show" aria-labelledby="headingAlwaysOne">
<div class="accordion-body">
이 항목은 다른 항목이 열릴 때도 열려 있습니다.
</div>
</div>
</div>
<div class="accordion-item">
<h2 class="accordion-header" id="headingAlwaysTwo">
<button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#collapseAlwaysTwo" aria-expanded="false" aria-controls="collapseAlwaysTwo">
항상 열린 항목 #2
</button>
</h2>
<div id="collapseAlwaysTwo" class="accordion-collapse collapse" aria-labelledby="headingAlwaysTwo">
<div class="accordion-body">
이 것도 독립적으로 열려 있습니다.
</div>
</div>
</div>
</div>

이 비밀의 맛? 콘텐츠 <div>에서 data-bs-parent 속성을 제거한 것입니다. 이는 부트스트랩이 새로운 항목이 열릴 때 다른 항목을 자동으로 닫지 않도록 합니다.

접근성

웹 개발에서 접근성은 매우 중요합니다. 부트스트랩 악세사이드는 내장된 접근성 기능을 제공하지만, 올바르게 사용해야 합니다:

  1. 악세사이드 헤더에 적절한 헤딩 레벨 (<h2>, <h3>, 등)을 사용하세요.
  2. 버튼에 aria-expanded 속성을 포함하세요 (열려 있을 때는 "true", 닫혀 있을 때는 "false").
  3. 버튼에 aria-controls 속성을 포함하여 콘텐츠 <div>와 연결하세요.
  4. 콘텐츠 <div>aria-labelledby를 추가하여 헤더를 참조하세요.

다음은 주요 접근성 속성의 요약 표입니다:

속성 위치 목적
aria-expanded 버튼 섹션이 확장되었는지 여부를 나타냅니다
aria-controls 버튼 버튼이 제어하는 콘텐츠를 나타냅니다
aria-labelledby 콘텐츠 <div> 콘텐츠가 어떤 헤더에 의해 제어되는지 나타냅니다

이러한 속성들은 단순한 장식이 아닙니다. 스크린 리더와 다른 보조 기술이 악세사이드를 올바르게 탐색할 수 있도록 도와줍니다.

결론

그렇습니다, 여러분! 부트스트랩 악세사이드의 세계로 첫 걸음을 뗐습니다. 기본 구조에서 접근성 고려까지, 이제 여러분은 웹 페이지에서 정리된, 상호작용적인 콘텐츠를 만드는 도구를 가지고 있습니다.

기억하세요, 실습이 완성입니다. 자신만의 악세사이드를 만들어보세요, 스타일을 섞어보세요, 그리고 가장 중요한 것은 즐겁게 하세요! 웹 개발에서 새로운 멜로디를 찾을 수 있을지도 모릅니다. (죄송합니다, 악세사이드에 대한 조금의 유머를 참아주셔서 감사합니다!)

기쁜 코딩을 기원하며, 다음 번에 다시 만나요. 지식을 계속 확장하자 - 악세사이드처럼 접히고 펼쳐지듯이!

Credits: Image by storyset