css 制作tab页

使用HTML和CSS制作Tab页
Tab页是一种常见的用户界面元素,允许用户在不同内容之间切换。以下是几种实现Tab页的方法:
纯CSS实现方法
<div class="tabs">
<input type="radio" name="tabs" id="tab1" checked>
<label for="tab1">Tab 1</label>
<div class="tab-content">内容1</div>
<input type="radio" name="tab" id="tab2">
<label for="tab2">Tab 2</label>
<div class="tab-content">内容2</div>
<input type="radio" name="tab" id="tab3">
<label for="tab3">Tab 3</label>
<div class="tab-content">内容3</div>
</div>
.tabs {
display: flex;
flex-wrap: wrap;
}
.tabs input[type="radio"] {
display: none;
}
.tabs label {
padding: 10px 20px;
background: #eee;
cursor: pointer;
}
.tabs input[type="radio"]:checked + label {
background: #ddd;
}
.tab-content {
width: 100%;
padding: 20px;
background: #ddd;
display: none;
}
.tabs input[type="radio"]:checked + label + .tab-content {
display: block;
}
使用CSS伪类和:hover实现
<div class="tab-container">
<ul class="tabs">
<li class="active">Tab 1</li>
<li>Tab 2</li>
<li>Tab 3</li>
</ul>
<div class="tab-content">
<div class="active">内容1</div>
<div>内容2</div>
<div>内容3</div>
</div>
</div>
.tab-container {
width: 100%;
}
.tabs {
display: flex;
list-style: none;
padding: 0;
margin: 0;
}
.tabs li {
padding: 10px 20px;
background: #f1f1f1;
cursor: pointer;
margin-right: 5px;
}
.tabs li:hover,
.tabs li.active {
background: #ddd;
}
.tab-content div {
display: none;
padding: 20px;
background: #ddd;
}
.tab-content div.active {
display: block;
}
使用CSS Grid布局实现
<div class="tab-grid">
<button class="tab-btn active" data-tab="tab1">Tab 1</button>
<button class="tab-btn" data-tab="tab2">Tab 2</button>
<button class="tab-btn" data-tab="tab3">Tab 3</button>
<div id="tab1" class="tab-panel active">内容1</div>
<div id="tab2" class="tab-panel">内容2</div>
<div id="tab3" class="tab-panel">内容3</div>
</div>
.tab-grid {
display: grid;
grid-template-areas:
"btn1 btn2 btn3"
"panel panel panel";
}
.tab-btn {
padding: 10px 20px;
background: #f1f1f1;
border: none;
cursor: pointer;
}
.tab-btn.active {
background: #ddd;
}
.tab-panel {
grid-area: panel;
padding: 20px;
background: #ddd;
display: none;
}
.tab-panel.active {
display: block;
}
添加动画效果
.tab-content {
transition: all 0.3s ease;
opacity: 0;
height: 0;
overflow: hidden;
}
.tabs input[type="radio"]:checked + label + .tab-content {
opacity: 1;
height: auto;
padding: 20px;
}
响应式设计考虑
@media (max-width: 600px) {
.tabs {
flex-direction: column;
}
.tab-btn {
width: 100%;
}
}
以上方法提供了多种实现Tab页的方式,可以根据项目需求选择最适合的方案。纯CSS实现无需JavaScript,适合简单场景;更复杂的交互可能需要配合JavaScript实现。







