与牧同行-兽医端小程序
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.

283 lines
5.4 KiB

  1. .carousel-detail-container {
  2. min-height: 100vh;
  3. background-color: var(--bg-color, #F8F9FA);
  4. position: relative;
  5. padding-bottom: 40rpx;
  6. }
  7. /* 沉浸式头部 */
  8. .hero-section {
  9. position: relative;
  10. width: 100%;
  11. height: 600rpx;
  12. overflow: hidden;
  13. }
  14. .hero-image {
  15. width: 100%;
  16. height: 100%;
  17. filter: brightness(0.9);
  18. transition: transform 0.3s ease;
  19. }
  20. .hero-image:active {
  21. transform: scale(1.02);
  22. }
  23. .hero-overlay {
  24. position: absolute;
  25. bottom: 0;
  26. left: 0;
  27. right: 0;
  28. height: 200rpx;
  29. pointer-events: none;
  30. }
  31. /* 毛玻璃返回按钮 */
  32. .nav-back {
  33. position: absolute;
  34. top: 60rpx;
  35. left: 30rpx;
  36. width: 72rpx;
  37. height: 72rpx;
  38. border-radius: 36rpx;
  39. display: flex;
  40. align-items: center;
  41. justify-content: center;
  42. font-size: 40rpx;
  43. color: #333;
  44. z-index: 10;
  45. }
  46. .glass {
  47. background: rgba(255, 255, 255, 0.25);
  48. backdrop-filter: blur(10px);
  49. -webkit-backdrop-filter: blur(10px);
  50. border: 1rpx solid rgba(255, 255, 255, 0.3);
  51. box-shadow: 0 4rpx 20rpx rgba(0, 0, 0, 0.1);
  52. }
  53. .page-title {
  54. position: absolute;
  55. top: 60rpx;
  56. right: 30rpx;
  57. padding: 16rpx 32rpx;
  58. border-radius: 40rpx;
  59. font-size: 26rpx;
  60. color: #333;
  61. font-weight: 500;
  62. z-index: 10;
  63. letter-spacing: 1rpx;
  64. }
  65. /* 主要内容卡片 */
  66. .content-card {
  67. margin: -100rpx 30rpx 0;
  68. background: rgba(255, 255, 255, 0.95);
  69. backdrop-filter: blur(20px);
  70. -webkit-backdrop-filter: blur(20px);
  71. border-radius: 48rpx;
  72. padding: 48rpx 32rpx;
  73. box-shadow: 0 30rpx 60rpx rgba(0, 0, 0, 0.1),
  74. 0 10rpx 30rpx rgba(0, 0, 0, 0.05);
  75. position: relative;
  76. z-index: 5;
  77. border: 1rpx solid rgba(255, 255, 255, 0.5);
  78. opacity: 0;
  79. transform: translateY(50rpx);
  80. animation: cardFloat 0.6s ease-out forwards;
  81. }
  82. @keyframes cardFloat {
  83. to {
  84. opacity: 1;
  85. transform: translateY(0);
  86. }
  87. }
  88. /* 标题区域 */
  89. .title-section {
  90. margin-bottom: 40rpx;
  91. }
  92. .main-title {
  93. display: block;
  94. font-size: 56rpx;
  95. font-weight: 700;
  96. line-height: 1.3;
  97. margin-bottom: 16rpx;
  98. letter-spacing: -0.5rpx;
  99. }
  100. .sub-title {
  101. display: block;
  102. font-size: 30rpx;
  103. color: #666;
  104. line-height: 1.5;
  105. font-weight: 400;
  106. opacity: 0.8;
  107. }
  108. /* 装饰分割线 */
  109. .divider {
  110. display: flex;
  111. align-items: center;
  112. margin: 30rpx 0 40rpx;
  113. }
  114. .divider-line {
  115. flex: 1;
  116. height: 2rpx;
  117. opacity: 0.2;
  118. }
  119. .divider-dot {
  120. width: 8rpx;
  121. height: 8rpx;
  122. border-radius: 4rpx;
  123. margin: 0 20rpx;
  124. opacity: 0.5;
  125. }
  126. /* 信息网格 */
  127. .info-grid {
  128. display: grid;
  129. grid-template-columns: repeat(2, 1fr);
  130. gap: 24rpx;
  131. margin-bottom: 40rpx;
  132. }
  133. .info-item {
  134. background: rgba(0, 0, 0, 0.02);
  135. border-radius: 28rpx;
  136. padding: 28rpx 20rpx;
  137. display: flex;
  138. align-items: center;
  139. border: 1rpx solid rgba(0, 0, 0, 0.03);
  140. transition: all 0.3s ease;
  141. }
  142. .info-item:active {
  143. transform: scale(0.98);
  144. background: rgba(0, 0, 0, 0.04);
  145. }
  146. .info-icon {
  147. font-size: 48rpx;
  148. margin-right: 20rpx;
  149. filter: drop-shadow(0 4rpx 8rpx rgba(0, 0, 0, 0.1));
  150. }
  151. .info-content {
  152. flex: 1;
  153. display: flex;
  154. flex-direction: column;
  155. }
  156. .info-label {
  157. font-size: 22rpx;
  158. color: #999;
  159. margin-bottom: 8rpx;
  160. letter-spacing: 0.5rpx;
  161. }
  162. .info-value {
  163. font-size: 28rpx;
  164. font-weight: 600;
  165. color: #333;
  166. word-break: break-all;
  167. }
  168. /* 状态特殊样式 */
  169. .status-item .info-content {
  170. flex-direction: row;
  171. align-items: center;
  172. justify-content: space-between;
  173. }
  174. .status-badge {
  175. display: flex;
  176. align-items: center;
  177. padding: 8rpx 16rpx;
  178. border-radius: 40rpx;
  179. border-width: 1rpx;
  180. border-style: solid;
  181. background-color: rgba(76, 175, 80, 0.1);
  182. }
  183. .status-dot {
  184. width: 16rpx;
  185. height: 16rpx;
  186. border-radius: 8rpx;
  187. margin-right: 8rpx;
  188. animation: pulse 2s infinite;
  189. }
  190. @keyframes pulse {
  191. 0%, 100% { opacity: 1; }
  192. 50% { opacity: 0.6; }
  193. }
  194. .status-text {
  195. font-size: 24rpx;
  196. font-weight: 500;
  197. }
  198. /* 备注区域 */
  199. .remark-section {
  200. background: rgba(0, 0, 0, 0.02);
  201. border-radius: 28rpx;
  202. padding: 28rpx;
  203. margin-bottom: 40rpx;
  204. display: flex;
  205. border-left: 8rpx solid var(--text-color, #2E7D32);
  206. }
  207. .remark-icon {
  208. font-size: 40rpx;
  209. margin-right: 20rpx;
  210. }
  211. .remark-content {
  212. flex: 1;
  213. font-size: 28rpx;
  214. color: #444;
  215. line-height: 1.6;
  216. }
  217. /* 始终有效标识 */
  218. .always-valid {
  219. display: flex;
  220. align-items: center;
  221. justify-content: center;
  222. margin-top: 30rpx;
  223. padding: 20rpx;
  224. background: linear-gradient(135deg, rgba(255, 215, 0, 0.1), rgba(255, 215, 0, 0.05));
  225. border-radius: 40rpx;
  226. border: 1rpx solid rgba(255, 215, 0, 0.3);
  227. }
  228. .valid-icon {
  229. font-size: 32rpx;
  230. margin-right: 12rpx;
  231. animation: starTwinkle 1.5s infinite;
  232. }
  233. @keyframes starTwinkle {
  234. 0%, 100% { opacity: 1; transform: scale(1); }
  235. 50% { opacity: 0.7; transform: scale(1.1); }
  236. }
  237. .valid-text {
  238. font-size: 26rpx;
  239. color: #B8860B;
  240. font-weight: 500;
  241. }
  242. /* 响应式调整 */
  243. @media (min-width: 768px) {
  244. .content-card {
  245. max-width: 700rpx;
  246. margin: -100rpx auto 0;
  247. }
  248. }