index.less 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  1. @import "../styles/mixins/index.less";
  2. @import "../styles/themes/index.less";
  3. .@{wux-prefix}-slider {
  4. position: relative;
  5. z-index: 1;
  6. display: flex;
  7. align-items: center;
  8. &__rail-wrap {
  9. position: relative;
  10. flex: 1;
  11. width: 100%;
  12. padding: @slider-rail-margin;
  13. }
  14. &__rail {
  15. width: 100%;
  16. height: @slider-rail-size;
  17. background-color: @slider-rail-bg;
  18. border-radius: @slider-radius;
  19. vertical-align: middle;
  20. position: relative;
  21. }
  22. &__track {
  23. position: absolute;
  24. left: 0;
  25. height: @slider-rail-size;
  26. border-radius: @slider-radius;
  27. background-color: @slider-track-bg;
  28. }
  29. &__handle {
  30. background-color: @slider-handle-bg;
  31. border-radius: 50%;
  32. height: @slider-handle-size;
  33. left: 0;
  34. top: 50%;
  35. position: absolute;
  36. width: @slider-handle-size;
  37. box-shadow: 0 0 4px rgba(0, 0, 0, 0.2);
  38. transform: translate3d(-50%, -50%, 0);
  39. transition: transform .2s;
  40. &::after {
  41. content: attr(data-meta);
  42. color: #fff;
  43. position: absolute;
  44. pointer-events: none;
  45. display: none;
  46. opacity: 0;
  47. visibility: hidden;
  48. z-index: 15;
  49. font-size: @slider-font-size;
  50. line-height: 1.25;
  51. padding: 4px 8px;
  52. border-radius: @slider-radius;
  53. background-color: rgba(0, 0, 0, .7);
  54. white-space: nowrap;
  55. text-align: center;
  56. left: 50%;
  57. bottom: 100%;
  58. margin-bottom: 10px;
  59. transform: translateX(-50%);
  60. }
  61. &--last {
  62. z-index: 2;
  63. }
  64. &--is-touched {
  65. transform: translate3d(-50%, -50%, 0) scale(1.3);
  66. }
  67. }
  68. &--has-tip &__handle--is-touched::after {
  69. display: block;
  70. opacity: 1;
  71. visibility: visible;
  72. }
  73. &__mark {
  74. .square(@slider-rail-size);
  75. position: absolute;
  76. border-radius: 50%;
  77. background-color: @slider-mark-bg;
  78. transform: translateX(-50%);
  79. }
  80. &__min,
  81. &__max {
  82. font-size: @slider-font-size;
  83. color: @text-color-secondary;
  84. }
  85. &__min {
  86. margin-right: @slider-margin;
  87. }
  88. &__max {
  89. margin-left: @slider-margin;
  90. }
  91. &--disabled {
  92. opacity: @disabled-opacity;
  93. }
  94. }