Je me sers donc de cli angulaire avec un design matériel. J'essaie de me débarrasser du fond avec un sidenav et je pensais que ce serait aussi simple que
.mat-sidenav-backdrop.mat-sidenav-shown{
background-color: transparent !important;
}
cependant, cela n'a aucun effet. J'ai essayé d'afficher aucun, de visibilité cachée, etc. Il semble que le style de la toile de fond soit inséré dans une balise et que j'aurais pensé que l'important l'emporterait. Cependant, cela ne fonctionne pas ... Quelqu'un a des idées qui n'impliquent pas que je retire la balise de toile de fond/modifie les styles via javascript lors du rendu?
::ng-deep
fonctionne très bien dans ce cas, mais il risque d’être obsolète à l’avenir. Voir ici :
Le combinateur de descendants perçant les ombres est déconseillé et le support est supprimé de Des principaux navigateurs et outils. En tant que tel, nous prévoyons de supprimer le support de In Angular (pour les 3 options de/deep /, >>> et :: ng-deep). Jusqu'au , Alors: ng-deep devrait être préféré pour une compatibilité plus large avec Les outils.
La méthode recommandée consiste à utiliser ViewEncapsulation . Dans votre composant, ajoutez l'encapsulation suivante:
import { ViewEncapsulation } from '@angular/core';
@Component({
....
encapsulation: ViewEncapsulation.None
})
Ensuite, votre css fonctionnera et remplacera les styles par vos styles personnalisés.
.mat-sidenav-backdrop.mat-sidenav-shown{
background-color: transparent !important;
}
Ajoutez ::ng-deep
pour remplacer le css de stylesheet pré-construit par défaut.
::ng-deep .mat-sidenav-backdrop.mat-sidenav-shown {
background-color: transparent;
}
Vous pouvez également utiliser display: none
pour supprimer complètement le fond du DOM. Dans ce cas, sidenav
ne se fermera pas lorsque vous cliquerez dans la zone de fond.
::ng-deep .mat-sidenav-backdrop.mat-sidenav-shown {
display: none;
}
@Input() hasBackdrop: any
- Indique si le conteneur doit avoir une toile de fond pendant qu'un des sidenav est ouvert. Si explicitement défini sur true, le fond sera également activé pour les tiroirs en mode latéral.
Donc, vous devriez simplement définir la propriété [hasBackdrop]="false"
sur mat-sidenav-container