如何使可切换的 mat-sidenav 在 mat-sidenav-content 中也推送固定的 header
How to make a toggleable mat-sidenav push also a fixed header in the mat-sidenav-content
我正在使用 mat-sidenav-container 创建我的页面的桌面版本,但我想使 mat-sidenav 可切换,我已经设法做到了。
现在的问题是我在 mat-sidenav-content 上有一个固定的 header,当显示 mat-sidenav 时,那部分没有被推送。
对于 mat-sidenav 内容,我使用 css 网格将此部分分为两部分(固定 header 和主要内容)
你知道我怎样才能让 mat-sidenav 也推送固定的 header 吗?
谢谢。
您必须从 中删除这些样式。content__header:
height: 12rem;
position: fixed;
left: 0;
并向其添加 position: sticky
。由于 position: fixed
,方块无法被侧边栏推到一边,并且由于固定高度,当移除 position: fixed
时方块会溢出。特别不需要高度,因为您已经在 .content class 中指定了它:grid-template-rows: 12rem auto;
。将其更改为 position: sticky
会使 header 仍然在滚动条上,但也会被推到一边。重要的是 top: 0
仍然存在。
.content__header class 现在应该是这样的:
.content__header {
background-color: #eee;
width: 100%;
position: sticky;
top: 0;
padding: 0.5rem 1rem;
z-index: 3;
}
我正在使用 mat-sidenav-container 创建我的页面的桌面版本,但我想使 mat-sidenav 可切换,我已经设法做到了。 现在的问题是我在 mat-sidenav-content 上有一个固定的 header,当显示 mat-sidenav 时,那部分没有被推送。
对于 mat-sidenav 内容,我使用 css 网格将此部分分为两部分(固定 header 和主要内容)
你知道我怎样才能让 mat-sidenav 也推送固定的 header 吗?
谢谢。
您必须从 中删除这些样式。content__header:
height: 12rem;
position: fixed;
left: 0;
并向其添加 position: sticky
。由于 position: fixed
,方块无法被侧边栏推到一边,并且由于固定高度,当移除 position: fixed
时方块会溢出。特别不需要高度,因为您已经在 .content class 中指定了它:grid-template-rows: 12rem auto;
。将其更改为 position: sticky
会使 header 仍然在滚动条上,但也会被推到一边。重要的是 top: 0
仍然存在。
.content__header class 现在应该是这样的:
.content__header {
background-color: #eee;
width: 100%;
position: sticky;
top: 0;
padding: 0.5rem 1rem;
z-index: 3;
}