angularjs - 我如何更改 Angular Material md-primary 按钮文本颜色?

标签 angularjs angularjs-material

基本上,我一生都无法弄清楚如何使用有 Angular 的 Material 和其他任何使用 md-primary 背景颜色的东西来设置按钮的文本颜色。

我用来创建主题的代码是

var customPrimary = {
        '50': '#7de3cf',
        '100': '#69dec8',
        '200': '#54dac0',
        '300': '#3fd5b8',
        '400': '#2dceaf',
        '500': '#28b99d',
        '600': '#23a48b',
        '700': '#1f8f79',
        '800': '#1a7a68',
        '900': '#166556',
        'A100': '#92e8d7',
        'A200': '#a7ecdf',
        'A400': '#bcf1e7',
        'A700': '#115044'
    };
    $mdThemingProvider
        .definePalette('customPrimary',
        customPrimary);
    $mdThemingProvider.theme('buttons')
        .primaryPalette('customAccent');

但是,无论我尝试什么,我都可以将文本颜色设为 #fff除非我使用 css 和 !important我想避免这种情况,因为这意味着要覆盖多个选择器。

最佳答案

来自 docs :

angular.module('myApp', ['ngMaterial'])
.config(function($mdThemingProvider) {
  $mdThemingProvider.definePalette('amazingPaletteName', {
    '50': 'ffebee',
    ...
    'A700': 'd50000',
    'contrastDefaultColor': 'light',    // whether, by default, text (contrast)
                                        // on this palette should be dark or light
    'contrastDarkColors': ['50', '100', //hues which contrast should be 'dark' by default
     '200', '300', '400', 'A100'],
    'contrastLightColors': undefined    // could also specify this if default was 'dark'
  });
  $mdThemingProvider.theme('default')
    .primaryPalette('amazingPaletteName')
});

这里重要的是contrastDarkColors/contrastLightColors . “对比”颜色是显示在按钮上的文本(或图标)颜色。

我猜你会想要类似的东西
'contrastDefaultColor': 'light',
'contrastDarkColors': ['50', '100', '200', '300', 'A100', 'A400']

编辑:如果您出于某种原因想要按钮上的颜色,创建一个具有 !important 的类很好,例如
.md-button.cyan-text {
    color: cyan !important;
}


<md-button class="md-primary md-raised cyan-text">Hello world</md-button>

关于angularjs - 我如何更改 Angular Material md-primary 按钮文本颜色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35042057/

相关文章:

angularjs - Angularjs 中进行 "right"指令间通信的 "master-detail"方式是什么

javascript - Angular 手动引导在 IE 10 上不起作用

javascript - 监听复选框并在谷歌地图上显示/隐藏圆形形状(AngularJS)

javascript - 使用自己的 ng-models 动态添加输入

angularjs - Angular Material : loose focus with clicking out an input

javascript - 错误 : message. $delete 不是函数

java - 检索数据 AngularJS 和 spring MVC

ServiceNow:访问 mdDialog 中的小部件选项架构

angularjs - 防止有 Angular 的 Material 选择列表标签动画

css - 如何在有 Angular Material 中水平对齐单选按钮?