无法删除日期选择器标签应该是

问题描述

我正在尝试删除标签应该位于的额外空间(绿色部分)

enter image description here

这似乎是日期选择器的 CSS,现在问题来了:

enter image description here

我在 .css 文件添加了这个,但它似乎没有做任何事情。

.mat-form-field-appearance-fill .mat-form-field-flex {
padding-top: 0.0em !important;
padding-right: 0.0em !important;
padding-bottom: 0px !important;
padding-left: 0.0em !important; 
}

是的,CSS 文件链接到 html 文件,当我尝试修改其他内容时它会起作用。

知道为什么吗?

编辑:我正在使用 Angular Material Date-picker

这是 HTML

<mat-form-field appearance="fill">
  <mat-date-range-input [formGroup]="range" [rangePicker]="picker">
    <input matStartDate formControlName="from" placeholder="From">
    <input matEndDate formControlName="to" placeholder="To">
  </mat-date-range-input>
  <mat-datepicker-toggle matSuffix [for]="picker"></mat-datepicker-toggle>
  <mat-date-range-picker #picker></mat-date-range-picker>
  <mat-error *ngIf="range.controls.from.hasError('matStartDateInvalid')">Invalid starting date!</mat-error>
  <mat-error *ngIf="range.controls.to.hasError('matEndDateInvalid')">Invalid ending date!</mat-error>
</mat-form-field>

解决方法

您的 CSS 规则是正确的。您很可能会遇到视图封装问题。

如果您在组件中使用由 styleUrls 数组定义的 CSS 文件,您的规则将不会穿透到 Angular 组件。您可以通过两种方式解决此问题。

  1. 将您的规则移至顶级 css/scss 文件。

  2. 使用 ::ng-deep 伪类从您的组件应用规则。 (我建议将其嵌套在 :host 伪类中以限制您的范围)。

    :host ::ng-deep .your-class {
         // rules
    }
    

这是一个 StackBlitz 来展示这两种方法的工作:https://stackblitz.com/edit/angular-bvn3gy?file=src%2Fapp%2Fdate-range-picker-comparison-example.css

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...