html - Is there a way to make an HTML tab container fix its height to that of its tallest tab?
问题描述
I have a tab container that hides <div>
containers with CSS and makes one visible with JavaScript depending on the currently selected tab (based on this CodePen):
$(document).ready(function() {
$('ul.tabs li').click(function() {
var tab_id = $(this).attr('data-tab');
$('ul.tabs li').removeClass('current');
$('.tab-content').removeClass('current');
$(this).addClass('current');
$("#"+tab_id).addClass('current');
});
});
body {
font-family: 'Trebuchet MS', serif;
line-height: 1.6
}
.container {
width: 600px;
margin: 0 auto;
border: 1px solid black;
}
ul.tabs {
margin: 0px;
padding: 0px;
list-style: none;
}
ul.tabs li {
background: none;
color: #222;
display: inline-block;
padding: 10px 15px;
cursor: pointer;
}
ul.tabs li.current {
background: #ededed;
color: #222;
}
.tab-content {
display: none;
background: #ededed;
padding: 15px;
}
.tab-content.current {
display: inherit;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="container">
<ul class="tabs">
<li class="tab-link current" data-tab="tab-1">Tab One</li>
<li class="tab-link" data-tab="tab-2">Tab Two</li>
<li class="tab-link" data-tab="tab-3">Tab Three</li>
</ul>
<div id="tab-1" class="tab-content current">
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
</div>
<div id="tab-2" class="tab-content">
Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
</div>
<div id="tab-3" class="tab-content">
Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.
</div>
<div id="tab-4" class="tab-content">
Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
</div>
</div>
I'd like the size of the tab container (shown as a 1px solid black
line in the example above) to remain fixed, and large enough to contain its tallest tab even when the tallest tab is not selected. Can this be done in a way that it uses the real content size, rather than some fixed CSS width/height, and without using JavaScript to compute the height after page load?
解决方案
给你的“标签内容” div 一个合适的高度,比如 100-200px,并使溢出可滚动。
.tab-content{
display: none;
height:100px;
background: #ededed;
padding: 15px;
overflow:scroll;
}
推荐阅读
- javascript - 在后面的代码中从 Vector3D 列表创建 GeometryModel3D 对象
- html - 即使链接正确,自定义css文件也无法启动引导程序?
- python - Pandas:使用索引值对数据框进行切片
- c# - 在 Gridview 中单击链接按钮时显示弹出窗口
- python - 用逗号拆分列表列表(用引号“”包围的值除外)
- android - 如何在我的 .android 路径中生成 debug.keystore 文件
- laravel-5 - 如何在实时服务器上检查 laravel 5.2 中正在运行的调度程序作业?
- authentication - 在微服务中实现身份的合适方法是什么?
- kubernetes - 入口服务 - 不同的重写
- mql4 - 为什么第二个未平仓卖单没有执行?