Невозможно получить angular -материал md-sidenav на 100% высоты
Я создаю новое приложение angular2, используя angular2 -материал с sidenav. И я не могу для жизни меня получить, что sidenav иметь высоту 100%. Я пытаюсь получить меню для выдвижения, которое занимает всю высоту экрана. И я хочу, чтобы он открывался таким же образом независимо от того, где прокручивается пользователь.
Вот мой шаблон:
<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>
И вот мой CSS:
.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
установлено значение min-height:100%
Ответы
Ответ 1
Используйте полноэкранный режим
<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>
Ответ 2
В соответствии с комментарием Проблема: Angular Материал 2 - не рендеринг в полноэкранном режиме атрибут fullscreen будет удален...
Попробуйте это вместо:
md-sidenav-container {
position: fixed;
height: 100%;
min-height: 100%;
width: 100%;
min-width: 100%;
}
Ответ 3
.demo-sidenav-layout {
position:fixed;
//border: 3px solid black;
min-height:100vh;
md-sidenav {
padding: 10px;
background: gainsboro;
min-height: 100%;
}
}
сделать высоту 100vh вместо 100%.... хотя вы можете сделать width = 100%, вы не можете просто сделать высоту 100% сразу, потому что обычно вы можете прокручивать вниз до бесконечности.
используйте
position:absolute;
а затем используйте
height : 100%;
Ответ 4
В итоге я установил 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;
}
}