Components: Multiple mat-icon or mat-icon-button as prefix or suffix are displayed in columns

Created on 28 Nov 2018  路  4Comments  路  Source: angular/components

Bug:

More than one mat-icon or mat-icon-button as prefix or suffix in a mat-form-field are displayed in columns when appearance is other than 'legacy'.

What is the expected behavior?

They should display in row like in 'legacy' appearance.

What is the current behavior?

They are displayed in column.

What are the steps to reproduce?

https://stackblitz.com/edit/material-multiple-presuffix

What is the use-case or motivation for changing an existing behavior?

Behavior is not consistent accros mat-form-field appearances.

Which versions of Angular, Material, OS, TypeScript, browsers are affected?

@angular/material 7.1.0

All browsers.

Is there anything else we should know?

I see 2 solutions :
__Solution 1 :__
Remove this two rules :

:not(.mat-form-field-appearance-legacy).mat-form-field .mat-form-field-prefix .mat-icon,
:not(.mat-form-field-appearance-legacy).mat-form-field .mat-form-field-suffix .mat-icon {
    display: block;
}
:not(.mat-form-field-appearance-legacy).mat-form-field .mat-form-field-prefix .mat-icon-button,
:not(.mat-form-field-appearance-legacy).mat-form-field .mat-form-field-suffix .mat-icon-button {
    display: block;
}

__Solution 2 :__
Use flexbox for prefix and suffix :

.mat-form-field-prefix,
.mat-form-field-suffix {
  display: inline-flex;
  align-items: center;
}

Potentially related issues : #11650, #13094, #13322 & #13592

P4 materiabutton materiaicon has pr

Most helpful comment

as a workaround for this, use a single matSuffix div and arrange the items inside however you like: https://stackblitz.com/edit/material-multiple-presuffix-u7kax5?file=app%2Fform-field-prefix-suffix-example.html

All 4 comments

Fixed it for me on datepicker outlined input field.
.mat-form-field-flex { align-items: center; }

@aennafae thanks, it's the missing part for solution 2 to work properly.

as a workaround for this, use a single matSuffix div and arrange the items inside however you like: https://stackblitz.com/edit/material-multiple-presuffix-u7kax5?file=app%2Fform-field-prefix-suffix-example.html

Was this page helpful?
0 / 5 - 0 ratings