【问题标题】:Angular Material design checkbox black foreground color (symbol color)Angular Material design 复选框黑色前景色(符号颜色)
【发布时间】:2019-03-22 00:34:36
【问题描述】:

我在我的应用程序中使用<mat-checkbox> ... </mat-checkbox> 组件,我需要将符号的颜色(“勾号”✓)设置为黑色。我可以通过 css 设置背景颜色,但对于“前景”颜色没有任何作用。

代码:

my.ts
          <mat-checkbox name="{{field.name}}"
                        [ngModel]="field.valueChecked"
                        ...
                        [ngClass]="{
                 'mandatory': field.mandatory == true
                 ,'optional': field.mandatory == false
                 ,'checkbox' : true}"
                 >
          </mat-checkbox>


my.css
    .checkbox {
        background-color: #3197ee !important;
        color: #050911 !important;
    }

欢迎任何如何改变颜色的解决方案!

【问题讨论】:

  • 我猜你必须为你的主要颜色和次要颜色创建一个新的自定义主题

标签: css angular typescript angular-material


【解决方案1】:

请尝试下面的 CSS 代码。它会起作用的。

input[type="checkbox"]:checked + label::after {
   content: '';
   position: absolute;
   width: 1.2ex;
   height: 0.4ex;
   background: rgba(0, 0, 0, 0);
   top: 0.9ex;
   left: 0.4ex;
   border: 3px solid #000000;
   border-top: none;
   border-right: none;
   -webkit-transform: rotate(-45deg);
   -moz-transform: rotate(-45deg);
   -o-transform: rotate(-45deg);
   -ms-transform: rotate(-45deg);
   transform: rotate(-45deg);
}

input[type="checkbox"] {
   line-height: 2.1ex;
}

input[type="checkbox"] {
    position: absolute;
    left: -999em;
}

input[type="checkbox"] + label {
    position: relative;
    overflow: hidden;
    cursor: pointer;
}

input[type="checkbox"] + label::before {
   content: "";
   display: inline-block;
   vertical-align: -25%;
   height: 2ex;
   width: 2ex;
   background-color: #3197ee;
   border: 1px solid rgb(166, 166, 166);
   border-radius: 4px;
   box-shadow: inset 0 2px 5px rgba(0,0,0,0.25);
   margin-right: 0.5em;
}

【讨论】:

  • 我使用了类似的解决方案和默认的 html 复选框(),它可以工作,但必须切换到材料设计复选框,这个解决方案可以不适合我。不过还是谢谢
  • 是的,正如我所说,对于 它有效,但不适用于 复选框
【解决方案2】:

试试这个

.mat-checkbox-checkmark-path {
    stroke: #000 !important;
}

/deep/ .mat-checkbox-checkmark-path {
    stroke: #000 !important;
}

【讨论】:

  • 第一个解决方案完美运行!我不喜欢第二个,因为我已经读过,'deep' 已被弃用,并且可能不适用于所有浏览器。谢谢!
  • 太棒了!是的,/deep/ 很快就会被弃用。
  • 在 Angular 7 上也可以使用 ::ng-deep
  • 它适用于/deep/,但不适用于自定义主题 >
猜你喜欢
  • 2019-10-16
  • 2021-09-27
  • 2022-01-06
  • 1970-01-01
  • 2015-01-09
  • 1970-01-01
  • 2016-08-23
  • 2013-12-18
  • 2019-07-06
相关资源
最近更新 更多