【发布时间】:2021-06-16 12:52:08
【问题描述】:
以下是我在网上搜索后整理的仅 css 选项卡式 html 实现
编辑:我试图避免指定最小高度。标签内容差异很大,我想显示全部内容(不带滚动条)
.tabs {
position: relative;
bottom: -1px;
}
.tab {
float: left;
}
.tab label {
padding: 10px;
margin-left: 0px;
position: relative;
border: 1px solid #ccc;
background: white;
height: 100%;
line-height: 18px;
overflow: hidden;
text-align: center;
font-size: 14px;
font-family: Arial;
z-index: 1;
cursor: pointer;
}
.tab [type=radio] {
display: none;
}
.content {
position: absolute;
top: 28px;
left: 0;
right: 0;
background: white;
z-index: 1;
display: none;
min-width: 700px;
padding: 18px 12px;
border: 1px solid #ccc;
}
[type=radio]:checked~label {
background-color: #ddd;
z-index: 2;
}
[type=radio]:checked~label~.content {
z-index: 2;
display: block;
}
<div class="tabs">
<div class="tab">
<input type="radio" id="tab-1-report" name="tab-group-report">
<label for="tab-1-report">Tab 1</label>
<div class="content">
<p> Some contents</p>
<p> Some contents</p>
<br/>
</div>
</div>
<div class="tab">
<input type="radio" id="tab-2-report" name="tab-group-report">
<label for="tab-2-report">Tab 2</label>
<div class="content">
<div class="tabs">
<div class="tab">
<input type="radio" id="tab-1-strategy_1" name="tab-group-strategy_1">
<label for="tab-1-strategy_1">Tab 2-1</label>
<div class="content">
<p> Some contents</p>
<p> Some contents</p>
<p> Some contents</p>
<p> Some contents</p>
<p> Some contents</p>
</div>
</div>
<div class="tab">
<input type="radio" id="tab-2-strategy_1" name="tab-group-strategy_1">
<label for="tab-2-strategy_1">Tab 2-2</label>
<div class="content">
<p> Some contents</p>
<p> Some contents</p>
<p> Some contents</p>
<p> Some contents</p>
</div>
</div>
</div>
</div>
</div>
<div class="tab">
<input type="radio" id="tab-3-report" name="tab-group-report">
<label for="tab-3-report">Tab 3</label>
<div class="content">
<div class="tabs">
<div class="tab">
<input type="radio" id="tab-1-strategy_2" name="tab-group-strategy_2">
<label for="tab-1-strategy_2">Tab 3-1</label>
<div class="content">
<p> Some contents</p>
<p> Some contents</p>
<p> Some contents</p>
<p> Some contents</p>
</div>
</div>
</div>
</div>
</div>
</div>
<br/><br/>
<div>
<p>Footer</p>
</div>
它工作得很好,但我似乎无法让“父”标签高度跟随“子”标签高度。这就是为什么我们可以在单击选项卡后看到混乱的边框和丢失的“页脚”。
关于如何解决这个问题的任何想法?谢谢。
【问题讨论】: