70 votes

Comment changer la hauteur dans un mat-form-field

Comment puis-je changer la hauteur dans mat-form-field avec appearance="outline"?

J'ai besoin de réduire le mat-form-field.

Mon exemple d'entrée

entrez une description de l'image ici

0 votes

En css: input.mat-input-element {height:105px} - est-ce ce que tu veux dire ?

0 votes

Voici ce que je veux dire, mais je veux réduire le contrôle et ne réduire que l'élément interne et non le mat-form-field.

0 votes

Pouvez-vous fournir une image de ce que vous vouliez réaliser

1voto

user2717825 Points 1

C'est ce que j'ai utilisé :

.small-input.mat-form-field-appearance-outline .mat-form-field-infix {
    padding: .25em 0 .75em 0;
    font-size: 14px;
}
.small-input.mat-form-field-appearance-outline .mat-form-field-infix .mat-select-arrow{margin-top: 10px;}
.small-input.mat-form-field-appearance-outline .mat-select-empty + .mat-form-field-label-wrapper .mat-form-field-label{margin-top: -0.75em;}

0 votes

J'ai essayé ce code et il a fonctionné pour les champs de saisie mais pas pour les libellés (dans mes entrées mat-autocomplete). En renommant de small-input à compact-input, j'ai fini par utiliser ce sélecteur pour positionner le libellé sur l'objet vide : .compact-input.mat-form-field-appearance-outline .mat-form-field-infix .mat-form-field-label-wrapper .mat-form-field-label.mat-empty.mat-form-field-empty { margin-top: -0,75em; }

1voto

Skye Giordano Points 11

Voici une autre approche:

/* Remplacements pour Angular Material */
.mat-form-field-appearance-outline .mat-form-field-outline {
  color: #ccc; /* Remplacer la couleur de contour. */
}

.mat-form-field-appearance-outline .mat-form-field-infix {
  padding: .65em 0; /* La valeur originale de haut/bas était de 1em. */
}

.mat-input-element {
  position: relative;
  top:  -1.2em; /* Ajuster en conséquence pour garder le texte de l'espace réservé/entrée centré verticalement. */
}

.mat-form-field-label-wrapper {
  top: -1.2em; /* Ajuster en conséquence pour garder le texte de  centré verticalement. */
}

1voto

Marc Points 71

Comme de nombreux post people l'ont expliqué, les champs de formulaire Material angular sont basés sur la taille de la police, donc pour tous ceux qui veulent définir un champ de formulaire personnalisé, voici mon code pour redimensionner à la fois la hauteur et la largeur sans affecter la taille de la police d'entrée ou l'icône de bascule.

  • Définissez à l'intérieur du css du composant ce code et appliquez-le comme une classe à l'étiquette mat-form-field.

    .custom-form-field { width: 200px; font-size: 10px; margin-top: 3px; margin-bottom: -1.25em;

    mat-datepicker-toggle { font-size: 12px; }

    input.mat-input-element { padding-bottom: 2px; font-size: 12px; color: $title-color; } }

1voto

user1012506 Points 858

Vous pouvez ignorer profondément la valeur de rembourrage du style de contour :

::ng-deep .mat-form-field-appearance-outline .mat-form-field-infix {
  padding: .5em;
}

Pour moi, c'était une bonne solution

1voto

Sivaraman Points 3

Si vous n'utilisez pas 'mat-label' à l'intérieur de 'mat-select', alors le css ci-dessous fonctionnera

::ng-deep {
    .mat-form-field-infix {
        border: 0px !important;
    }
    .mat-form-field-appearance-outline .mat-select-arrow-wrapper {
        transform: none !important;
    }
}

Avant:

Avant d'ajouter le css ci-dessus

Après:

Après avoir ajouté le css ci-dessus

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X