css 如何更改复选框的背景颜色?

bejyjqdl  于 2023-05-08  发布在  其他
关注(0)|答案(6)|浏览(401)

我使用Material.io作为我的UI并创建一个复选框:

<div class="mdc-form-field">
  <div class="mdc-checkbox">
    <input type="checkbox"
           class="mdc-checkbox__native-control"
           id="checkbox-1"/>
    <div class="mdc-checkbox__background">
      <svg class="mdc-checkbox__checkmark"
           viewBox="0 0 24 24">
        <path class="mdc-checkbox__checkmark-path"
              fill="none"
              d="M1.73,12.91 8.1,19.28 22.79,4.59"/>
      </svg>
      <div class="mdc-checkbox__mixedmark"></div>
    </div>
    <div class="mdc-checkbox__ripple"></div>
  </div>
  <label for="checkbox-1">Checkbox 1</label>
</div>

就像这样:
https://material-components.github.io/material-components-web-catalog/#/component/checkbox
如何将复选框背景更改为其他颜色,例如红色?

tvz2xvvm

tvz2xvvm1#

他们使用另一个元素来设置复选框的样式。
该元素是:<div class="mdc-checkbox__background">
选择器是这样的:.mdc-checkbox__native-control:enabled:checked ~ .mdc-checkbox__background, .mdc-checkbox__native-control:enabled:indeterminate ~ .mdc-checkbox__background
因此,您需要做的就是在样式表中添加这一行:

.mdc-checkbox__native-control:enabled:checked ~ .mdc-checkbox__background, .mdc-checkbox__native-control:enabled:indeterminate ~ .mdc-checkbox__background {
  border-color: red;
  background-color: red;
}

提示:使用Firefox或Chrome上的开发工具。右键单击要检查的元素,然后单击inspect选项。
祝你好运,享受代码!

6g8kf2rb

6g8kf2rb2#

您可以使用--mdc-theme-secondary:#ff0000来更改颜色:

<div class="mdc-form-field">
  <div class="mdc-checkbox" style="--mdc-theme-secondary:#ff0000">
    <input type="checkbox"
           class="mdc-checkbox__native-control"
           id="checkbox-1"/>
    <div class="mdc-checkbox__background">
      <svg class="mdc-checkbox__checkmark"
           viewBox="0 0 24 24">
        <path class="mdc-checkbox__checkmark-path"
              fill="none"
              d="M1.73,12.91 8.1,19.28 22.79,4.59"/>
      </svg>
      <div class="mdc-checkbox__mixedmark"></div>
    </div>
    <div class="mdc-checkbox__ripple"></div>
  </div>
  <label for="checkbox-1">Checkbox 1</label>
</div>
g2ieeal7

g2ieeal73#

如果你使用的是SASS,你可以使用Material的Sass mixin之一(文档可以在the same page linked in the question上找到,在底部):

@import '@material/checkbox/mixins';

@include mdc-checkbox-container-colors($marked-fill-color: red);
atmip9wb

atmip9wb4#

对于Google MDC版本11.0.0,您可以用途:

.mdc-checkbox .mdc-checkbox__native-control:enabled:not(:checked):not(:indeterminate):not([data-indeterminate=true]) ~ .mdc-checkbox__background {
  border-color: red;
}
qgelzfjb

qgelzfjb5#

.mdc-checkbox__background {
    border-color: red !important;
}
x4shl7ld

x4shl7ld6#

它有自己的类作为背景,比如如果你检查并看到checkbox的结构,那么在.mdc-checkbox__background类所在的div上,你可以简单地用!important修改以覆盖默认值。

.mdc-checkbox__native-control:enabled:checked~.mdc-checkbox__background, .mdc-checkbox__native-control:enabled:indeterminate~.mdc-checkbox__background {
    border-color: red !important;
    background-color: red !important;
}

相关问题