|
|
.article-detail-container { min-height: 100vh; background: #f8fafc; position: relative; }
/* 文章内容容器 */ .article-content { height: 100vh; position: relative; } /* 文章封面 */ .article-cover { position: relative; height: 500rpx; overflow: hidden; } .cover-image { width: 100%; height: 100%; object-fit: cover; } .cover-overlay { position: absolute; top: 0; left: 0; right: 0; bottom: 0; background: linear-gradient(to bottom, rgba(0, 0, 0, 0.3), rgba(0, 0, 0, 0.1)); } .cover-gradient { position: absolute; bottom: 0; left: 0; right: 0; height: 200rpx; background: linear-gradient(to top, rgba(0, 0, 0, 0.6), transparent); } .cover-category { position: absolute; top: 40rpx; right: 40rpx; background: rgba(52, 152, 219, 0.95); backdrop-filter: blur(10rpx); color: white; padding: 12rpx 28rpx; border-radius: 25rpx; font-size: 24rpx; font-weight: 600; box-shadow: 0 4rpx 20rpx rgba(0, 0, 0, 0.2); z-index: 2; } /* 文章主体 */ .article-body { background: white; border-radius: 40rpx 40rpx 0 0; margin-top: -40rpx; position: relative; z-index: 10; padding-bottom: 50rpx; } .title-section { padding: 50rpx 40rpx 40rpx; border-bottom: 1rpx solid #f1f5f9; } .article-title { font-size: 44rpx; font-weight: 800; color: #1e293b; line-height: 1.4; margin-bottom: 20rpx; letter-spacing: 0.5rpx; } .article-subtitle { font-size: 30rpx; color: #64748b; line-height: 1.6; margin-bottom: 40rpx; padding-bottom: 30rpx; border-bottom: 1rpx dashed #e2e8f0; } /* 专家信息 */ .expert-info { display: flex; align-items: center; gap: 20rpx; margin-top: 30rpx; } .expert-avatar { width: 80rpx; height: 80rpx; border-radius: 50%; border: 3rpx solid white; box-shadow: 0 4rpx 20rpx rgba(0, 0, 0, 0.1); } .expert-detail { flex: 1; } .expert-name { font-size: 28rpx; font-weight: 600; color: #1e293b; margin-bottom: 8rpx; } .publish-time { font-size: 24rpx; color: #94a3b8; } .view-count { display: flex; align-items: center; gap: 10rpx; background: rgba(226, 232, 240, 0.3); padding: 12rpx 20rpx; border-radius: 25rpx; font-size: 24rpx; color: #64748b; } .view-icon { width: 28rpx; height: 28rpx; opacity: 0.7; } /* 富文本内容 */ .rich-content { padding: 40rpx; font-size: 32rpx; line-height: 1.8; color: #334155; } .rich-content h1, .rich-content h2, .rich-content h3 { color: #1e293b; margin: 40rpx 0 20rpx; font-weight: 700; } .rich-content h1 { font-size: 40rpx; } .rich-content h2 { font-size: 36rpx; } .rich-content h3 { font-size: 32rpx; } .rich-content p { margin-bottom: 30rpx; } .rich-content ul, .rich-content ol { margin: 20rpx 0 20rpx 40rpx; } .rich-content li { margin-bottom: 15rpx; position: relative; } .rich-content ul li:before { content: '•'; color: #3498db; font-weight: bold; position: absolute; left: -25rpx; } .rich-content strong { color: #1e293b; font-weight: 700; } .rich-content a { color: #3498db; text-decoration: underline; } /* 加载中 */ .loading-container { position: fixed; top: 0; left: 0; right: 0; bottom: 0; background: rgba(255, 255, 255, 0.95); display: flex; flex-direction: column; align-items: center; justify-content: center; z-index: 2000; } .loading-spinner { position: relative; width: 120rpx; height: 120rpx; margin-bottom: 40rpx; } .spinner-circle { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); width: 100%; height: 100%; border: 8rpx solid rgba(52, 152, 219, 0.1); border-radius: 50%; animation: spinnerRotate 2s linear infinite; } .spinner-circle.circle-2 { width: 80%; height: 80%; border-width: 6rpx; animation-delay: 0.2s; } .spinner-circle.circle-3 { width: 60%; height: 60%; border-width: 4rpx; animation-delay: 0.4s; } @keyframes spinnerRotate { 0% { transform: translate(-50%, -50%) rotate(0deg); } 100% { transform: translate(-50%, -50%) rotate(360deg); } } .loading-text { font-size: 28rpx; color: #64748b; letter-spacing: 1rpx; } /* 回到顶部 */ .back-to-top { position: fixed; right: 40rpx; bottom: 160rpx; width: 80rpx; height: 80rpx; background: rgba(255, 255, 255, 0.95); backdrop-filter: blur(10rpx); border-radius: 50%; display: flex; align-items: center; justify-content: center; box-shadow: 0 8rpx 30rpx rgba(0, 0, 0, 0.15); border: 1rpx solid rgba(226, 232, 240, 0.8); transition: all 0.3s ease; z-index: 90; } .back-to-top:active { transform: scale(0.95); box-shadow: 0 4rpx 20rpx rgba(0, 0, 0, 0.2); } .top-icon { width: 36rpx; height: 36rpx; } /* 响应式调整 */ @media screen and (max-width: 750rpx) { .article-cover { height: 400rpx; } .article-title { font-size: 38rpx; } .article-subtitle { font-size: 28rpx; } .rich-content { font-size: 30rpx; } .action-bar { padding: 0 30rpx; } .comment-btn { padding: 18rpx 30rpx; } }
|