html - 如何通过 Flex-Layout 设置 Angular Material Footer

标签 html css angular angular-material angular-flex-layout

如何在我的应用中设置页脚(我使用 Angular Material)以便它:

  1. 如果内容高度小于视口(viewport),则粘在底部
  2. 如果内容高度大于视口(viewport),则向下移动/被压下

还有一件更重要的事情——我想通过 angular/flex-layout来实现这一点,而不是通过标准的 HTML/CSS“flex-box”。

<mat-sidenav-container>
  <mat-sidenav #sidenav
    fixedInViewport="true"
    [attr.role]="(isHandset$ | async) ? 'dialog' : 'navigation'"
    [mode]="(isHandset$ | async) ? 'over' : 'side'"
    [opened]="!(isHandset$ | async)">

    <mat-nav-list>
      <mat-list-item *ngFor="let li of listItems" routerLink="{{li.link}}">
        <mat-icon mat-list-icon>{{li.icon}}</mat-icon>
        <p mat-line>{{li.name}}</p>
      </mat-list-item>
    </mat-nav-list>
  </mat-sidenav>
  <mat-sidenav-content>

    <app-header (menuButtonClick)="sidenav.toggle()"></app-header>

    <ng-content select="[outlet]"></ng-content>

    <app-footer></app-footer>

  </mat-sidenav-content>
</mat-sidenav-container>   

谢谢大家

最佳答案

如果您更喜欢填充内容而不是页脚,这里有几行解决方案(Akhi 的解决方案):

app.component.html:

<div fxLayout="column" fxFlexFill>
    <app-header></app-header> // your header
    <div fxFlex>
        <router-outlet></router-outlet> // your content
    </div>
    <app-footer></app-footer> // your footer
</div>

样式.css:

html, body {
    height: 100%;
    box-sizing: border-box;
    margin: 0;
}

关于html - 如何通过 Flex-Layout 设置 Angular Material Footer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53887152/

相关文章:

HTML/CSS - Div 不会正确对齐

javascript - Cordova - Android 修改 JavaScript

wordpress - :not selector doesn't work

html - Angular 6 是否正在删除默认元素边距?

javascript - 惊人的 CSS Div 滚动效果,无法解释,提供链接。这是一个网页设计问题,如何获得这样的效果?

html - 对 Flex 收缩和增长非常困惑

javascript - 在 ruby​​ on rails 中显示 flash 错误消息后,通过 javascript 保持更改的样式

html - 显示 : flex shows underlined icons

angular - 为什么要为 Angualr2 安装 nodejs 和 npm 以使用 Grails 3.0

angular - 使用 OpenLayers 和 Angular 6 向 map 添加标记