如何创建:垂直标签页

学习如何使用 CSS 和 JavaScript 创建垂直标签页菜单。

垂直标签页

标签页非常适合单页 Web 应用程序或能够显示不同主题的网页。

London

London is the capital city of England.

Paris

Paris is the capital of France.

Tokyo

Tokyo is the capital of Japan.

亲自试一试

创建可切换的垂直标签页

第一步 - 添加 HTML:

<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>

<div id="London" class="tabcontent">
  <h3>London</h3>
  <p>London is the capital city of England.</p>
</div>

<div id="Paris" class="tabcontent">
  <h3>Paris</h3>
  <p>Paris is the capital of France.</p>
</div>

<div id="Tokyo" class="tabcontent">
  <h3>Tokyo</h3>
  <p>Tokyo is the capital of Japan.</p>
</div>

创建按钮以打开特定的标签页内容。所有带有 class="tabcontent"<div> 元素默认都是隐藏的(通过 CSS 和 JS)。当用户点击按钮时,它将打开与该按钮“匹配”的标签页内容。

第二步 - 添加 CSS:

设置按钮和标签页内容的样式:

* {box-sizing: border-box}

/* Style the tab */
.tab {
  float: left;
  border: 1px solid #ccc;
  background-color: #f1f1f1;
  width: 30%;
  height: 300px;
}

/* 设置用于打开标签页内容的按钮的样式 */
.tab button {
  display: block;
  background-color: inherit;
  color: black;
  padding: 22px 16px;
  width: 100%;
  border: none;
  outline: none;
  text-align: left;
  cursor: pointer;
  transition: 0.3s;
}

/* 更改悬停时按钮的背景颜色 */
.tab button:hover {
  background-color: #ddd;
}

/* 创建活动/当前的“标签页按钮”类 */
.tab button.active {
  background-color: #ccc;
}

/* 设置标签页内容的样式 */
.tabcontent {
  float: left;
  padding: 0px 12px;
  border: 1px solid #ccc;
  width: 70%;
  border-left: none;
  height: 300px;
}

第三步 - 添加 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";
}

亲自试一试

相关页面

教程:如何创建水平标签页