电速宝
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185
  1. .verification-popup {
  2. display: none;
  3. position: fixed;
  4. top: 0;
  5. left: 0;
  6. right: 0;
  7. bottom: 0;
  8. z-index: 9999;
  9. }
  10. /* 显示弹窗 */
  11. .verification-popup.show {
  12. display: block;
  13. }
  14. /* 遮罩层 */
  15. .overlay {
  16. position: absolute;
  17. top: 0;
  18. left: 0;
  19. right: 0;
  20. bottom: 0;
  21. background-color: rgba(0, 0, 0, 0.5);
  22. backdrop-filter: blur(2px);
  23. animation: fadeIn 0.3s ease;
  24. }
  25. /* 弹窗内容 */
  26. .popup-content {
  27. position: absolute;
  28. top: 40%;
  29. left: 50%;
  30. transform: translate(-50%, -50%);
  31. width: 90%;
  32. max-width: 400px;
  33. background-color: #fff;
  34. border-radius: 16px;
  35. box-shadow: 0 10px 30px rgba(0, 0, 0, 0.15);
  36. overflow: hidden;
  37. animation: scaleIn 0.3s ease;
  38. }
  39. /* 标题区域 */
  40. .popup-header {
  41. display: flex;
  42. justify-content: center;
  43. align-items: center;
  44. padding: 20px 24px 16px;
  45. position: relative;
  46. }
  47. .title {
  48. font-size: 18px;
  49. font-weight: 600;
  50. color: #1a1a1a;
  51. }
  52. .close-btn {
  53. position: absolute;
  54. right: 24px;
  55. top: 50%;
  56. transform: translateY(-50%);
  57. width: 32px;
  58. height: 32px;
  59. display: flex;
  60. align-items: center;
  61. justify-content: center;
  62. border-radius: 50%;
  63. background-color: #f5f5f5;
  64. }
  65. /* 提示信息 */
  66. .message {
  67. text-align: center;
  68. font-size: 14px;
  69. color: #666;
  70. padding: 0 24px 20px;
  71. }
  72. /* 验证码输入框容器 */
  73. .code-input-container {
  74. display: flex;
  75. justify-content: center;
  76. gap: 10px;
  77. padding: 0 24px 24px;
  78. position: relative;
  79. }
  80. /* 单个验证码输入框 */
  81. .code-input {
  82. width: 50px;
  83. height: 50px;
  84. border-radius: 8px;
  85. border: 1px solid #ddd;
  86. display: flex;
  87. align-items: center;
  88. justify-content: center;
  89. font-size: 24px;
  90. font-weight: 600;
  91. color: #1a1a1a;
  92. transition: all 0.2s ease;
  93. }
  94. /* 激活状态 */
  95. .code-input.active {
  96. border-color: #07c160;
  97. box-shadow: 0 0 0 2px rgba(7, 193, 96, 0.2);
  98. }
  99. /* 已填充状态 */
  100. .code-input.filled {
  101. border-color: #eee;
  102. background-color: #fafafa;
  103. }
  104. /* 实际输入框(隐藏) */
  105. .real-input {
  106. position: absolute;
  107. width: 1px;
  108. height: 1px;
  109. opacity: 0;
  110. pointer-events: none;
  111. }
  112. /* 操作区域 */
  113. .operation-area {
  114. padding: 0 24px 24px;
  115. }
  116. /* 确认按钮 */
  117. .confirm-btn {
  118. width: 100%;
  119. height: 48px;
  120. line-height: 48px;
  121. background-color: #07c160;
  122. color: #fff;
  123. font-size: 16px;
  124. font-weight: 500;
  125. border-radius: 24px;
  126. margin-bottom: 16px;
  127. display: flex;
  128. align-items: center;
  129. justify-content: center;
  130. }
  131. .confirm-btn::after {
  132. border: none;
  133. }
  134. .confirm-btn:disabled {
  135. background-color: #e5e5e5;
  136. color: #999;
  137. }
  138. /* 重新发送区域 */
  139. .resend-container {
  140. display: flex;
  141. justify-content: center;
  142. align-items: center;
  143. gap: 6px;
  144. font-size: 14px;
  145. color: #666;
  146. }
  147. /* 重新发送按钮 */
  148. .resend-btn {
  149. color: #07c160;
  150. font-weight: 500;
  151. }
  152. .resend-btn:not(.active) {
  153. color: #999;
  154. pointer-events: none;
  155. }
  156. /* 动画效果 */
  157. @keyframes fadeIn {
  158. from { opacity: 0; }
  159. to { opacity: 1; }
  160. }
  161. @keyframes scaleIn {
  162. from { transform: translate(-50%, -50%) scale(0.9); opacity: 0; }
  163. to { transform: translate(-50%, -50%) scale(1); opacity: 1; }
  164. }