<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta http-equiv="X-UA-Compatible" content="ie=edge" />
<title>Tab选项卡</title>
<style>
.container {
max-width: 800px;
margin: 30px auto;
border-radius: 4px;
box-shadow: 0 0 4px 0px rgba(0, 0, 0, 0.3);
padding: 16px;
}
.tabs .tab-header {
display: flex;
font-size: 13px;
color: #303030;
line-height: 30px;
font-weight: 500;
border-bottom: 2px solid #ddd;
}
.tabs .tab-item {
margin-right: 30px;
margin-bottom: -2px;
cursor: pointer;
}
.tabs .tab-item.active {
color: #409eff;
border-bottom: 2px solid red;
}
.tabs .tab-panel {
padding: 16px 0;
font-size: 14px;
display: none;
}
.tabs .tab-panel.active {
display: block;
}
</style>
</head>
<body>
<div class="container">
<h2>Tab选项卡</h2>
<div class="tabs">
<div class="tab-header">
<span class="tab-item active">用户管理</span>
<span class="tab-item">配置管理</span>
<span class="tab-item">角色管理</span>
<span class="tab-item">定时任务补偿</span>
</div>
<div class="tab-content">
<div class="tab-panel active">111</div>
<div class="tab-panel">222</div>
<div class="tab-panel">333</div>
<div class="tab-panel">4444</div>
</div>
</div>
</div>
<script>
const tabItems = document.querySelectorAll(".tabs .tab-item");
const tabPanels = document.querySelectorAll(".tabs .tab-panel");
tabItems.forEach((tabItem) => {
tabItem.onclick = function () {
tabItems.forEach((tabItem) => tabItem.classList.remove("active"));
this.classList.add("active");
let index = [...tabItems].indexOf(this);
tabPanels.forEach((panel) => {
panel.classList.remove("active");
});
tabPanels[index].classList.add("active");
};
});
</script>
</body>
</html>