J'utilise angular 7 with angular material and I want to remove the space bottom as you see see. J'ai essayé de nombreuses façons mais sans succès).
vous pouvez l'ajouter dans votre css
::ng-deep .mat-form-field-wrapper{
margin-bottom: -1.25em;
}
mais lorsque vous ajoutez ceci, vous ne pouvez pas mettre <mat-hint>hint</mat-hint>
ou <mat-error>error</mat-error>
correctement. Une erreur et un indice pénètrent dans le champ de formulaire lorsque vous supprimez le remplissage;
Sans utiliser ::ng-deep
(pour Angular 8)
Désactivez l'encapsulation de votre composant à l'intérieur duquel vous modifiez le rembourrage.
Vous pouvez le faire en
import {Component,ViewEncapsulation} from '@angular/core';
@Component({
selector: 'example',
templateUrl: 'example.component.html',
styleUrls: ['example.component.css'],
encapsulation : ViewEncapsulation.None,
})
export class ExampleComponent {}
Enveloppez le composant que vous souhaitez styliser dans une classe personnalisée. Cela n'affectera donc aucun autre mat-form-field
Composants. Enveloppons cela avec my-form-field
classe pour l'instant
<mat-form-field class="my-form-field>
<input matInput placeholder="Input">
</mat-form-field>
.my-form-field .mat-form-field-wrapper{
margin-bottom: -1.25em;
}
Vous pouvez ajouter ces CSS dans la feuille de style globale sans désactiver l'encapsulation de la vue. Mais la méthode la plus élégante est celle ci-dessus
Essayez ce qui suit:
<mat-form-field style="margin-bottom: -1.25em">
(Vous pouvez suivre la discussion sur cet espace inférieur supplémentaire ici: https://github.com/angular/components/issues/7975 )
Ma solution a été d'utiliser une classe supplémentaire.
HTML:
<mat-form-field class="no-padding">
<input type="number" matInput placeholder="Speed" [ngModel]="speed"
(ngModelChange)="onSpeedChange('speed', $event)"/>
</mat-form-field>
SCSS:
.no-padding {
.mat-form-field-wrapper {
padding-bottom: 0 !important;
}
}
Le mot-clé! Important est malheureusement nécessaire car il tirera sinon simplement la valeur par défaut à la place.
.mat-form-field-infix{
display: block;
position: relative;
flex: auto;
padding: 0;
border-top: 0px solid transparent !important;
}
vous pouvez ajouter des éléments importants dans css
Dans angular 9, j'ai pu supprimer les lacunes uniquement en ajoutant ce qui suit dans le component.scss (les autres réponses n'ont pas fonctionné dans mon cas):
::ng-deep .mat-form-field-wrapper{
margin: 0 !important;
padding: 0;
}
En outre, j'utilise apparence = "contour", pour d'autres apparences, il sera probablement nécessaire de changer d'autres classes et propriétés CSS, car il peut avoir d'autres éléments.
Vous pouvez ajouter une hauteur: 4em à mat-form-field en tant que tel:
<mat-form-field
class="height-4em"
appearance="outline"
>
<mat-label>Favorite food</mat-label>
<input matInput placeholder="Ex. Pizza" value="Sushi">
</mat-form-field>
Je peux supprimer l'espace inférieur de mat-form-field en utilisant le CSS suivant dans style.scss
.mat-form-field-wrapper{
padding-bottom: 10px;
}