MDC – Checkbox
前言
Checkbox 不是搭配 TextField 使用, 而是搭配 FormField. 所以独立一篇来写.
参考
Docs – Selection controls: checkboxes
效果
Step by Step
install
yarn add @material/checkbox
yarn add @material/form-field
HTML
<div class="mdc-form-field"> <div class="mdc-checkbox"> <input type="checkbox" class="mdc-checkbox__native-control" id="rememberMe" /> <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 class="mdc-checkbox__focus-ring"></div> </div> <label for="rememberMe">Remember me</label> </div>
CSS Style
@use '@material/theme' with (
$secondary: red
);
@use '@material/checkbox';
@use '@material/form-field';
@include checkbox.core-styles;
@include form-field.core-styles;
注: 它的颜色是 secondary 哦.
JavaScript
import { MDCFormField } from '@material/form-field'; import { MDCCheckbox } from '@material/checkbox'; const checkbox = new MDCCheckbox(document.querySelector('.mdc-checkbox')!); const formField = new MDCFormField(document.querySelector('.mdc-form-field')!); formField.input = checkbox;
new 两个实例, 然后让它们 connect 起来. Angular 也是这个概念. 只不过 Angular 是框架, 替我们封装了实现细节. 比如上面这个 connect 在 Angular 只需要在模板 #checkbox 然后 [input]="checkbox" 就表达好了.