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

389 lines
6.3 KiB

  1. .page-container {
  2. background-color: #f5f7fa;
  3. min-height: 100vh;
  4. }
  5. /* 搜索区域 */
  6. .search-container {
  7. background: linear-gradient(135deg, #4A90E2 0%, #6AC5F8 100%);
  8. padding: 20rpx 32rpx 32rpx;
  9. }
  10. .search-box {
  11. background-color: white;
  12. border-radius: 50rpx;
  13. padding: 20rpx 32rpx;
  14. display: flex;
  15. align-items: center;
  16. box-shadow: 0 4rpx 16rpx rgba(74, 144, 226, 0.2);
  17. }
  18. .search-icon {
  19. width: 32rpx;
  20. height: 32rpx;
  21. margin-right: 16rpx;
  22. }
  23. .search-input {
  24. width: 95%;
  25. font-size: 28rpx;
  26. color: #333;
  27. }
  28. .placeholder {
  29. color: #999;
  30. font-size: 28rpx;
  31. }
  32. .clear-btn {
  33. width: 32rpx;
  34. height: 32rpx;
  35. display: flex;
  36. align-items: center;
  37. justify-content: center;
  38. }
  39. .clear-icon {
  40. width: 30rpx;
  41. height: 30rpx;
  42. filter: brightness(0) contrast(100%);
  43. }
  44. /* 分类区域 */
  45. .category-container {
  46. background-color: white;
  47. padding: 20rpx 32rpx;
  48. white-space: nowrap;
  49. box-sizing: border-box;
  50. }
  51. .category-list {
  52. display: inline-flex;
  53. }
  54. .category-item {
  55. display: inline-flex;
  56. align-items: center;
  57. padding: 12rpx 28rpx;
  58. margin-right: 20rpx;
  59. border-radius: 40rpx;
  60. background-color: #f5f7fa;
  61. border: 2rpx solid #f5f7fa;
  62. transition: all 0.3s ease;
  63. }
  64. .category-item.active {
  65. background-color: #E8F3FF;
  66. border-color: #4A90E2;
  67. }
  68. .category-text {
  69. font-size: 26rpx;
  70. color: #666;
  71. font-weight: 400;
  72. }
  73. .category-item.active .category-text {
  74. color: #4A90E2;
  75. font-weight: 500;
  76. }
  77. .category-item.active .category-count {
  78. background-color: rgba(74, 144, 226, 0.1);
  79. color: #4A90E2;
  80. }
  81. /* 经验列表 */
  82. .experience-list {
  83. padding: 32rpx;
  84. }
  85. .experience-item {
  86. background-color: white;
  87. border-radius: 20rpx;
  88. padding: 32rpx;
  89. margin-bottom: 24rpx;
  90. box-shadow: 0 4rpx 20rpx rgba(0, 0, 0, 0.04);
  91. transition: all 0.3s ease;
  92. }
  93. .experience-item:active {
  94. transform: translateY(-2rpx);
  95. box-shadow: 0 6rpx 24rpx rgba(0, 0, 0, 0.08);
  96. }
  97. .tag{
  98. display: flex;
  99. align-items: center;
  100. justify-content: space-between;
  101. padding-bottom: 20rpx;
  102. }
  103. .item-category-tag {
  104. display: inline-block;
  105. background-color: #E8F3FF;
  106. padding: 6rpx 16rpx;
  107. border-radius: 20rpx;
  108. }
  109. .tag-text {
  110. font-size: 22rpx;
  111. color: #4A90E2;
  112. font-weight: 500;
  113. }
  114. .item-title {
  115. font-size: 34rpx;
  116. color: #1a1a1a;
  117. font-weight: 600;
  118. line-height: 1.4;
  119. margin-bottom: 16rpx;
  120. }
  121. .item-summary {
  122. font-size: 28rpx;
  123. color: #666;
  124. line-height: 1.5;
  125. margin-bottom: 24rpx;
  126. display: -webkit-box;
  127. -webkit-box-orient: vertical;
  128. -webkit-line-clamp: 2;
  129. overflow: hidden;
  130. }
  131. .item-footer {
  132. display: flex;
  133. align-items: center;
  134. justify-content: space-between;
  135. padding-top: 20rpx;
  136. border-top: 1rpx solid #f0f0f0;
  137. }
  138. .author-info {
  139. display: flex;
  140. align-items: center;
  141. flex: 1;
  142. }
  143. .author-avatar {
  144. width: 48rpx;
  145. height: 48rpx;
  146. border-radius: 50%;
  147. margin-right: 12rpx;
  148. }
  149. .author-name {
  150. font-size: 24rpx;
  151. color: #999;
  152. }
  153. .view-info {
  154. display: flex;
  155. align-items: center;
  156. margin-right: 32rpx;
  157. }
  158. .view-icon {
  159. width: 28rpx;
  160. height: 28rpx;
  161. margin-right: 8rpx;
  162. opacity: 0.6;
  163. }
  164. .view-count {
  165. font-size: 24rpx;
  166. color: #999;
  167. }
  168. .publish-time {
  169. font-size: 24rpx;
  170. color: #ccc;
  171. flex-shrink: 0;
  172. }
  173. /* 新增视频气泡按钮 */
  174. .create-btn-container {
  175. position: fixed;
  176. bottom: 40rpx;
  177. right: 15rpx;
  178. z-index: 100;
  179. }
  180. .create-btn {
  181. width: 120rpx;
  182. height: 120rpx;
  183. background: linear-gradient(135deg, #6D9EFF 0%, #4A7CFF 100%);
  184. border-radius: 50%;
  185. display: flex;
  186. flex-direction: column;
  187. align-items: center;
  188. justify-content: center;
  189. box-shadow: 0 8rpx 32rpx rgba(74, 144, 226, 0.3);
  190. transition: all 0.3s cubic-bezier(0.2, 0, 0.2, 1);
  191. position: relative;
  192. overflow: hidden;
  193. }
  194. .create-btn::after {
  195. content: '';
  196. position: absolute;
  197. top: 0;
  198. left: 0;
  199. right: 0;
  200. bottom: 0;
  201. background: rgba(255, 255, 255, 0.1);
  202. opacity: 0;
  203. transition: opacity 0.2s ease;
  204. }
  205. .create-btn:active {
  206. transform: scale(0.95);
  207. box-shadow: 0 4rpx 20rpx rgba(74, 144, 226, 0.4);
  208. }
  209. .create-btn:active::after {
  210. opacity: 1;
  211. }
  212. .btn-icon {
  213. width: 40rpx;
  214. height: 40rpx;
  215. margin-bottom: 10rpx;
  216. }
  217. .btn-text {
  218. font-size: 26rpx;
  219. color: white;
  220. font-weight: 600;
  221. letter-spacing: 0.5rpx;
  222. }
  223. /* 空状态 */
  224. .empty-state {
  225. display: flex;
  226. flex-direction: column;
  227. align-items: center;
  228. justify-content: center;
  229. padding: 100rpx 0;
  230. }
  231. .empty-text {
  232. font-size: 32rpx;
  233. color: #999;
  234. margin-bottom: 16rpx;
  235. }
  236. .empty-hint {
  237. font-size: 26rpx;
  238. color: #ccc;
  239. }
  240. .experience-scroll {
  241. box-sizing: border-box;
  242. }
  243. /* 加载更多样式 */
  244. .load-more {
  245. text-align: center;
  246. padding: 40rpx 0;
  247. color: #4A90E2;
  248. font-size: 28rpx;
  249. }
  250. .load-more-text {
  251. padding: 16rpx 32rpx;
  252. background-color: #E8F3FF;
  253. border-radius: 24rpx;
  254. display: inline-block;
  255. }
  256. .loading {
  257. text-align: center;
  258. padding: 40rpx 0;
  259. color: #999;
  260. font-size: 28rpx;
  261. }
  262. .loading-text {
  263. display: inline-block;
  264. padding: 16rpx 32rpx;
  265. }
  266. .no-more {
  267. text-align: center;
  268. padding: 40rpx 0;
  269. color: #ccc;
  270. font-size: 26rpx;
  271. }
  272. .no-more-text {
  273. display: inline-block;
  274. padding: 16rpx 32rpx;
  275. }
  276. /* 优化空状态样式 */
  277. .empty-state {
  278. display: flex;
  279. flex-direction: column;
  280. align-items: center;
  281. justify-content: center;
  282. padding: 120rpx 0;
  283. text-align: center;
  284. }
  285. .empty-text {
  286. font-size: 32rpx;
  287. color: #999;
  288. margin-bottom: 20rpx;
  289. font-weight: 500;
  290. }
  291. .empty-hint {
  292. font-size: 28rpx;
  293. color: #ccc;
  294. }
  295. /* 优化列表项样式 */
  296. .experience-item {
  297. position: relative;
  298. overflow: hidden;
  299. }
  300. .experience-item:last-child {
  301. margin-bottom: 0;
  302. }
  303. /* 响应式调整 */
  304. @media (max-width: 375px) {
  305. .load-more,
  306. .loading,
  307. .no-more {
  308. padding: 30rpx 0;
  309. }
  310. .empty-state {
  311. padding: 80rpx 0;
  312. }
  313. }
  314. /* 响应式调整 */
  315. @media (max-width: 375px) {
  316. .search-container {
  317. padding: 16rpx 24rpx 24rpx;
  318. }
  319. .experience-list {
  320. padding: 24rpx;
  321. }
  322. .experience-item {
  323. padding: 24rpx;
  324. }
  325. }