Я использовал Angular Материал для создания sidenav, который может скрывать текст навигации при нажатии на меню. Я следую за https://material.angular.io/components/sidenav/overview, используя autosize на mat-sidenav-container
Но sidenav по-прежнему перекрывает часть mat-sidenav-content, и он не изменяет размер контента автоматически
Я использую "@ angular / material": "^ 8.0.2"
html
<mat-sidenav-container class="example-container" autosize>
<mat-sidenav #sidenav class="example-sidenav" mode="side" opened="true">
<mat-nav-list>
<mat-list-item>
<button mat-icon-button (click)="isExpanded = !isExpanded">
<mat-icon *ngIf="!isExpanded">chevron_right</mat-icon>
<mat-icon *ngIf="isExpanded">chevron_left</mat-icon>
</button>
</mat-list-item>
<mat-list-item>
<mat-icon mat-list-icon>home</mat-icon>
<p matLine *ngIf="isExpanded">Home</p>
</mat-list-item>
</mat-nav-list>
</mat-sidenav>
<mat-sidenav-content>
Main content
</mat-sidenav-content>
</mat-sidenav-container>
ts file
import {Component} from '@angular/core';
import { MatSidenav } from '@angular/material/sidenav';
@Component({
selector: 'sidenav-autosize-example',
templateUrl: 'sidenav-autosize-example.html',
styleUrls: ['sidenav-autosize-example.css'],
})
export class SidenavAutosizeExample {
isExpanded = false;
}
css
.example-container {
width: 100%;
height: 300px;
border: 1px solid rgba(0, 0, 0, 0.5);
}
.example-sidenav-content {
padding: 10px;
height: 100%;
}