![](/img/trans.png)
[英]Angular Material Tabs with Fixed Tab Header and Fixed Div In Content
[英]Angular Material 2 Tabs with fixed (sticky) tab labels
我有一个使用Angular Material 2 mat-sidenav
布局和mat-sidenav-content
部分中的mat-tab布局的布局。 我正在尝试使mat-tab-labels
粘性,以便它们始终可见,并且仍然允许动态tab-content滚动。 我可以通过设置overflow: hidden
在mat-sidenav-content
,然后设置overflow: scroll
在mat-tab-body-wrapper
元素上overflow: scroll
来使标签保持固定,但是我必须设置固定高度才能获得tab-content
要滚动的tab-content
,但是我有动态内容,因此不能选择固定高度。 有没有办法在我不设置固定高度的情况下获取粘性标签并滚动呢?
下面是一个演示。 缩小窗口的垂直高度,直到它覆盖“大内容” div的一部分。 它不会滚动。 然后取消注释设置高度的mat-tab-group
css,它将根据需要滚动(但固定高度)。
https://stackblitz.com/edit/angular-rty6oe?file=app%2Fsidenav-fixed-example.css
UPDATE
好的,@ Dakota Maker的答案解决了眼前的问题,也使我想起了我最初试图解决的问题,使我无法滚动。 我更新了示例应用程序,以更好地反映我的真实应用程序。 我在mata-tab-group上方的sidenav-content区域内有一个子标题,滚动时它永远不会到达底部,除非窗口高度足够大,因为标题似乎已经上下推了该内容屏幕。 我可以在内容的底部添加一个边距以补偿子标题,但是子标题区域的高度可以更改。
如果我应该接受原始问题的答案并打开一个新问题,请提出建议。
设置height:100%
一个mat-tab-groups
,您将可以滚动,并且大内容中间不会有大的白色块
编辑伴随OP的更新:
您可以在.mat-tab-body-wrapper
添加诸如bottom:12px
以在bottom:12px
提供固定的空间。 这最终将使您在包装器顶部的一些溢出与选项卡所在的位置重叠,但是您应该能够解决此问题,并在同一块中添加margin-top:12px
之类的内容。 希望这会有所帮助!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.