Cách tạo: Tab

Học cách sử dụng CSS và JavaScript để tạo tab chọn.

Tab

Tab rất phù hợp với ứng dụng web trang đơn hoặc có thể hiển thị các chủ đề khác nhau của trang web:

London

London là thành phố thủ đô của Anh.

Paris

Paris là thủ đô của Pháp.

Tokyo

Tokyo là thủ đô của Nhật Bản.

Thử ngay

Tạo tab thay đổi được

Bước 1 - Thêm HTML:

<!-- Liên kết tab -->
<div class="tab">
  <button class="tablinks" onclick="openCity(event, 'London')">London</button>
  <button class="tablinks" onclick="openCity(event, 'Paris')">Paris</button>
  <button class="tablinks" onclick="openCity(event, 'Tokyo')">Tokyo</button>
</div>
<!-- Nội dung tab -->
<div id="London" class="tabcontent">
  <h3>London</h3>
  <p>London là thủ đô của Anh.</p>
</div>
<div id="Paris" class="tabcontent">
  <h3>Paris</h3>
  <p>Paris là thủ đô của Pháp.</p>
</div>
<div id="Tokyo" class="tabcontent">
  <h3>Tokyo</h3>
  <p>Tokyo là thủ đô của Nhật Bản.</p>
</div>

Tạo nút để mở nội dung của thẻ tab cụ thể. Tất cả các phần tử có class="tabcontent" của <div> Các phần tử mặc định đều ẩn (qua CSS và JS). Khi người dùng nhấp vào nút, nó sẽ mở nội dung của thẻ tab "khớp" với nút đó.

Bước 2 - Thêm CSS:

Đặt样式 cho nút và nội dung của thẻ tab:

/* Đặt样式 cho thẻ tab */
.tab {
  overflow: hidden;
  border: 1px solid #ccc;
  background-color: #f1f1f1;
}
/* Đặt样式 cho nút mở nội dung của thẻ tab */
.tab button {
  background-color: inherit;
  float: left;
  border: none;
  outline: none;
  cursor: pointer;
  padding: 14px 16px;
  transition: 0.3s;
}
/* Thay đổi màu nền của nút khi di chuột qua */
.tab button:hover {
  background-color: #ddd;
}
/* Tạo lớp liên kết thẻ tab hoạt động/trang hiện tại */
.tab button.active {
  background-color: #ccc;
}
/* Đặt样式 cho nội dung của thẻ tab */
.tabcontent {
  display: none;
  padding: 6px 12px;
  border: 1px solid #ccc;
  border-top: none;
}

Bước 3 - Thêm JavaScript:

function openCity(evt, cityName) {
  // Định nghĩa tất cả các biến
  var i, tabcontent, tablinks;
  // Lấy tất cả các phần tử có class="tabcontent" và ẩn chúng
  tabcontent = document.getElementsByClassName("tabcontent");
  for (i = 0; i < tabcontent.length; i++) {
    tabcontent[i].style.display = "none";
  }
  // Lấy tất cả các phần tử có class="tablinks" và xóa lớp "active"
  tablinks = document.getElementsByClassName("tablinks");
  for (i = 0; i < tablinks.length; i++) {
    tablinks[i].className = tablinks[i].className.replace(" active", "");
  }
  // Hiển thị thẻ trang hiện tại và thêm lớp "active" vào nút mở thẻ trang
  document.getElementById(cityName).style.display = "block";
  evt.currentTarget.className += " active";
}

Thử ngay

Mờ vào thẻ trang

Để mờ vào nội dung thẻ trang, hãy thêm CSS sau đây:

.tabcontent {
  animation: fadeEffect 1s; /* Hiệu ứng mờ vào và mờ ra kéo dài 1 giây */
}
/* Tăng từ độ trong suốt bằng không lên không trong suốt */
@keyframes fadeEffect {
  from {opacity: 0;}
  to {opacity: 1;}
}

Thử ngay

Hiển thị thẻ trang mặc định

Để mở thẻ trang cụ thể khi trang được tải, hãy sử dụng JavaScript "nhấn" vào nút thẻ trang được chỉ định:

<button class="tablinks" onclick="openCity(event, 'London')" id="defaultOpen">London</button>
<script>
// Lấy phần tử có id="defaultOpen" và nhấn vào nó
document.getElementById("defaultOpen").click();
</script>

Thử ngay

Đóng thẻ trang

Nếu bạn muốn đóng thẻ trang cụ thể, hãy sử dụng JavaScript bằng cách nhấn vào nút để ẩn thẻ trang:

<!-- Nhấn vào phần tử <span> để đóng thẻ trang -->
<div id="London" class="tabcontent">
  <h3>London</h3>
  <p>London là thủ đô của Anh.</p>
  <span onclick="this.parentElement.style.display='none'">x</span>
</div>

Thử ngay

Trang liên quan

Hướng dẫn:Cách tạo tab dọc