vue-easytable
Version:
127 lines (114 loc) • 3.24 kB
text/less
.ve-radio *,
.ve-radio *:before,
.ve-radio *:after {
box-sizing: border-box;
}
.ve-radio {
margin: 0 8px 0 0;
&,
.ve-radio-container {
padding: 0;
color: #000000d9;
font-size: 14px;
line-height: 22px;
list-style: none;
position: relative;
display: inline-block;
white-space: nowrap;
cursor: pointer;
}
// container
.ve-radio-container {
margin: 0;
top: -1px;
line-height: 1;
vertical-align: sub;
outline: none;
// radio input
.ve-radio-input {
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
z-index: 1;
cursor: pointer;
opacity: 0;
}
// radio inner
.ve-radio-inner {
position: relative;
top: 0;
left: 0;
display: block;
width: 16px;
height: 16px;
background-color: #fff;
border: 1px solid #d9d9d9;
border-radius: 100px;
transition: all 0.3s;
&:after {
position: absolute;
top: 3px;
left: 3px;
display: table;
width: 8px;
height: 8px;
background-color: @ve-radio-checked-background-color;
border-top: 0;
border-left: 0;
border-radius: 8px;
transform: scale(0);
opacity: 0;
transition: all 0.3s cubic-bezier(0.78, 0.14, 0.15, 0.86);
content: " ";
}
}
// 选中效果
&.ve-radio-checked {
&:after {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
border: 1px solid @ve-radio-checked-border-color;
border-radius: 50%;
visibility: hidden;
animation-fill-mode: both;
content: "";
}
.ve-radio-inner {
border-color: @ve-radio-checked-border-color;
}
.ve-radio-inner:after {
transform: scale(1);
opacity: 1;
transition: all 0.3s cubic-bezier(0.78, 0.14, 0.15, 0.86);
}
}
// 禁用效果
&.ve-radio-disabled {
.ve-radio-input {
cursor: not-allowed;
}
.ve-radio-inner {
background-color: #f5f5f5;
border-color: #d9d9d9 ;
cursor: not-allowed;
&:after {
background-color: #00000033;
}
}
& + span {
color: rgba(0, 0, 0, 0.25);
cursor: not-allowed;
}
}
}
// label
&-label {
padding: 0 4px;
color: @ve-radio-label-text-color;
}
}