어떻게 만들까요: 탭 페이지

CSS와 JavaScript를 사용하여 탭 페이지를 만들어보세요.

탭 페이지

탭 페이지는 단일 페이지 웹 애플리케이션 또는 다른 주제를 표시할 수 있는 웹 페이지에 적합합니다:

런던

런던은 영국의 수도 도시입니다.

파리

파리는 프랑스의 수도입니다.

도쿄

도쿄는 일본의 수도입니다.

대체 가능한 탭 페이지를 만들기

첫 번째 단계 - HTML 추가:

<!-- 탭 페이지 링크 -->
<div class="tab">
  <button class="tablinks" onclick="openCity(event, 'London')">런던</button>
  <button class="tablinks" onclick="openCity(event, 'Paris')">파리</button>
  <button class="tablinks" onclick="openCity(event, 'Tokyo')">도쿄</button>
<!-- 탭 페이지 내용 --> <div id="London" class="tabcontent"> <h3>런던</h3> <p>런던은 영국의 수도입니다.</p>
<div id="Paris" class="tabcontent"> <h3>파리</h3> <p>파리는 프랑스의 수도입니다.</p> <div id="Tokyo" class="tabcontent"> <h3>도쿄</h3> <p>도쿄는 일본의 수도입니다.</p>

특정 탭 내용을 열기 위해 버튼을 생성합니다. 모든 class="tabcontent"<div> 모든 요소는 기본적으로 숨겨져 있습니다(CSS와 JS를 통해). 사용자가 버튼을 클릭할 때, 그 버튼과 "일치"하는 탭 내용이 열립니다.

두 번째 단계 - CSS 추가:

버튼과 탭 내용의 스타일을 설정합니다:

/* 탭의 스타일을 설정합니다 */
.tab {
  overflow: hidden;
  border: 1px solid #ccc;
  background-color: #f1f1f1;
}
/* 탭 내용을 엽니다는 버튼의 스타일을 설정합니다 */
.tab button {
  background-color: inherit;
  float: left;
  border: none;
  outline: none;
  cursor: pointer;
  padding: 14px 16px;
  transition: 0.3s;
}
/* 마우스 오버 시 버튼의 배경색을 변경합니다 */
.tab button:hover {
  background-color: #ddd;
}
/* 활성/현재 탭 링크 클래스를 생성합니다 */
.tab button.active {
  background-color: #ccc;
}
/* 탭 내용의 스타일을 설정합니다 */
.tabcontent {
  display: none;
  padding: 6px 12px;
  border: 1px solid #ccc;
  border-top: none;
}

세 번째 단계 - JavaScript 추가:

function openCity(evt, cityName) {
  // 모든 변수를 선언합니다
  var i, tabcontent, tablinks;
  // 모든 class="tabcontent"을 가진 요소를 가져와 숨깁니다
  tabcontent = document.getElementsByClassName("tabcontent");
  for (i = 0; i < tabcontent.length; i++) {
    tabcontent[i].style.display = "none";
  }
  // 모든 class="tablinks"을 가진 요소를 가져와 해당 클래스 "active"을 제거합니다
  tablinks = document.getElementsByClassName("tablinks");
  for (i = 0; i < tablinks.length; i++) {
    tablinks[i].className = tablinks[i].className.replace(" active", "");
  }
  // 현재 탭을 표시하고, 해당 탭을 열기 위해 버튼에 "active" 클래스를 추가합니다
  document.getElementById(cityName).style.display = "block";
  evt.currentTarget.className += " active";
}

탭 페이지 점진적으로 표시

탭 페이지 내용을 점진적으로 표시하려면 다음 CSS를 추가하세요:

.tabcontent {
  animation: fadeEffect 1s; /* 점진적으로 진행 및 소멸 효과가 1초 지속 */
}
/* 투명도 0에서 불투명으로过渡 */
@keyframes fadeEffect {
  from {opacity: 0;}
  to {opacity: 1;}
}

기본 탭 표시

페이지를 로드할 때 특정 탭을 열고 싶다면, JavaScript를 통해 지정된 탭 버튼을 "클릭"하세요:

<button class="tablinks" onclick="openCity(event, 'London')" id="defaultOpen">런던</button>
<script>
// id="defaultOpen"의 요소를 가져와 클릭합니다
document.getElementById("defaultOpen").click();
</script>

탭을 닫기

특정 탭을 닫고 싶다면, JavaScript를 통해 버튼을 클릭하여 탭을 숨기세요:

<!-- <span> 요소를 클릭하여 탭을 닫습니다 -->
<div id="London" class="tabcontent">
  <h3>런던</h3>
  <p>런던은 영국의 수도입니다.</p>
  <span onclick="this.parentElement.style.display='none'">x</span>

직접 테스트해 보세요

관련 페이지教程: