仅为选项卡内容添加滚动,但不为 Clarity 选项卡中的选项卡标签添加滚动
Add scroll only for a tab content but not for a tab label in Clarity Tabs
我在项目中有一个内容很长的选项卡(StackBlitz ref 是 here)。
所以卷轴出现了。
对应的代码是
<div class="content-container">
<div class="content-area">
<clr-tabs>
<clr-tab>
<button clrTabLink id="tab1-link">Tab1</button>
<clr-tab-content id="tab1-content" *clrIfActive="true">
...
</clr-tab-content>
</clr-tab>
<clr-tab>
<button clrTabLink id="tab2-link">Tab2</button>
<clr-tab-content id="tab2-content" *clrIfActive>
Content2
</clr-tab-content>
</clr-tab>
</clr-tabs>
</div>
</div>
问题是滚动覆盖了选项卡标签和选项卡内容。但我需要它只覆盖选项卡内容,这样如果我向下滚动,选项卡标签就会保留。
我尝试添加以下样式来修复它
.content-area {
overflow: hidden !important;
height: 100%;
}
#tab1-content, #tab2-content {
height: 100%;
overflow: auto;
}
但这导致滚动完全消失。如何仅为选项卡内容添加滚动条?
恐怕我无法从您的代码片段中得出足够的结论,因此查看了 Stackblitz 中的代码。其中,Tab1 和 Tab2 是具有 class nav.
的无序列表中的列表元素
将此导航从 content-container div 中移出并立即将其放在 header-2 header 元素下方可以满足您的需求, content-container div 填满主容器的剩余部分并滚动,Tab 列表元素在上方保持固定。
这可能只是运气 - 因为所有必需的 flex-related 设置都已经到位。
我找到了以下解决方案。
我需要添加到包含 overflow
属性.
所有选项卡的父组件 content-area
.content-area {
overflow: hidden ;
}
删除当前滚动条。
之后我们可以使用 Chrome 开发工具找到上述元素的高度。
现在我们应该将选项卡内容包装到另一个 div 中,其中包含一些 class(例如 mytab-content
)。
<clr-tab-content id="tab1-content" *clrIfActive="true">
<div class="mytab-content">
.......
</div>
</clr-tab-content>
最后我们应该为此添加以下样式 class
.mytab-content {
height: calc(100vh - 60px - 36px);
overflow: auto;
}
它只会为选项卡内容添加滚动。
我在项目中有一个内容很长的选项卡(StackBlitz ref 是 here)。
所以卷轴出现了。
对应的代码是
<div class="content-container">
<div class="content-area">
<clr-tabs>
<clr-tab>
<button clrTabLink id="tab1-link">Tab1</button>
<clr-tab-content id="tab1-content" *clrIfActive="true">
...
</clr-tab-content>
</clr-tab>
<clr-tab>
<button clrTabLink id="tab2-link">Tab2</button>
<clr-tab-content id="tab2-content" *clrIfActive>
Content2
</clr-tab-content>
</clr-tab>
</clr-tabs>
</div>
</div>
问题是滚动覆盖了选项卡标签和选项卡内容。但我需要它只覆盖选项卡内容,这样如果我向下滚动,选项卡标签就会保留。
我尝试添加以下样式来修复它
.content-area {
overflow: hidden !important;
height: 100%;
}
#tab1-content, #tab2-content {
height: 100%;
overflow: auto;
}
但这导致滚动完全消失。如何仅为选项卡内容添加滚动条?
恐怕我无法从您的代码片段中得出足够的结论,因此查看了 Stackblitz 中的代码。其中,Tab1 和 Tab2 是具有 class nav.
的无序列表中的列表元素将此导航从 content-container div 中移出并立即将其放在 header-2 header 元素下方可以满足您的需求, content-container div 填满主容器的剩余部分并滚动,Tab 列表元素在上方保持固定。
这可能只是运气 - 因为所有必需的 flex-related 设置都已经到位。
我找到了以下解决方案。
我需要添加到包含 overflow
属性.
content-area
.content-area {
overflow: hidden ;
}
删除当前滚动条。 之后我们可以使用 Chrome 开发工具找到上述元素的高度。
现在我们应该将选项卡内容包装到另一个 div 中,其中包含一些 class(例如 mytab-content
)。
<clr-tab-content id="tab1-content" *clrIfActive="true">
<div class="mytab-content">
.......
</div>
</clr-tab-content>
最后我们应该为此添加以下样式 class
.mytab-content {
height: calc(100vh - 60px - 36px);
overflow: auto;
}
它只会为选项卡内容添加滚动。