부트스트랩 - 악세사이드: 초보자 가이드
안녕하세요, 미래의 웹 개발자 여러분! 오늘 우리는 부트스트랩 악세사이드의 fascinujący 세계로 빠져들어갈 거예요. 친절한 이웃 컴퓨터 교사로서, 이 여정을 안내해드리는 것을 기대하고 있습니다. 코드를 한 줄도 작성해 본 적이 없으신 분들도 걱정 마세요 - 우리는 처음부터 시작해서 차곡차곡 올라갈 거예요!
부트스트랩 악세사이드는 무엇인가요?
자, 구체적인 내용에 들어가기 전에 웹 디자인에서 악세사이드가 무엇인지 이야기해보겠습니다. 음악의 악세사이드를 생각해보세요 - 그것은 확장되고 수축되며 다양한 섹션을 드러냅니다. 부트스트랩 악세사이드도 웹 페이지에서 정확히 그와 같은 방식으로 작동합니다! 이는 사용자가 필요에 따라 콘텐츠를 보이고 숨기는 데 유용한 방법입니다.
작동 원리
부트스트랩 악세사이드는 HTML, CSS, 그리고 자바스크립트를 결합하여 만들어졌습니다 ( 걱정 마세요, 부트스트랩이 대부분의 자바스크립트를 처리해줍니다!). 이는 확장되고 접히는 요소들의 시리즈로 구성되어 있습니다.
다음은 주요 구성 요소의 개요입니다:
- 외부 컨테이너 ( 일반적으로 클래스
accordion
을 가진<div>
) - 각각의 악세사이드 항목 ( 각각
<div>
에 클래스accordion-item
을 가짐) - 각 항목의 헤더 ( 일반적으로 클래스
accordion-header
를 가진<h2>
요소) - 헤더 내에 확장/접기 작동을 촉발하는 버튼
- 클릭할 때 보이고 숨겨지는 콘텐츠 패널 ( 클래스
accordion-collapse
와collapse
를 가진<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>
이를 다음과 같이 설명할 수 있습니다:
- 우리는
<div>
로 시작하여 클래스accordion
을 가집니다. 이는我们的 주요 컨테이너입니다. - 내부에는
accordion-item
클래스를 가진<div>
요소들이 각각의 접이식 섹션을 나타냅니다. - 각 항목에는 헤더 (
accordion-header
)와 확장/접기 작동을 촉발하는 버튼이 있습니다. - 콘텐츠는 별도의
<div>
요소에 있으며, 클래스accordion-collapse
와collapse
를 가집니다. -
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
속성을 제거한 것입니다. 이는 부트스트랩이 새로운 항목이 열릴 때 다른 항목을 자동으로 닫지 않도록 합니다.
접근성
웹 개발에서 접근성은 매우 중요합니다. 부트스트랩 악세사이드는 내장된 접근성 기능을 제공하지만, 올바르게 사용해야 합니다:
- 악세사이드 헤더에 적절한 헤딩 레벨 (
<h2>
,<h3>
, 등)을 사용하세요. - 버튼에
aria-expanded
속성을 포함하세요 (열려 있을 때는 "true", 닫혀 있을 때는 "false"). - 버튼에
aria-controls
속성을 포함하여 콘텐츠<div>
와 연결하세요. - 콘텐츠
<div>
에aria-labelledby
를 추가하여 헤더를 참조하세요.
다음은 주요 접근성 속성의 요약 표입니다:
속성 | 위치 | 목적 |
---|---|---|
aria-expanded | 버튼 | 섹션이 확장되었는지 여부를 나타냅니다 |
aria-controls | 버튼 | 버튼이 제어하는 콘텐츠를 나타냅니다 |
aria-labelledby | 콘텐츠 <div>
|
콘텐츠가 어떤 헤더에 의해 제어되는지 나타냅니다 |
이러한 속성들은 단순한 장식이 아닙니다. 스크린 리더와 다른 보조 기술이 악세사이드를 올바르게 탐색할 수 있도록 도와줍니다.
결론
그렇습니다, 여러분! 부트스트랩 악세사이드의 세계로 첫 걸음을 뗐습니다. 기본 구조에서 접근성 고려까지, 이제 여러분은 웹 페이지에서 정리된, 상호작용적인 콘텐츠를 만드는 도구를 가지고 있습니다.
기억하세요, 실습이 완성입니다. 자신만의 악세사이드를 만들어보세요, 스타일을 섞어보세요, 그리고 가장 중요한 것은 즐겁게 하세요! 웹 개발에서 새로운 멜로디를 찾을 수 있을지도 모릅니다. (죄송합니다, 악세사이드에 대한 조금의 유머를 참아주셔서 감사합니다!)
기쁜 코딩을 기원하며, 다음 번에 다시 만나요. 지식을 계속 확장하자 - 악세사이드처럼 접히고 펼쳐지듯이!
Credits: Image by storyset