【发布时间】:2022-01-05 09:45:15
【问题描述】:
我在页面底部创建了一个带有引导选项卡的页面。
标签本身具有不同的高度,我发现当我激活一个整体高度较小的标签时(并且页面被向下滚动到很远),浏览器如何捕捉到较小的页面高度很不和谐。
在尝试了六种建议后,我最终找到了一个解决方案,让所有标签的高度相同,但我仍然希望它们之间至少有一些过渡并选择不透明度。
见我的fiddle。
HTML
<div class="consistent-height">
<ul class="nav nav-tabs">
<li class="nav-item">
<a class="nav-link active" data-toggle="tab" href="#tab1">tab 1</a>
</li>
<li class="nav-item">
<a class="nav-link" data-toggle="tab" href="#tab2">tab 2</a>
</li>
</ul>
<div class="tab-content">
<img class="logo" alt="logo" src="/static/images/logo_icon.svg">
<div id="tab1" class="tab-pane active">
tra la la
</div>
<div id="tab2" class="tab-pane fade">
juhuhu
</div>
</div>
</div>
CSS
.logo {
float: right;
height: 20em;
}
.tab-content {
padding-top: 2em;
}
.consistent-height .tab-content {
position: relative;
transition: opacity .5s ease 0s;
}
.consistent-height .tab-content > .tab-pane {
display: block; /* undo "display: none;" */
opacity: 0;
position: absolute;
width: calc(100% - 15em);
}
.consistent-height .tab-content > .active {
opacity: 100%;
}
这几乎可以正常工作,但是当我从“选项卡 2”移动到“选项卡 1”时会有额外的延迟(与激活“选项卡 2”时的立即转换相比)。 我怀疑延迟是由重叠转换引起的,但我对它们的理解不够好,无法理解是什么困扰着浏览器。
我做错了什么?
【问题讨论】:
标签: bootstrap-4 css-transitions bootstrap-tabs