shineout
Version:
Shein 前端组件库
369 lines (368 loc) • 9.65 kB
CSS
.so-slider {
position: relative;
padding: 20px 10px;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
}
.so-slider-rtl {
direction: rtl;
text-align: right;
text-align: start;
}
.so-slider-background {
height: var(--slider-bar-height, 6px);
background: var(--primary-color, #3399ff);
border-radius: var(--slider-border-radius, 3px);
}
.so-slider-inner {
position: absolute;
top: 20px;
right: 10px;
left: 10px;
height: var(--slider-bar-height, 6px);
cursor: pointer;
}
.so-slider-bar {
position: absolute;
z-index: 2;
top: 0;
width: 100%;
height: var(--slider-bar-height, 6px);
}
.so-slider-bar .so-slider-bar-bg {
height: 100%;
background: var(--slider-bar-color, #ced4da);
border-radius: var(--slider-border-radius, 3px);
}
.so-slider-bar .so-slider-indicator {
z-index: 100;
-webkit-box-shadow: var(--slider-indicator-box-shadow, none);
box-shadow: var(--slider-indicator-box-shadow, none);
}
.so-slider-bar .so-slider-result {
position: absolute;
right: 0;
bottom: var(--slider-value-bottom, 14px);
display: none;
padding: 0 4px;
background: #fff;
border-radius: 2px;
font-size: 12px;
-webkit-transform: translate(50%, 0);
-ms-transform: translate(50%, 0);
transform: translate(50%, 0);
}
.so-slider-rtl .so-slider-bar .so-slider-result {
right: auto;
left: 0;
-webkit-transform: translate(-50%, 0);
-ms-transform: translate(-50%, 0);
transform: translate(-50%, 0);
}
.so-slider-bar .so-slider-result:after {
position: absolute;
top: 100%;
left: 50%;
width: 0;
height: 0;
border-width: 3px 3px 0 3px;
border-style: solid;
border-color: #fff transparent transparent transparent;
content: ' ';
-webkit-transform: translate(-50%, 0);
-ms-transform: translate(-50%, 0);
transform: translate(-50%, 0);
}
.so-slider-rtl .so-slider-bar .so-slider-result:after {
right: 50%;
left: auto;
-webkit-transform: translate(50%, 0);
-ms-transform: translate(50%, 0);
transform: translate(50%, 0);
}
.so-slider-bar .so-slider-result.so-slider-show {
display: block;
}
.so-slider:hover .so-slider-result {
display: block;
}
.so-slider-indicator {
position: absolute;
top: 50%;
right: 0;
width: var(--slider-indicator-size, 14px);
height: var(--slider-indicator-size, 14px);
border: solid 2px var(--primary-color, #3399ff);
background: var(--slider-indicator-bg, #fff);
border-radius: var(--slider-indicator-size-half, 7px);
cursor: pointer;
-webkit-transform: translate(50%, -50%);
-ms-transform: translate(50%, -50%);
transform: translate(50%, -50%);
-webkit-transition: background 0.15s ease-in-out;
transition: background 0.15s ease-in-out;
}
.so-slider-rtl .so-slider-indicator {
right: auto;
left: 0;
-webkit-transform: translate(-50%, -50%);
-ms-transform: translate(-50%, -50%);
transform: translate(-50%, -50%);
}
.so-slider-indicator:hover {
background-color: var(--primary-color, #3399ff);
}
.so-slider-disabled .so-slider-background {
background: var(--slider-disabled-bar-bg, #adb5bd);
}
.so-slider-disabled .so-slider-inner {
cursor: not-allowed;
}
.so-slider-disabled .so-slider-indicator {
border: solid 2px var(--slider-disbaled-indicator-border-color, var(--slider-disabled-bar-bg, #adb5bd));
background: var(--slider-disbaled-indicator-bg, var(--slider-indicator-bg, #fff));
cursor: not-allowed;
}
.so-slider-right {
z-index: 10;
right: 0;
}
.so-slider-rtl .so-slider-right {
left: 0;
right: auto;
}
.so-slider-right .so-slider-indicator {
right: auto;
left: 0;
-webkit-transform: translate(-50%, -50%);
-ms-transform: translate(-50%, -50%);
transform: translate(-50%, -50%);
}
.so-slider-rtl .so-slider-right .so-slider-indicator {
right: 0;
left: auto;
-webkit-transform: translate(50%, -50%);
-ms-transform: translate(50%, -50%);
transform: translate(50%, -50%);
}
.so-slider-right .so-slider-result {
right: auto;
left: 0;
-webkit-transform: translate(-50%, 0);
-ms-transform: translate(-50%, 0);
transform: translate(-50%, 0);
}
.so-slider-rtl .so-slider-right .so-slider-result {
right: 0;
left: auto;
-webkit-transform: translate(50%, 0);
-ms-transform: translate(50%, 0);
transform: translate(50%, 0);
}
.so-slider-scale {
display: -webkit-box;
display: -ms-flexbox;
display: flex;
visibility: hidden;
}
.so-slider-scale.so-slider-show {
visibility: visible;
}
.so-slider-scale div {
position: relative;
display: block;
-webkit-box-flex: 1;
-ms-flex: 1;
flex: 1;
padding-top: 12px;
}
.so-slider-scale div:last-child {
-webkit-box-flex: 0;
-ms-flex: 0;
flex: 0;
}
.so-slider-scale div:before {
position: absolute;
top: 5px;
left: -1px;
height: 6px;
border-left: solid 1px #ccc;
content: ' ';
}
.so-slider-rtl .so-slider-scale div:before {
right: -1px;
left: auto;
}
.so-slider-scale div span {
position: absolute;
font-size: 12px;
-webkit-transform: translate(-50%, 0) scale(0.9);
-ms-transform: translate(-50%, 0) scale(0.9);
transform: translate(-50%, 0) scale(0.9);
}
.so-slider-rtl .so-slider-scale div span {
-webkit-transform: translate(50%, 0) scale(0.9);
-ms-transform: translate(50%, 0) scale(0.9);
transform: translate(50%, 0) scale(0.9);
}
.so-slider:hover .so-slider-scale {
visibility: visible;
}
.so-slider-vertical {
display: -webkit-inline-box;
display: -ms-inline-flexbox;
display: inline-flex;
padding: 10px 70px 10px 20px;
}
.so-slider-vertical.so-slider-rtl {
padding: 10px 20px 10px 70px;
}
.so-slider-vertical .so-slider-background {
width: var(--slider-bar-height, 6px);
height: 100%;
}
.so-slider-vertical .so-slider-inner {
top: 10px;
right: auto;
bottom: 10px;
left: 20px;
display: -webkit-inline-box;
display: -ms-inline-flexbox;
display: inline-flex;
width: var(--slider-bar-height, 6px);
height: auto;
}
.so-slider-rtl.so-slider-vertical .so-slider-inner {
right: 20px;
left: auto;
}
.so-slider-vertical .so-slider-result {
right: auto;
bottom: 0;
left: 15px;
padding: 1px 6px;
background: #fff;
-webkit-transform: translate(0, 50%);
-ms-transform: translate(0, 50%);
transform: translate(0, 50%);
}
.so-slider-rtl.so-slider-vertical .so-slider-result {
right: 15px;
left: auto;
-webkit-transform: translate(0, 50%);
-ms-transform: translate(0, 50%);
transform: translate(0, 50%);
}
.so-slider-vertical .so-slider-result:after {
top: 50%;
right: 100%;
left: auto;
border-width: 3px 3px 3px 0;
border-color: transparent #fff transparent transparent;
-webkit-transform: translate(0, -50%);
-ms-transform: translate(0, -50%);
transform: translate(0, -50%);
}
.so-slider-rtl.so-slider-vertical .so-slider-result:after {
right: auto;
left: 100%;
-webkit-transform: translate(0, -50%);
-ms-transform: translate(0, -50%);
transform: translate(0, -50%);
border-width: 3px 0 3px 3px;
}
.so-slider-vertical .so-slider-scale {
display: -webkit-inline-box;
display: -ms-inline-flexbox;
display: inline-flex;
-webkit-box-flex: 1;
-ms-flex: 1;
flex: 1;
-webkit-box-orient: vertical;
-webkit-box-direction: reverse;
-ms-flex-direction: column-reverse;
flex-direction: column-reverse;
}
.so-slider-vertical .so-slider-scale-ltr {
margin-left: 15px;
}
.so-slider-vertical .so-slider-scale-rtl {
margin-right: 15px;
}
.so-slider-vertical .so-slider-scale div {
padding-top: 0;
}
.so-slider-vertical .so-slider-scale div:before {
top: 0px;
left: -10px;
width: 6px;
height: 0px;
border-top: solid 1px #ccc;
border-left: 0;
}
.so-slider-rtl.so-slider-vertical .so-slider-scale div:before {
left: auto;
right: -10px;
}
.so-slider-vertical .so-slider-scale div span {
-webkit-transform: translate(0, -50%) scale(0.9);
-ms-transform: translate(0, -50%) scale(0.9);
transform: translate(0, -50%) scale(0.9);
}
.so-slider-vertical .so-slider-scale div:first-child {
-webkit-box-flex: 0;
-ms-flex: 0;
flex: 0;
}
.so-slider-vertical .so-slider-scale div:last-child {
-webkit-box-flex: 1;
-ms-flex: 1;
flex: 1;
}
.so-slider-bottom {
top: auto;
bottom: 0;
}
.so-slider-bottom .so-slider-indicator {
top: 0;
left: 50%;
-webkit-transform: translate(-50%, -50%);
-ms-transform: translate(-50%, -50%);
transform: translate(-50%, -50%);
}
.so-slider-rtl .so-slider-bottom .so-slider-indicator {
right: 50%;
left: auto;
-webkit-transform: translate(50%, -50%);
-ms-transform: translate(50%, -50%);
transform: translate(50%, -50%);
}
.so-slider-bottom .so-slider-result {
top: 0;
bottom: auto;
-webkit-transform: translate(0, -50%);
-ms-transform: translate(0, -50%);
transform: translate(0, -50%);
}
.so-slider-rtl .so-slider-bottom .so-slider-result {
-webkit-transform: translate(0, -50%);
-ms-transform: translate(0, -50%);
transform: translate(0, -50%);
}
.so-slider-top .so-slider-indicator {
top: auto;
bottom: 0;
left: 50%;
-webkit-transform: translate(-50%, 50%);
-ms-transform: translate(-50%, 50%);
transform: translate(-50%, 50%);
}
.so-slider-rtl .so-slider-top .so-slider-indicator {
right: 50%;
left: auto;
-webkit-transform: translate(50%, 50%);
-ms-transform: translate(50%, 50%);
transform: translate(50%, 50%);
}