我正在使用带有sidenav的angular2-material制作一个新的angular2应用程序。我无法为我的生活获得100%的高度。我试图让菜单滑出,占据屏幕的整个高度。无论用户在哪里滚动,我都希望它以相同的方式打开。
这是我的模板:
tr(ng-repeat='detail in launchesList | orderBy: "+launchDate" | filterPastDates | filter:{launchName:launchName} | filter:{vendorName:vendorName} | angleFilter:anglesList)
这是我的CSS:
<md-sidenav-layout class="demo-sidenav-layout">
<md-sidenav #start mode="over">
<a [routerLink]="['/login']" class="btn btn-primary">Log in</a>
<br>
</md-sidenav>
<md-toolbar color="primary">
<button md-button (click)="start.toggle()">Open Side Drawer</button>
<span>Spellbook</span>
<span class="demo-fill-remaining">
</span>
</md-toolbar>
<div class="demo-sidenav-content">
<router-outlet></router-outlet>
</div>
</md-sidenav-layout>
我的.demo-sidenav-layout {
//border: 3px solid black;
min-height:100%;
md-sidenav {
padding: 10px;
background: gainsboro;
min-height: 100%;
}
}
.demo-sidenav-content {
padding: 15px;
min-height:100%;
}
.demo-toolbar {
padding: 6px;
.demo-toolbar-icon {
padding: 0 14px 0 14px;
}
.demo-fill-remaining {
flex: 1 1 auto;
}
}
设置为html
,height:100%
设置为body
答案 0 :(得分:53)
使用全屏
<md-sidenav-layout fullscreen>
<md-sidenav #start mode="over">
<a [routerLink]="['/login']" class="btn btn-primary">Log in</a>
<br>
</md-sidenav>
<md-toolbar color="primary">
<button md-button (click)="start.toggle()">Open Side Drawer</button>
<span>Spellbook</span>
<span class="demo-fill-remaining"></span>
</md-toolbar>
<div class="demo-sidenav-content">
<router-outlet></router-outlet>
</div>
</md-sidenav-layout>
答案 1 :(得分:39)
根据对Issue : Angular Material 2 - not rendering in full screen的评论,将删除全屏属性...
请改为尝试:
mat-sidenav-container {
position: fixed;
height: 100%;
min-height: 100%;
width: 100%;
min-width: 100%;
}
答案 2 :(得分:6)
在最新版本的material.angular中,您可以在mat-sidenav上使用属性fixedInViewport。
见下文。
<mat-sidenav #start mode="over" fixedInViewport="true"> ... </mat-sidenav>
答案 3 :(得分:3)
.demo-sidenav-layout {
position:fixed;
//border: 3px solid black;
min-height:100vh;
md-sidenav {
padding: 10px;
background: gainsboro;
min-height: 100%;
}
}
使高度100vh而不是100%....尽管你可以使宽度= 100%,但你不能一次只做100%的高度,因为通常你可以向下滚动到无穷大。 使用
position:absolute;
然后使用
height : 100%;
答案 4 :(得分:1)
我最终在sidenav本身上设置position:fixed
,这正是我想要的。
.demo-sidenav-layout {
position:fixed;
//border: 3px solid black;
min-height:100%;
md-sidenav {
padding: 10px;
background: gainsboro;
min-height: 100%;
}
}
.demo-sidenav-content {
padding: 15px;
min-height:100%;
}
.demo-toolbar {
padding: 6px;
.demo-toolbar-icon {
padding: 0 14px 0 14px;
}
.demo-fill-remaining {
flex: 1 1 auto;
}
}
答案 5 :(得分:0)
您还可以像这样将mad-sidenav-content
的{{1}}设置为min-height
:
100vh
位置:
<mat-sidenav-content class="sidenav__content--height"> .... </mat-sidenav-content>