index-pure.less 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294
  1. @import '../../style/themes/index';
  2. @import '../../style/mixins/index';
  3. @carousel-prefix-cls: ~'@{ant-prefix}-carousel';
  4. .@{carousel-prefix-cls} {
  5. .reset-component();
  6. .slick-slider {
  7. position: relative;
  8. display: block;
  9. box-sizing: border-box;
  10. touch-action: pan-y;
  11. -webkit-touch-callout: none;
  12. -webkit-tap-highlight-color: transparent;
  13. }
  14. .slick-list {
  15. position: relative;
  16. display: block;
  17. margin: 0;
  18. padding: 0;
  19. overflow: hidden;
  20. &:focus {
  21. outline: none;
  22. }
  23. &.dragging {
  24. cursor: pointer;
  25. }
  26. .slick-slide {
  27. pointer-events: none;
  28. // https://github.com/ant-design/ant-design/issues/23294
  29. input.@{ant-prefix}-radio-input,
  30. input.@{ant-prefix}-checkbox-input {
  31. visibility: hidden;
  32. }
  33. &.slick-active {
  34. pointer-events: auto;
  35. input.@{ant-prefix}-radio-input,
  36. input.@{ant-prefix}-checkbox-input {
  37. visibility: visible;
  38. }
  39. }
  40. // fix Carousel content height not match parent node
  41. // when children is empty node
  42. // https://github.com/ant-design/ant-design/issues/25878
  43. > div > div {
  44. vertical-align: bottom;
  45. }
  46. }
  47. }
  48. .slick-slider .slick-track,
  49. .slick-slider .slick-list {
  50. transform: translate3d(0, 0, 0);
  51. touch-action: pan-y;
  52. }
  53. .slick-track {
  54. position: relative;
  55. top: 0;
  56. left: 0;
  57. display: block;
  58. &::before,
  59. &::after {
  60. display: table;
  61. content: '';
  62. }
  63. &::after {
  64. clear: both;
  65. }
  66. .slick-loading & {
  67. visibility: hidden;
  68. }
  69. }
  70. .slick-slide {
  71. display: none;
  72. float: left;
  73. height: 100%;
  74. min-height: 1px;
  75. img {
  76. display: block;
  77. }
  78. &.slick-loading img {
  79. display: none;
  80. }
  81. &.dragging img {
  82. pointer-events: none;
  83. }
  84. }
  85. .slick-initialized .slick-slide {
  86. display: block;
  87. }
  88. .slick-loading .slick-slide {
  89. visibility: hidden;
  90. }
  91. .slick-vertical .slick-slide {
  92. display: block;
  93. height: auto;
  94. }
  95. .slick-arrow.slick-hidden {
  96. display: none;
  97. }
  98. // Arrows
  99. .slick-prev,
  100. .slick-next {
  101. position: absolute;
  102. top: 50%;
  103. display: block;
  104. width: 20px;
  105. height: 20px;
  106. margin-top: -10px;
  107. padding: 0;
  108. color: transparent;
  109. font-size: 0;
  110. line-height: 0;
  111. background: transparent;
  112. border: 0;
  113. outline: none;
  114. cursor: pointer;
  115. &:hover,
  116. &:focus {
  117. color: transparent;
  118. background: transparent;
  119. outline: none;
  120. &::before {
  121. opacity: 1;
  122. }
  123. }
  124. &.slick-disabled::before {
  125. opacity: 0.25;
  126. }
  127. }
  128. .slick-prev {
  129. left: -25px;
  130. &::before {
  131. content: '←';
  132. }
  133. }
  134. .slick-next {
  135. right: -25px;
  136. &::before {
  137. content: '→';
  138. }
  139. }
  140. // Dots
  141. .slick-dots {
  142. position: absolute;
  143. right: 0;
  144. bottom: 0;
  145. left: 0;
  146. z-index: 15;
  147. display: flex !important;
  148. justify-content: center;
  149. margin-right: 15%;
  150. margin-left: 15%;
  151. padding-left: 0;
  152. list-style: none;
  153. &-bottom {
  154. bottom: 12px;
  155. }
  156. &-top {
  157. top: 12px;
  158. bottom: auto;
  159. }
  160. li {
  161. position: relative;
  162. display: inline-block;
  163. flex: 0 1 auto;
  164. box-sizing: content-box;
  165. width: @carousel-dot-width;
  166. height: @carousel-dot-height;
  167. margin: 0 2px;
  168. margin-right: 3px;
  169. margin-left: 3px;
  170. padding: 0;
  171. text-align: center;
  172. text-indent: -999px;
  173. vertical-align: top;
  174. transition: all 0.5s;
  175. button {
  176. display: block;
  177. width: 100%;
  178. height: @carousel-dot-height;
  179. padding: 0;
  180. color: transparent;
  181. font-size: 0;
  182. background: @component-background;
  183. border: 0;
  184. border-radius: 1px;
  185. outline: none;
  186. cursor: pointer;
  187. opacity: 0.3;
  188. transition: all 0.5s;
  189. &:hover,
  190. &:focus {
  191. opacity: 0.75;
  192. }
  193. }
  194. &.slick-active {
  195. width: @carousel-dot-active-width;
  196. & button {
  197. background: @component-background;
  198. opacity: 1;
  199. }
  200. &:hover,
  201. &:focus {
  202. opacity: 1;
  203. }
  204. }
  205. }
  206. }
  207. }
  208. .@{ant-prefix}-carousel-vertical {
  209. .slick-dots {
  210. top: 50%;
  211. bottom: auto;
  212. flex-direction: column;
  213. width: @carousel-dot-height;
  214. height: auto;
  215. margin: 0;
  216. transform: translateY(-50%);
  217. &-left {
  218. right: auto;
  219. left: 12px;
  220. }
  221. &-right {
  222. right: 12px;
  223. left: auto;
  224. }
  225. li {
  226. width: @carousel-dot-height;
  227. height: @carousel-dot-width;
  228. margin: 4px 2px;
  229. vertical-align: baseline;
  230. button {
  231. width: @carousel-dot-height;
  232. height: @carousel-dot-width;
  233. }
  234. &.slick-active {
  235. width: @carousel-dot-height;
  236. height: @carousel-dot-active-width;
  237. button {
  238. width: @carousel-dot-height;
  239. height: @carousel-dot-active-width;
  240. }
  241. }
  242. }
  243. }
  244. }
  245. @import './rtl';