更改角度日期选择器材质组件的颜色

Posted

技术标签:

【中文标题】更改角度日期选择器材质组件的颜色【英文标题】:Change color of angular datepicker material component 【发布时间】:2019-11-23 22:05:33 【问题描述】:

我正在开发一个黑色背景的有角材质日期选择器。如何将日期选择器图标、下划线和占位符文本的默认颜色更改为全白色?

<mat-form-field>
    <input matInput [matDatepicker]="picker" placeholder="Choose a date">
    <mat-datepicker-toggle [for]="picker" matSuffix></mat-datepicker-toggle>
    <mat-datepicker #picker></mat-datepicker>
</mat-form-field>

【问题讨论】:

使用浏览器调试器查找所需元素的类名。得到类名后,就可以用它来改变颜色了。您可能还必须使用 ::ng-deep ::ng-deep 即将被弃用:angular.io/guide/component-styles#deprecated-deep--and-ng-deep 【参考方案1】:

您可以使用 ::ng-deep。这是工作示例https://stackblitz.com/edit/angular-mat-datepicker-qj73og

::ng-deep .mat-focused .mat-form-field-label 
 /*change color of label*/
 color: white !important;


::ng-deep.mat-form-field-underline 
 /*change color of underline*/
 background-color: white !important;
 

::ng-deep.mat-form-field-ripple 
 /*change color of underline when focused*/
 background-color: white !important;;


::ng-deep .mat-form-field-label 
 /*change color of label*/
 color: white !important;



mat-datepicker-toggle 
 color: white !important;

【讨论】:

这对我有帮助,我不需要添加::ng-deep。我删除了它,它对我有用。【参考方案2】:

使用::ng-deep 并选择那些元素:

See working example

::ng-deep datepicker-value-example .mat-form-field-label
   color:red;


::ng-deep .mat-datepicker-toggle
   color:red;

::ng-deep .mat-form-field-underline
background: red;

【讨论】:

告诉我更多帮助【参考方案3】:

请按照以下指南操作:https://material.angular.io/guide/theming#theming-only-certain-components。

您可以执行类似的操作(在某些 scss 主题文件中:

@import '~@angular/material/theming';

// Just include this next line once in your application, so if you are building
// a file just to theme the datepicker, don't put it here.
@include mat-core();

// Define the datepicker theme.
$datepicker-primary: mat-palette($mat-indigo);
$datepicker-accent:  mat-palette($mat-pink, A200, A100, A400);
$datepicker-theme:   mat-light-theme($candy-app-primary, $candy-app-accent);

// Apply the theme to your component
@include mat-datepicker-theme($datepicker-theme);

【讨论】:

【参考方案4】:

在答案上方设置字体颜色对我不起作用。我用了以下,希望这对某人有所帮助。

改变颜色

.mat-calendar-body-cell-content, .mat-date-range-input-separator 
  color: blue;

更改字体大小和粗细

.mat-calendar-body 
  font-size: 16px;
  font-weight: bold;

将此添加到styles.css,我正在使用Angular 12Angular Material 12

【讨论】:

以上是关于更改角度日期选择器材质组件的颜色的主要内容,如果未能解决你的问题,请参考以下文章

Ember JS从日期选择器中选择日期时,更改按钮组件的颜色和标题

角度材料日期时间选择器更改显示日期时间的格式

更改内联日期选择器角度材料的标题

剑道列过滤器内的角度材料日期选择器问题

更改日期选择器的文本颜色

如何更改GraphicalDatePickerStyle日期选择器Swiftui的选择颜色(AM,PM)和时间