css - Angular Material 2 md-sidenav-content 不占全高

标签 css angular angular-material2

我正在使用 Angular Material 2,但我遇到了这个问题,其中 md-sidenav-content 只占用了内容的高度。但是,我希望它是高度的 100% 或内容高度(以最大者为准)。请注意,父容器 md-sidenav-container 确实具有我想要的完整高度。

screenshot

screenshot2

但是,我在我的应用程序中没有使用过 md-sidenav-content。它似乎是 Angular Material 2 本身生成的东西。所以我不能改变它的属性。

由于存在这个问题,我无法让绿色背景覆盖整个高度。

// app.component.html
<md-sidenav-container>

<!--side nav-->
<md-sidenav #sidenav mode="over" class="app-sidenav">

    <!--header-->
    <div id="side-nav-header">
    <img id="side-menu-logo" src="../assets/images/logo_small.png"> MyApp
    </div>

    <!--body-->
    <a [mdTooltip]="!isCurrentUserExist ? 'Please login first!': ''" [routerLink]="['/create-timesheet']" (click)="sidenav.close()">Timesheet</a>

</md-sidenav>

<br><br>

<!--main content-->
<router-outlet></router-outlet>
</md-sidenav-container>


// login.component.html
<div id="login-container" class="container-fluid">
    <div class="row">
        <div id="login-component" class="col-md-6 offset-md-3">
            <md-card>

                <h2>Login</h2>

                <br>

                <form name="form" [formGroup]="loginForm" (ngSubmit)="onLogin()">

                    <!--email-->
                    <md-input type="email" placeholder="Email" formControlName="email"></md-input>
                    <label class="errorMessage" *ngIf="!loginForm.controls['email'].valid && loginForm.controls['email'].dirty" for="email">
            Email is required</label>

                    <!--password-->
                    <md-input type="password" placeholder="Password" formControlName="password"></md-input>
                    <label class="errorMessage" *ngIf="!loginForm.controls['password'].valid && loginForm.controls['password'].dirty" for="lastName">
            Password is required</label>

                    <br><br>

                    <div class="form-group">
                        <button [disabled]="loading || !loginForm.valid" class="btn btn-primary">Login</button>
                        <a *ngIf="!isLoading" [routerLink]="['/forgot-password']" (click)="onForgotPassword()">forgot password</a>
                    </div>
                </form>
            </md-card>
        </div>
    </div>
</div>


// loging.component.css
#login-container {
    min-height: 100%;
    background-color: green;
}

最佳答案

努力给予

height: 100vh;

md-sidenav-container。它将占用视口(viewport)高度。

如果您将 md-toolbar 放置在 md-sidenav-container 之外,您可以通过减去 的像素来调整容器本身的高度md-toolbar(假设它的高度是 50px):

height: calc(100vh - 50px);

关于css - Angular Material 2 md-sidenav-content 不占全高,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42431542/

相关文章:

javascript - 使用javascript根据开始和结束日期过滤数组

html - 如何使CSS高度为: 100% take effect in a varying height container?

angular - Safari 浏览器不缓存图像,网站是用 Angular 构建的

javascript - 有没有办法为所有元素添加类

javascript - 你能引用一个在 ngOnInit 中创建的函数吗?

angular - 单击时取消选中事件的 Angular Material 切换按钮

angular - 当我在确认窗口中单击取消时,mat-slide-toggle 不应更改其状态

Angular 4 Material 对话框平滑过渡

html - 如果在 JSFiddle 中显示,IE9 显示相同代码的不同结果

html - 限制表格单元格中的文本行数