w3.css
접이식 콘텐츠
접을 수 있는 섹션을 만드는 방법을 알아보자.
접을 수 있는 콘텐츠 만들기
1단계) HTML 추가
<button type="button" class="collapsible">Open Collapsible</button> <div class="content"> <p>Lorem ipsum...</p> </div>
2단계) CSS 추가
/* Style the button that is used to open and close the collapsible content */ .collapsible { background-color: #eee; color: #444; cursor: pointer; padding: 18px; width: 100%; border: none; text-align: left; outline: none; font-size: 15px; } /* Add a background color to the button if it is clicked on (add the .active class with JS), and when you move the mouse over it (hover) */ .active, .collapsible:hover { background-color: #ccc; } /* Style the collapsible content. Note: hidden by default */ .content { padding: 0 18px; display: none; overflow: hidden; background-color: #f1f1f1; }
3단계) JavaScript 추가
var coll = document.getElementsByClassName("collapsible"); var i; for (i = 0; i < coll.length; i++) { coll[i].addEventListener("click", function() { this.classList.toggle("active"); var content = this.nextElementSibling; if (content.style.display === "block") { content.style.display = "none"; } else { content.style.display = "block"; } }); }
기본 예시
예제 보기애니메이션 접이식 (슬라이드 다운)
애니메이션을 접을 수 있게 만들려면 패널 클래스에 max-height: 0, overflow: hidden 및 최대 높이 속성에 대한 전환을 추가한다.
그런 다음 JavaScript를 사용하여 다양한 화면 크기에서 패널의 높이에 따라 계산된 최대 높이를 설정하여 콘텐츠를 아래로 슬라이드한다.
예제
<style> .content { padding: 0 18px; background-color: white; max-height: 0; overflow: hidden; transition: max-height 0.2s ease-out; } </style> <script> var coll = document.getElementsByClassName("collapsible"); var i; for (i = 0; i < coll.length; i++) { coll[i].addEventListener("click", function() { this.classList.toggle("active"); var content = this.nextElementSibling; if (content.style.maxHeight){ content.style.maxHeight = null; } else { content.style.maxHeight = content.scrollHeight + "px"; } }); } </script>
기본 예시
예제 보기아이콘 추가
각 버튼에 접을 수 있는 콘텐츠가 열려 있는지 닫혀 있는지를 나타내는 기호를 추가한다.
예제
.collapsible:after { content: '\02795'; /* Unicode character for "plus" sign (+) */ font-size: 13px; color: white; float: right; margin-left: 5px; } .active:after { content: "\2796"; /* Unicode character for "minus" sign (-) */ }
기본 예시
예제 보기참고
W3C School - How TO - Collapse