Mat-form-field 在不同的浏览器中有不同的高度
Mat-form-field has different height in different browsers
我有一个普通表格,里面有 mat-form-field
个输入。表单包含一个日期字段和一个小时字段。 chrome:
中的字段看起来不错
但是,在 Firefox 和 Microsoft Edge 中,一个字段的高度比另一个高:
我不太确定是什么导致了这种情况,尤其是我的组件没有对输入实施任何特殊样式。我只是在使用 Flex Layout
<!-- Date and Time Start -->
<div fxFlex
fxLayout.lt-sm="column"
fxLayoutGap="2%"
fxLayoutAlign.gt-sm="space-around stretch"
fxLayout="row">
<!-- Date Start -->
<mat-form-field appearance="fill"
fxFlex
color="accent">
<input id="inputDateStart"
matInput
[formControl]="startDate"
(dateChange)="startDateChanged($event.value)"
[matDatepicker]="pickerStart"
[max]="startDatePickerMax"
placeholder="ab">
<mat-error>{{ getErrorMsgForDate() }}</mat-error>
<mat-datepicker-toggle matSuffix
[for]="pickerStart"></mat-datepicker-toggle>
<mat-datepicker #pickerStart></mat-datepicker>
<mat-hint>Ab Aufnahmedatum</mat-hint>
</mat-form-field>
<!-- Time Start -->
<app-w-mat-timepicker color="accent"
id="timePickerStart"
placeholder="von"
[timeFormat]="24"
[(userTime)]="startTimeToFilterFor"
(userTimeChange)="startTimeChanged($event)"></app-w-mat-timepicker>
</div>
还有我的时钟组件
<div fxFlex
fxLayout="row">
<mat-form-field fxFlex
appearance="fill"
color="accent">
<input matInput
[placeholder]="placeholder"
[value]="time">
<mat-hint>Uhrzeit</mat-hint>
<mat-icon matSuffix
(click)="showPicker($event)"
svgIcon="clock"></mat-icon>
</mat-form-field>
</div>
问题出在日期选择器的图标上,它太大了!
为了解决这个问题,我不得不手动将图标添加到我的项目中,然后在 mat-datepicker-toggle 组件中使用它。
参考这个答案
Motassem Jalal 的回答是正确的。日期选择器图标太大
但您不必添加自己的图标。您可以简单地更改 mat-datepicker-toggle 组件中的字体大小。
例如:
mat-datepicker-toggle {
font-size: 10px;
}
并在 html 中:
<mat-form-field appearance="fill">
<mat-label>Label</mat-label>
<input matInput [matDatepicker]="dateToPicker" />
<mat-datepicker-toggle matSuffix [for]="dateToPicker"></mat-datepicker-toggle>
<mat-datepicker #dateToPicker></mat-datepicker>
</mat-form-field>
我有一个普通表格,里面有 mat-form-field
个输入。表单包含一个日期字段和一个小时字段。 chrome:
但是,在 Firefox 和 Microsoft Edge 中,一个字段的高度比另一个高:
我不太确定是什么导致了这种情况,尤其是我的组件没有对输入实施任何特殊样式。我只是在使用 Flex Layout
<!-- Date and Time Start -->
<div fxFlex
fxLayout.lt-sm="column"
fxLayoutGap="2%"
fxLayoutAlign.gt-sm="space-around stretch"
fxLayout="row">
<!-- Date Start -->
<mat-form-field appearance="fill"
fxFlex
color="accent">
<input id="inputDateStart"
matInput
[formControl]="startDate"
(dateChange)="startDateChanged($event.value)"
[matDatepicker]="pickerStart"
[max]="startDatePickerMax"
placeholder="ab">
<mat-error>{{ getErrorMsgForDate() }}</mat-error>
<mat-datepicker-toggle matSuffix
[for]="pickerStart"></mat-datepicker-toggle>
<mat-datepicker #pickerStart></mat-datepicker>
<mat-hint>Ab Aufnahmedatum</mat-hint>
</mat-form-field>
<!-- Time Start -->
<app-w-mat-timepicker color="accent"
id="timePickerStart"
placeholder="von"
[timeFormat]="24"
[(userTime)]="startTimeToFilterFor"
(userTimeChange)="startTimeChanged($event)"></app-w-mat-timepicker>
</div>
还有我的时钟组件
<div fxFlex
fxLayout="row">
<mat-form-field fxFlex
appearance="fill"
color="accent">
<input matInput
[placeholder]="placeholder"
[value]="time">
<mat-hint>Uhrzeit</mat-hint>
<mat-icon matSuffix
(click)="showPicker($event)"
svgIcon="clock"></mat-icon>
</mat-form-field>
</div>
问题出在日期选择器的图标上,它太大了!
为了解决这个问题,我不得不手动将图标添加到我的项目中,然后在 mat-datepicker-toggle 组件中使用它。
参考这个答案
Motassem Jalal 的回答是正确的。日期选择器图标太大
但您不必添加自己的图标。您可以简单地更改 mat-datepicker-toggle 组件中的字体大小。
例如:
mat-datepicker-toggle {
font-size: 10px;
}
并在 html 中:
<mat-form-field appearance="fill">
<mat-label>Label</mat-label>
<input matInput [matDatepicker]="dateToPicker" />
<mat-datepicker-toggle matSuffix [for]="dateToPicker"></mat-datepicker-toggle>
<mat-datepicker #dateToPicker></mat-datepicker>
</mat-form-field>