pager.scss 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277
  1. /**Variable**/
  2. @import './helpers/mixin.scss';
  3. /*pager*/
  4. .vxe-pager {
  5. position: relative;
  6. display: flex;
  7. align-items: center;
  8. color: $vxe-font-color;
  9. font-family: $vxe-font-family;
  10. text-align: right;
  11. background-color: $vxe-pager-background-color;
  12. &.is--hidden {
  13. display: none;
  14. }
  15. &.align--left {
  16. text-align: left;
  17. }
  18. &.align--center {
  19. text-align: center;
  20. }
  21. &.is--loading {
  22. &:after {
  23. content: "";
  24. position: absolute;
  25. top: 0;
  26. left: 0;
  27. width: 100%;
  28. height: 100%;
  29. z-index: $vxe-loading-z-index;
  30. user-select: none;
  31. background-color: $vxe-loading-background-color;
  32. }
  33. }
  34. .vxe-pager--prev-btn,
  35. .vxe-pager--next-btn,
  36. .vxe-pager--num-btn,
  37. .vxe-pager--jump-prev,
  38. .vxe-pager--jump-next {
  39. border: 1px solid transparent;
  40. }
  41. &.is--border,
  42. &.is--perfect {
  43. &:not(.is--background) {
  44. .vxe-pager--prev-btn,
  45. .vxe-pager--next-btn,
  46. .vxe-pager--num-btn,
  47. .vxe-pager--jump-prev,
  48. .vxe-pager--jump-next {
  49. border-color: $vxe-input-border-color;
  50. }
  51. }
  52. }
  53. &.is--background,
  54. &.is--perfect {
  55. .vxe-pager--prev-btn,
  56. .vxe-pager--next-btn {
  57. background-color: #f4f4f5;
  58. }
  59. .vxe-pager--jump-prev,
  60. .vxe-pager--num-btn,
  61. .vxe-pager--jump-next {
  62. background-color: #f4f4f5;
  63. &:not(.is--disabled) {
  64. &:hover {
  65. color: $vxe-primary-color;
  66. }
  67. &.is--active {
  68. color: #fff;
  69. background-color: $vxe-primary-color;
  70. &:hover {
  71. background-color: lighten($vxe-primary-color, 6%);
  72. }
  73. &:active {
  74. background-color: darken($vxe-primary-color, 3%);
  75. }
  76. }
  77. }
  78. }
  79. }
  80. &.is--perfect {
  81. border: 1px solid $vxe-table-border-color;
  82. border-top-width: 0;
  83. background-color: $vxe-table-header-background-color;
  84. .vxe-pager--prev-btn,
  85. .vxe-pager--next-btn,
  86. .vxe-pager--jump-prev,
  87. .vxe-pager--num-btn,
  88. .vxe-pager--jump-next {
  89. background-color: #fff;
  90. }
  91. }
  92. &.is--border {
  93. .vxe-pager--num-btn {
  94. &.is--active {
  95. border-color: $vxe-primary-color;
  96. }
  97. }
  98. }
  99. .vxe-pager--wrapper {
  100. flex-grow: 1;
  101. }
  102. .vxe-pager--jump-icon,
  103. .vxe-pager--btn-icon {
  104. position: absolute;
  105. top: 50%;
  106. left: 50%;
  107. transform: translate(-50%, -50%);
  108. }
  109. .vxe-pager--left-wrapper,
  110. .vxe-pager--right-wrapper,
  111. .vxe-pager--total,
  112. .vxe-pager--prev-btn,
  113. .vxe-pager--next-btn,
  114. .vxe-pager--jump,
  115. .vxe-pager--jump-prev,
  116. .vxe-pager--jump-next,
  117. .vxe-pager--count,
  118. .vxe-pager--sizes {
  119. margin: 0 0.4em;
  120. vertical-align: middle;
  121. display: inline-block;
  122. }
  123. .vxe-pager--prev-btn,
  124. .vxe-pager--jump-prev,
  125. .vxe-pager--num-btn,
  126. .vxe-pager--jump-next,
  127. .vxe-pager--next-btn {
  128. position: relative;
  129. cursor: pointer;
  130. }
  131. .vxe-pager--left-wrapper,
  132. .vxe-pager--right-wrapper,
  133. .vxe-pager--count,
  134. .vxe-pager--prev-btn,
  135. .vxe-pager--next-btn,
  136. .vxe-pager--jump-prev,
  137. .vxe-pager--num-btn,
  138. .vxe-pager--jump-next {
  139. height: 2.15em;
  140. line-height: 2em;
  141. display: inline-block;
  142. }
  143. .vxe-pager--jump .vxe-pager--goto,
  144. .vxe-pager--sizes > .vxe-input {
  145. height: 2.15em;
  146. }
  147. .vxe-pager--sizes > .vxe-select--panel .vxe-select-option {
  148. text-align: center;
  149. }
  150. .vxe-pager--jump-prev,
  151. .vxe-pager--prev-btn,
  152. .vxe-pager--next-btn,
  153. .vxe-pager--jump-next,
  154. .vxe-pager--num-btn,
  155. .vxe-pager--count {
  156. min-width: 2.15em;
  157. }
  158. .vxe-pager--btn-wrapper {
  159. list-style-type: none;
  160. padding: 0;
  161. margin: 0;
  162. display: inline-block;
  163. text-align: center;
  164. .vxe-pager--jump-prev,
  165. .vxe-pager--jump-next {
  166. &:hover {
  167. .vxe-pager--jump-more-icon {
  168. display: none;
  169. }
  170. .vxe-pager--jump-icon {
  171. display: inline-block;
  172. }
  173. }
  174. }
  175. .vxe-pager--jump-icon {
  176. display: none;
  177. }
  178. }
  179. .vxe-pager--jump-prev,
  180. .vxe-pager--prev-btn,
  181. .vxe-pager--next-btn,
  182. .vxe-pager--jump-next,
  183. .vxe-pager--num-btn {
  184. text-align: center;
  185. border-radius: $vxe-border-radius;
  186. margin: 0 0.25em;
  187. user-select: none;
  188. background-color: $vxe-pager-background-color;
  189. &:not(.is--disabled) {
  190. &:hover {
  191. color: lighten($vxe-primary-color, 6%);
  192. }
  193. &.is--active,
  194. &:focus {
  195. color: $vxe-primary-color;
  196. }
  197. &:active {
  198. color: darken($vxe-primary-color, 3%);
  199. }
  200. }
  201. &.is--disabled {
  202. cursor: no-drop;
  203. color: $vxe-disabled-color;
  204. &:hover {
  205. color: $vxe-disabled-color;
  206. }
  207. }
  208. }
  209. .vxe-pager--num-btn {
  210. vertical-align: middle;
  211. &.is--active {
  212. font-weight: 700;
  213. }
  214. }
  215. .vxe-pager--sizes {
  216. width: 7em;
  217. text-align: center;
  218. cursor: pointer;
  219. & .vxe-input--inner {
  220. text-align: center;
  221. }
  222. }
  223. .vxe-pager--count {
  224. text-align: center;
  225. & > span {
  226. vertical-align: middle;
  227. }
  228. .vxe-pager--separator {
  229. margin-right: 0.2em;
  230. &:before {
  231. content: "/";
  232. }
  233. }
  234. }
  235. .vxe-pager--jump .vxe-pager--goto {
  236. border-radius: $vxe-border-radius;
  237. border: 1px solid $vxe-input-border-color;
  238. color: $vxe-font-color;
  239. transition: border .2s ease-in-out;
  240. padding: 0 0.4em;
  241. background-color: $vxe-input-background-color;
  242. &:focus {
  243. border: 1px solid $vxe-primary-color;
  244. outline: 0;
  245. }
  246. }
  247. .vxe-pager--jump {
  248. .vxe-pager--goto-text {
  249. margin-right: 0.25em;
  250. }
  251. .vxe-pager--classifier-text {
  252. margin-left: 0.25em;
  253. }
  254. .vxe-pager--goto {
  255. width: 3.2em;
  256. text-align: center;
  257. }
  258. }
  259. }
  260. .vxe-pager {
  261. font-size: $vxe-font-size;
  262. height: $vxe-table-row-height-default;
  263. &.size--medium {
  264. font-size: $vxe-font-size-medium;
  265. height: $vxe-table-row-height-medium;
  266. }
  267. &.size--small {
  268. font-size: $vxe-font-size-small;
  269. height: $vxe-table-row-height-small;
  270. }
  271. &.size--mini {
  272. font-size: $vxe-font-size-mini;
  273. height: $vxe-table-row-height-mini;
  274. }
  275. }