UNPKG

4.18 kBSCSSView Raw
1// 单选框和复选框
2%RadioAndCheckboxSpan {
3 position: relative;
4 user-select: none;
5 cursor: pointer;
6}
7%RadioAndCheckboxIcon {
8 display: none;
9 position: absolute;
10 height: 1em;
11 width: 1em;
12}
13
14%XERadio {
15 @extend %RadioAndCheckboxSpan;
16 .vxe-radio--icon {
17 @extend %RadioAndCheckboxIcon;
18 font-size: $vxe-radio-font-size-default;
19 &:before {
20 content: "";
21 position: absolute;
22 height: 1em;
23 width: 1em;
24 top: 0;
25 left: 0;
26 border: $vxe-radio-border-width solid $vxe-input-border-color;
27 background-color: $vxe-radio-icon-background-color;
28 border-radius: 50%;
29 }
30 }
31 .vxe-radio--unchecked-icon {
32 display: inline-block;
33 }
34 .vxe-radio--checked-icon {
35 &:after {
36 content: "";
37 position: absolute;
38 height: 0.25em;
39 width: 0.25em;
40 top: 0.4em;
41 left: 0.4em;
42 border-radius: 50%;
43 background-color: $vxe-radio-checked-icon-background-color;
44 }
45 }
46 &.is--checked {
47 color: $vxe-primary-color;
48 .vxe-radio--unchecked-icon {
49 display: none;
50 }
51 .vxe-radio--checked-icon {
52 display: inline-block;
53 &:before {
54 border-color: $vxe-primary-color;
55 background-color: $vxe-primary-color;
56 }
57 }
58 }
59 &:not(.is--disabled) {
60 &:hover {
61 .vxe-radio--icon {
62 &:before {
63 border-color: $vxe-primary-color;
64 }
65 }
66 }
67 }
68 &.is--disabled {
69 cursor: not-allowed;
70 color: $vxe-disabled-color;
71 .vxe-radio--icon {
72 &:before {
73 border-color: $vxe-input-disabled-color;
74 background-color: $vxe-input-disabled-background-color;
75 }
76 &:after {
77 background-color: $vxe-primary-disabled-color;
78 }
79 }
80 }
81}
82
83%XECheckbox {
84 @extend %RadioAndCheckboxSpan;
85 .vxe-checkbox--icon {
86 @extend %RadioAndCheckboxIcon;
87 font-size: $vxe-checkbox-font-size-default;
88 &:before {
89 content: "";
90 position: absolute;
91 height: 1em;
92 width: 1em;
93 top: 0;
94 left: 0;
95 background-color: $vxe-checkbox-icon-background-color;
96 border-radius: $vxe-checkbox-border-radius;
97 border: $vxe-checkbox-border-width solid $vxe-input-border-color;
98 }
99 }
100 .vxe-checkbox--unchecked-icon {
101 display: inline-block;
102 }
103 .vxe-checkbox--checked-icon {
104 &:after {
105 content: "";
106 position: absolute;
107 height: $vxe-checkbox-checked-height;
108 width: $vxe-checkbox-checked-width;
109 top: 50%;
110 left: 50%;
111 border: $vxe-checkbox-border-width solid $vxe-checkbox-checked-icon-border-color;
112 border-left: 0;
113 border-top: 0;
114 transform: translate(-50%, -50%) rotate(45deg);
115 }
116 }
117 .vxe-checkbox--indeterminate-icon {
118 &:after {
119 content: "";
120 position: absolute;
121 top: 50%;
122 left: 50%;
123 height: $vxe-checkbox-indeterminate-height;
124 width: $vxe-checkbox-indeterminate-width;
125 background-color: $vxe-checkbox-indeterminate-icon-background-color;
126 transform: translate(-50%, -50%);
127 }
128 }
129 &.is--checked,
130 &.is--indeterminate {
131 color: $vxe-primary-color;
132 .vxe-checkbox--unchecked-icon {
133 display: none;
134 }
135 .vxe-checkbox--icon {
136 &:before {
137 border-color: $vxe-primary-color;
138 background-color: $vxe-primary-color;
139 }
140 }
141 }
142 &.is--checked {
143 .vxe-checkbox--checked-icon {
144 display: inline-block;
145 }
146 }
147 &.is--indeterminate {
148 .vxe-checkbox--indeterminate-icon {
149 display: inline-block;
150 }
151 }
152 &:not(.is--disabled) {
153 &:hover {
154 .vxe-checkbox--icon {
155 &:before {
156 border-color: $vxe-primary-color;
157 }
158 }
159 }
160 }
161 &.is--disabled {
162 cursor: not-allowed;
163 color: $vxe-disabled-color;
164 .vxe-checkbox--icon {
165 &:before {
166 border-color: $vxe-input-disabled-color;
167 background-color: $vxe-input-disabled-background-color;
168 }
169 &:after {
170 border-color: $vxe-primary-disabled-color;
171 }
172 }
173 }
174}