172 lines
3.7 KiB
SCSS
172 lines
3.7 KiB
SCSS
// 单选框和复选框
|
|
%RadioAndCheckboxSpan {
|
|
position: relative;
|
|
user-select: none;
|
|
cursor: pointer;
|
|
}
|
|
%RadioAndCheckboxIcon {
|
|
display: none;
|
|
position: absolute;
|
|
height: 1em;
|
|
width: 1em;
|
|
}
|
|
|
|
%XERadio {
|
|
@extend %RadioAndCheckboxSpan;
|
|
.vxe-radio--icon {
|
|
@extend %RadioAndCheckboxIcon;
|
|
font-size: $vxe-radio-font-size-default;
|
|
&:before {
|
|
content: "";
|
|
position: absolute;
|
|
height: 1em;
|
|
width: 1em;
|
|
top: 0;
|
|
left: 0;
|
|
border: $vxe-radio-border-width solid $vxe-input-border-color;
|
|
background-color: #ffffff;
|
|
border-radius: 50%;
|
|
}
|
|
}
|
|
.vxe-radio--unchecked-icon {
|
|
display: inline-block;
|
|
}
|
|
.vxe-radio--checked-icon {
|
|
&:after {
|
|
content: "";
|
|
position: absolute;
|
|
height: 0.25em;
|
|
width: 0.25em;
|
|
top: 0.4em;
|
|
left: 0.4em;
|
|
border-radius: 50%;
|
|
background-color: #ffffff;
|
|
}
|
|
}
|
|
&.is--checked {
|
|
color: $vxe-primary-color;
|
|
.vxe-radio--unchecked-icon {
|
|
display: none;
|
|
}
|
|
.vxe-radio--checked-icon {
|
|
display: inline-block;
|
|
&:before {
|
|
border-color: $vxe-primary-color;
|
|
background-color: $vxe-primary-color;
|
|
}
|
|
}
|
|
}
|
|
&:not(.is--disabled) {
|
|
&:hover {
|
|
.vxe-radio--icon {
|
|
&:before {
|
|
border-color: $vxe-primary-color;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
&.is--disabled {
|
|
cursor: not-allowed;
|
|
color: $vxe-input-disabled-color;
|
|
.vxe-radio--icon {
|
|
&:before {
|
|
border-color: $vxe-input-disabled-color;
|
|
background-color: $vxe-input-disabled-background-color;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
%XECheckbox {
|
|
@extend %RadioAndCheckboxSpan;
|
|
.vxe-checkbox--icon {
|
|
@extend %RadioAndCheckboxIcon;
|
|
font-size: $vxe-checkbox-font-size-default;
|
|
&:before {
|
|
content: "";
|
|
position: absolute;
|
|
height: 1em;
|
|
width: 1em;
|
|
top: 0;
|
|
left: 0;
|
|
background-color: #ffffff;
|
|
border-radius: $vxe-checkbox-border-radius;
|
|
border: $vxe-checkbox-border-width solid $vxe-input-border-color;
|
|
}
|
|
}
|
|
.vxe-checkbox--unchecked-icon {
|
|
display: inline-block;
|
|
}
|
|
.vxe-checkbox--checked-icon {
|
|
&:after {
|
|
content: "";
|
|
position: absolute;
|
|
height: $vxe-checkbox-checked-height;
|
|
width: $vxe-checkbox-checked-width;
|
|
top: 50%;
|
|
left: 50%;
|
|
border: $vxe-checkbox-border-width solid #fff;
|
|
border-left: 0;
|
|
border-top: 0;
|
|
transform: translate(-50%, -50%) rotate(45deg);
|
|
}
|
|
}
|
|
.vxe-checkbox--indeterminate-icon {
|
|
&:after {
|
|
content: "";
|
|
position: absolute;
|
|
top: 50%;
|
|
left: 50%;
|
|
height: $vxe-checkbox-indeterminate-height;
|
|
width: $vxe-checkbox-indeterminate-width;
|
|
background-color: #fff;
|
|
transform: translate(-50%, -50%);
|
|
}
|
|
}
|
|
&.is--checked,
|
|
&.is--indeterminate {
|
|
color: $vxe-primary-color;
|
|
.vxe-checkbox--unchecked-icon {
|
|
display: none;
|
|
}
|
|
.vxe-checkbox--icon {
|
|
&:before {
|
|
border-color: $vxe-primary-color;
|
|
background-color: $vxe-primary-color;
|
|
}
|
|
}
|
|
}
|
|
&.is--checked {
|
|
.vxe-checkbox--checked-icon {
|
|
display: inline-block;
|
|
}
|
|
}
|
|
&.is--indeterminate {
|
|
.vxe-checkbox--indeterminate-icon {
|
|
display: inline-block;
|
|
}
|
|
}
|
|
&:not(.is--disabled) {
|
|
&:hover {
|
|
.vxe-checkbox--icon {
|
|
&:before {
|
|
border-color: $vxe-primary-color;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
&.is--disabled {
|
|
cursor: not-allowed;
|
|
color: $vxe-input-disabled-color;
|
|
.vxe-checkbox--icon {
|
|
&:before {
|
|
border-color: $vxe-input-disabled-color;
|
|
background-color: $vxe-input-disabled-background-color;
|
|
}
|
|
&:after {
|
|
border-color: $vxe-input-disabled-color;
|
|
}
|
|
}
|
|
}
|
|
}
|