blob: 6a0dae8b4d0283e97f1dc7ac2e627a2d6826b67a [file] [log] [blame]
DREW5b1883e2025-06-07 10:41:32 +08001/* HelpDetail.css - 个性化版本 */
Akane121765b61a72025-05-17 13:52:25 +08002.help-detail-container {
DREW5b1883e2025-06-07 10:41:32 +08003 max-width: 800px;
4 margin: 0 auto;
5 padding: 20px;
6 font-family: 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
Akane121765b61a72025-05-17 13:52:25 +08007}
8
DREW5b1883e2025-06-07 10:41:32 +08009/* 返回按钮 - 渐变风格 */
10.back-button {
11 display: inline-flex;
12 align-items: center;
13 gap: 8px;
14 padding: 8px 16px;
15 background: linear-gradient(135deg, #1e3c72 0%, #2a5298 100%);
16 color: white;
17 border: none;
18 border-radius: 6px;
19 font-weight: 600;
20 cursor: pointer;
21 transition: all 0.3s;
22 margin-bottom: 25px;
23 box-shadow: 0 2px 8px rgba(30, 60, 114, 0.2);
24}
25
26.back-button:hover {
27 transform: translateY(-2px);
28 box-shadow: 0 4px 12px rgba(30, 60, 114, 0.3);
29}
30
31.back-button::before {
32 content: "←";
33}
34
35/* 帖子卡片 - 3D悬浮效果 */
36.help-post {
37 background: white;
38 border-radius: 12px;
39 padding: 25px;
40 margin-bottom: 30px;
41 box-shadow: 0 8px 20px rgba(0, 0, 0, 0.08);
42 transition: transform 0.3s, box-shadow 0.3s;
43 position: relative;
44 overflow: hidden;
45}
46
47.help-post:hover {
48 transform: translateY(-5px);
49 box-shadow: 0 12px 25px rgba(0, 0, 0, 0.12);
50}
51
52.help-post.solved::after {
53 content: "";
54 position: absolute;
55 top: 0;
56 left: 0;
57 width: 5px;
58 height: 100%;
59 background: linear-gradient(to bottom, #52c41a, #a0d911);
60}
61
62/* 帖子头部 - 圆形头像+渐变背景 */
63.post-header {
64 display: flex;
65 align-items: center;
66 margin-bottom: 20px;
67 position: relative;
68}
69
70.post-avatar {
71 width: 50px;
72 height: 50px;
Akane121765b61a72025-05-17 13:52:25 +080073 border-radius: 50%;
74 margin-right: 15px;
75 object-fit: cover;
DREW5b1883e2025-06-07 10:41:32 +080076 border: 3px solid rgba(30, 60, 114, 0.2);
77 background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
78 color: white;
79 display: flex;
80 align-items: center;
81 justify-content: center;
82 font-weight: bold;
83 font-size: 20px;
84}
85
86.post-meta {
87 flex: 1;
88}
89
90.post-author {
91 font-weight: 700;
92 color: #1e3c72;
93 font-size: 18px;
94}
95
96.post-date {
97 color: #666;
98 font-size: 14px;
99 margin-top: 3px;
100}
101
102/* 已解决徽章 - 闪光效果 */
103.solved-badge {
104 background: linear-gradient(135deg, #52c41a 0%, #a0d911 100%);
105 color: white;
106 padding: 4px 12px;
107 border-radius: 20px;
108 font-size: 14px;
109 font-weight: 600;
110 position: absolute;
111 right: 0;
112 top: 0;
113 box-shadow: 0 2px 8px rgba(82, 196, 26, 0.3);
114 animation: pulse 2s infinite;
115}
116
117@keyframes pulse {
118 0% { box-shadow: 0 0 0 0 rgba(82, 196, 26, 0.4); }
119 70% { box-shadow: 0 0 0 10px rgba(82, 196, 26, 0); }
120 100% { box-shadow: 0 0 0 0 rgba(82, 196, 26, 0); }
121}
122
123/* 删除按钮 - 危险色 */
124.delete-button {
125 position: absolute;
126 right: 0;
127 bottom: 0;
128 padding: 6px 12px;
129 background: linear-gradient(135deg, #ff5e62 0%, #ff2400 100%);
130 color: white;
131 border: none;
132 border-radius: 4px;
133 font-weight: 600;
134 cursor: pointer;
135 transition: all 0.3s;
136}
137
138.delete-button:hover {
139 transform: translateY(-2px);
140 box-shadow: 0 4px 12px rgba(255, 94, 98, 0.3);
141}
142
143/* 帖子标题 - 渐变文字 */
144.post-title {
145 font-size: 28px;
146 margin: 0 0 20px;
147 background: linear-gradient(135deg, #1e3c72 0%, #2a5298 100%);
148 -webkit-background-clip: text;
149 -webkit-text-fill-color: transparent;
150 font-weight: 800;
151}
152
153/* 帖子内容 - 更好的阅读体验 */
154.post-content {
155 line-height: 1.8;
156 color: #333;
157 font-size: 16px;
158 margin-bottom: 25px;
159}
160
161.post-content p {
162 margin-bottom: 15px;
163}
164
165/* 图片容器 - 圆角+阴影 */
166.post-image-container, .comment-image-container {
167 margin: 20px 0;
168 border-radius: 8px;
169 overflow: hidden;
170 box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
171 transition: transform 0.3s;
172}
173
174.post-image-container:hover, .comment-image-container:hover {
175 transform: scale(1.02);
176}
177
178.post-image, .comment-image {
179 width: 100%;
180 height: auto;
181 max-height: 500px;
182 object-fit: contain;
183 display: block;
184}
185
186/* 帖子操作按钮 - 悬浮效果 */
187.post-actions {
188 display: flex;
189 gap: 15px;
190 margin-top: 25px;
191}
192
193.like-button, .solve-button {
194 padding: 10px 20px;
195 border: none;
196 border-radius: 6px;
197 font-weight: 600;
198 cursor: pointer;
199 transition: all 0.3s;
200 display: flex;
201 align-items: center;
202 gap: 8px;
203}
204
205.like-button {
206 background: linear-gradient(135deg, #f6f7f9 0%, #e9ebee 100%);
207 color: #666;
208}
209
210.like-button:hover {
211 background: linear-gradient(135deg, #ebedf0 0%, #d8dadf 100%);
212 transform: translateY(-2px);
213 box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
214}
215
216.like-button.liked {
217 background: linear-gradient(135deg, #e6f7ff 0%, #bae7ff 100%);
218 color: #1890ff;
219}
220
221.solve-button {
222 background: linear-gradient(135deg, #f6ffed 0%, #d9f7be 100%);
223 color: #52c41a;
224}
225
226.solve-button:hover {
227 background: linear-gradient(135deg, #e6ffd1 0%, #b7eb8f 100%);
228 transform: translateY(-2px);
229 box-shadow: 0 4px 8px rgba(82, 196, 26, 0.2);
230}
231
232.solve-button.solved {
233 background: linear-gradient(135deg, #52c41a 0%, #a0d911 100%);
234 color: white;
235}
236
237/* 评论区域 */
238.comments-section {
239 background: white;
240 border-radius: 12px;
241 padding: 25px;
242 box-shadow: 0 8px 20px rgba(0, 0, 0, 0.08);
243}
244
245.comments-section h2 {
246 font-size: 22px;
247 color: #1e3c72;
248 margin-bottom: 20px;
249 padding-bottom: 10px;
250 border-bottom: 2px solid #f0f2f5;
251}
252
253/* 评论表单 - 现代设计 */
254.comment-form {
255 margin-bottom: 30px;
256}
257
258.comment-form textarea {
259 width: 100%;
260 padding: 15px;
261 border: 2px solid #f0f2f5;
262 border-radius: 8px;
263 resize: vertical;
264 min-height: 100px;
265 margin-bottom: 15px;
266 font-size: 15px;
267 transition: all 0.3s;
268}
269
270.comment-form textarea:focus {
271 border-color: #1e3c72;
272 box-shadow: 0 0 0 3px rgba(30, 60, 114, 0.2);
273 outline: none;
274}
275
276.comment-form button[type="submit"] {
277 padding: 12px 24px;
278 background: linear-gradient(135deg, #1e3c72 0%, #2a5298 100%);
279 color: white;
280 border: none;
281 border-radius: 6px;
282 font-weight: 600;
283 cursor: pointer;
284 transition: all 0.3s;
285}
286
287.comment-form button[type="submit"]:hover {
288 transform: translateY(-2px);
289 box-shadow: 0 4px 12px rgba(30, 60, 114, 0.3);
290}
291
292/* 图片上传按钮 - 现代风格 */
293.upload-image-btn {
294 position: relative;
295 margin-bottom: 15px;
296}
297
298.upload-image-btn input[type="file"] {
299 position: absolute;
300 width: 1px;
301 height: 1px;
302 padding: 0;
303 margin: -1px;
304 overflow: hidden;
305 clip: rect(0, 0, 0, 0);
306 border: 0;
307}
308
309.upload-image-btn label {
310 display: inline-block;
311 padding: 8px 16px;
312 background: #f0f2f5;
313 border-radius: 6px;
314 color: #666;
315 font-size: 14px;
316 cursor: pointer;
317 transition: all 0.3s;
318}
319
320.upload-image-btn label:hover {
321 background: #e4e6eb;
322}
323
324/* 评论列表 - 卡片式设计 */
325.comment-list {
326 margin-top: 25px;
327}
328
329.comment-item {
330 display: flex;
331 padding: 20px;
332 margin-bottom: 20px;
333 background: #f9fafc;
334 border-radius: 10px;
335 transition: all 0.3s;
336 position: relative;
337}
338
339.comment-item:hover {
340 background: #f0f4f8;
341 transform: translateX(5px);
342}
343
344.comment-avatar {
345 width: 50px;
346 height: 50px;
347 border-radius: 50%;
348 margin-right: 15px;
349 object-fit: cover;
350 background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
351 color: white;
352 display: flex;
353 align-items: center;
354 justify-content: center;
355 font-weight: bold;
356 font-size: 20px;
357 flex-shrink: 0;
Akane121765b61a72025-05-17 13:52:25 +0800358}
359
360.comment-content {
361 flex: 1;
362}
363
364.comment-header {
365 display: flex;
DREW5b1883e2025-06-07 10:41:32 +0800366 justify-content: space-between;
Akane121765b61a72025-05-17 13:52:25 +0800367 align-items: center;
DREW5b1883e2025-06-07 10:41:32 +0800368 margin-bottom: 10px;
Akane121765b61a72025-05-17 13:52:25 +0800369}
370
DREW5b1883e2025-06-07 10:41:32 +0800371.comment-user {
372 font-weight: 700;
373 color: #1e3c72;
Akane121765b61a72025-05-17 13:52:25 +0800374}
375
DREW5b1883e2025-06-07 10:41:32 +0800376.reply-to {
377 color: #666;
378 font-size: 14px;
379 margin-left: 10px;
380}
381
382.comment-time {
383 color: #888;
384 font-size: 13px;
Akane121765b61a72025-05-17 13:52:25 +0800385}
386
387.comment-text {
DREW5b1883e2025-06-07 10:41:32 +0800388 line-height: 1.7;
Akane121765b61a72025-05-17 13:52:25 +0800389 color: #333;
DREW5b1883e2025-06-07 10:41:32 +0800390 margin-bottom: 15px;
Akane121765b61a72025-05-17 13:52:25 +0800391}
392
393.comment-actions {
394 display: flex;
DREW5b1883e2025-06-07 10:41:32 +0800395 gap: 15px;
Akane121765b61a72025-05-17 13:52:25 +0800396}
397
DREW5b1883e2025-06-07 10:41:32 +0800398.comment-actions button {
Akane121765b61a72025-05-17 13:52:25 +0800399 background: none;
400 border: none;
401 color: #666;
Akane121765b61a72025-05-17 13:52:25 +0800402 font-size: 14px;
Akane121765b61a72025-05-17 13:52:25 +0800403 cursor: pointer;
DREW5b1883e2025-06-07 10:41:32 +0800404 transition: all 0.3s;
405 padding: 5px 10px;
406 border-radius: 4px;
Akane121765b61a72025-05-17 13:52:25 +0800407 display: flex;
408 align-items: center;
DREW5b1883e2025-06-07 10:41:32 +0800409 gap: 5px;
Akane121765b61a72025-05-17 13:52:25 +0800410}
411
DREW5b1883e2025-06-07 10:41:32 +0800412.comment-actions button:hover {
413 color: #1e3c72;
414 background: rgba(30, 60, 114, 0.1);
Akane121765b61a72025-05-17 13:52:25 +0800415}
416
DREW5b1883e2025-06-07 10:41:32 +0800417.delete-comment-btn {
418 color: #ff4d4f !important;
Akane121765b61a72025-05-17 13:52:25 +0800419}
420
DREW5b1883e2025-06-07 10:41:32 +0800421.delete-comment-btn:hover {
422 background: rgba(255, 77, 79, 0.1) !important;
Akane121765b61a72025-05-17 13:52:25 +0800423}
424
DREW5b1883e2025-06-07 10:41:32 +0800425/* 回复弹窗 - 现代化设计 */
Akane121765b61a72025-05-17 13:52:25 +0800426.reply-modal-overlay {
427 position: fixed;
428 top: 0;
429 left: 0;
430 right: 0;
431 bottom: 0;
432 background: rgba(0, 0, 0, 0.5);
433 display: flex;
434 justify-content: center;
435 align-items: center;
436 z-index: 1000;
DREW5b1883e2025-06-07 10:41:32 +0800437 backdrop-filter: blur(5px);
Akane121765b61a72025-05-17 13:52:25 +0800438}
439
440.reply-modal {
441 background: white;
DREW5b1883e2025-06-07 10:41:32 +0800442 padding: 25px;
443 border-radius: 12px;
Akane121765b61a72025-05-17 13:52:25 +0800444 width: 500px;
445 max-width: 90%;
DREW5b1883e2025-06-07 10:41:32 +0800446 box-shadow: 0 10px 25px rgba(0, 0, 0, 0.15);
447 position: relative;
Akane121765b61a72025-05-17 13:52:25 +0800448}
449
DREW5b1883e2025-06-07 10:41:32 +0800450.modal-header {
451 display: flex;
452 justify-content: space-between;
453 align-items: center;
454 margin-bottom: 20px;
455}
456
457.modal-header h3 {
458 margin: 0;
459 color: #1e3c72;
460 font-size: 20px;
461}
462
463.close-modal {
464 background: none;
465 border: none;
466 font-size: 24px;
467 color: #666;
468 cursor: pointer;
469 transition: all 0.3s;
470}
471
472.close-modal:hover {
473 color: #1e3c72;
474 transform: rotate(90deg);
Akane121765b61a72025-05-17 13:52:25 +0800475}
476
477.reply-modal textarea {
478 width: 100%;
DREW5b1883e2025-06-07 10:41:32 +0800479 padding: 15px;
480 border: 2px solid #f0f2f5;
481 border-radius: 8px;
Akane121765b61a72025-05-17 13:52:25 +0800482 resize: vertical;
DREW5b1883e2025-06-07 10:41:32 +0800483 min-height: 120px;
Akane121765b61a72025-05-17 13:52:25 +0800484 margin-bottom: 15px;
DREW5b1883e2025-06-07 10:41:32 +0800485 font-size: 15px;
486 transition: all 0.3s;
487}
488
489.reply-modal textarea:focus {
490 border-color: #1e3c72;
491 box-shadow: 0 0 0 3px rgba(30, 60, 114, 0.2);
492 outline: none;
Akane121765b61a72025-05-17 13:52:25 +0800493}
494
495.modal-actions {
496 display: flex;
497 justify-content: flex-end;
DREW5b1883e2025-06-07 10:41:32 +0800498 gap: 15px;
Akane121765b61a72025-05-17 13:52:25 +0800499}
500
DREW5b1883e2025-06-07 10:41:32 +0800501.cancel-btn {
502 padding: 10px 20px;
Akane121765b61a72025-05-17 13:52:25 +0800503 background: #f5f5f5;
DREW5b1883e2025-06-07 10:41:32 +0800504 color: #666;
505 border: none;
506 border-radius: 6px;
507 font-weight: 600;
Akane121765b61a72025-05-17 13:52:25 +0800508 cursor: pointer;
DREW5b1883e2025-06-07 10:41:32 +0800509 transition: all 0.3s;
Akane121765b61a72025-05-17 13:52:25 +0800510}
511
DREW5b1883e2025-06-07 10:41:32 +0800512.cancel-btn:hover {
513 background: #e0e0e0;
514}
515
516.submit-btn {
517 padding: 10px 20px;
518 background: linear-gradient(135deg, #1e3c72 0%, #2a5298 100%);
Akane121765b61a72025-05-17 13:52:25 +0800519 color: white;
520 border: none;
DREW5b1883e2025-06-07 10:41:32 +0800521 border-radius: 6px;
522 font-weight: 600;
Akane121765b61a72025-05-17 13:52:25 +0800523 cursor: pointer;
DREW5b1883e2025-06-07 10:41:32 +0800524 transition: all 0.3s;
DREWae420b22025-06-02 14:07:20 +0800525}
526
DREW5b1883e2025-06-07 10:41:32 +0800527.submit-btn:hover {
528 transform: translateY(-2px);
529 box-shadow: 0 4px 12px rgba(30, 60, 114, 0.3);
DREWae420b22025-06-02 14:07:20 +0800530}
531
DREW5b1883e2025-06-07 10:41:32 +0800532/* 响应式设计 */
533@media (max-width: 768px) {
534 .help-detail-container {
535 padding: 15px;
536 }
537
538 .post-title {
539 font-size: 24px;
540 }
541
542 .post-actions {
543 flex-direction: column;
544 }
545
546 .comment-item {
547 flex-direction: column;
548 }
549
550 .comment-avatar {
551 margin-bottom: 15px;
552 }
DREWae420b22025-06-02 14:07:20 +0800553}
554
DREW5b1883e2025-06-07 10:41:32 +0800555/* 动画效果 */
556@keyframes fadeIn {
557 from { opacity: 0; transform: translateY(10px); }
558 to { opacity: 1; transform: translateY(0); }
DREWae420b22025-06-02 14:07:20 +0800559}
560
DREW5b1883e2025-06-07 10:41:32 +0800561.help-post, .comments-section {
562 animation: fadeIn 0.5s ease-out forwards;
563}