|
|
.detail-page { min-height: 100vh; background: transparent; position: relative; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif; } .bg-blur { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: linear-gradient(145deg, #f8fafd 0%, #f1f5f9 100%); z-index: 0; pointer-events: none; } /* 加载状态 */ .loading-container { position: fixed; top: 50%; left: 50%; transform: translate(-50%, -50%); display: flex; flex-direction: column; align-items: center; gap: 24rpx; color: #64748b; font-size: 28rpx; } .loading-spinner { width: 80rpx; height: 80rpx; border: 4rpx solid #e2e8f0; border-top-color: #3b82f6; border-radius: 50%; animation: spin 1s linear infinite; } @keyframes spin { to { transform: rotate(360deg); } } /* 滚动内容 */ .detail-scroll { height: 100vh; position: relative; z-index: 2; } .detail-content { padding: 24rpx 32rpx 40rpx; } /* 卡片通用样式 */ .title-card, .info-card, .content-card, .measures-card { background: rgba(255, 255, 255, 0.9); backdrop-filter: blur(20px); -webkit-backdrop-filter: blur(20px); border-radius: 32rpx; padding: 32rpx; margin-bottom: 24rpx; box-shadow: 0 4rpx 20rpx rgba(0, 0, 0, 0.02), 0 2rpx 4rpx rgba(0, 0, 0, 0.02); border: 1rpx solid rgba(255, 255, 255, 0.8); } /* 标题卡片 */ .title-card { margin-top: 8rpx; } .category-wrap { display: flex; align-items: center; gap: 16rpx; margin-bottom: 24rpx; } .category-tag, .level-tag { display: inline-block; padding: 8rpx 24rpx; border-radius: 60rpx; font-size: 24rpx; font-weight: 500; background: #eef2ff; } .title { font-size: 44rpx; font-weight: 700; color: #0f172a; line-height: 1.4; margin-bottom: 24rpx; display: block; letter-spacing: 0.5rpx; } .time-info { display: flex; align-items: center; gap: 8rpx; padding-top: 24rpx; border-top: 1rpx solid #e2e8f0; } .time-icon { font-size: 32rpx; opacity: 0.6; } .time-text { font-size: 26rpx; color: #64748b; } /* 卡片头部 */ .info-header, .content-header, .measures-header { display: flex; align-items: center; gap: 12rpx; margin-bottom: 24rpx; } .info-icon, .content-icon, .measures-icon { font-size: 36rpx; } .info-title, .content-title, .measures-title { font-size: 32rpx; font-weight: 600; color: #1e293b; } /* 影响区域 */ .region-tags { display: flex; flex-wrap: wrap; gap: 16rpx; } .region-tag { font-size: 28rpx; display: block; } /* 内容卡片 */ .brief-content, .detail-body { font-size: 32rpx; color: #334155; line-height: 1.7; background: #f8fafc; padding: 28rpx; border-radius: 24rpx; border: 1rpx solid #e2e8f0; } /* 应对措施卡片 */ .measures-list { display: flex; flex-direction: column; gap: 20rpx; } .measure-item { display: flex; align-items: flex-start; gap: 16rpx; background: #f8fafc; padding: 24rpx; border-radius: 20rpx; border: 1rpx solid #e2e8f0; } .measure-number { width: 40rpx; height: 40rpx; background: #3b82f6; color: white; font-size: 24rpx; font-weight: 600; border-radius: 50%; display: flex; align-items: center; justify-content: center; flex-shrink: 0; } .measure-text { flex: 1; font-size: 30rpx; color: #334155; line-height: 1.5; } /* 底部留白 */ .bottom-space { height: 40rpx; } /* 错误状态 */ .error-state { position: fixed; top: 50%; left: 50%; transform: translate(-50%, -50%); display: flex; flex-direction: column; align-items: center; justify-content: center; background: rgba(255, 255, 255, 0.9); backdrop-filter: blur(20px); -webkit-backdrop-filter: blur(20px); padding: 60rpx 80rpx; border-radius: 48rpx; border: 1rpx solid rgba(255, 255, 255, 0.8); box-shadow: 0 20rpx 40rpx rgba(0, 0, 0, 0.02); min-width: 500rpx; } .error-emoji { font-size: 120rpx; margin-bottom: 24rpx; opacity: 0.8; } .error-text { font-size: 32rpx; color: #475569; margin-bottom: 48rpx; } .back-btn { background: #3b82f6; color: white; font-size: 30rpx; padding: 20rpx 60rpx; border-radius: 48rpx; border: none; box-shadow: 0 8rpx 24rpx rgba(59, 130, 246, 0.3); } .back-btn:active { opacity: 0.8; transform: scale(0.98); } /* 富文本样式 */ rich-text { width: 100%; } rich-text p { margin-bottom: 16rpx; } rich-text h1, rich-text h2, rich-text h3, rich-text h4 { font-weight: 600; color: #0f172a; margin: 24rpx 0 16rpx; } rich-text h1 { font-size: 40rpx; } rich-text h2 { font-size: 36rpx; } rich-text h3 { font-size: 34rpx; } rich-text h4 { font-size: 32rpx; } rich-text ul, rich-text ol { padding-left: 40rpx; margin: 16rpx 0; } rich-text li { margin-bottom: 8rpx; color: #334155; } rich-text a { color: #3b82f6; text-decoration: underline; } rich-text img { max-width: 100%; border-radius: 20rpx; margin: 20rpx 0; box-shadow: 0 4rpx 12rpx rgba(0, 0, 0, 0.05); } rich-text blockquote { border-left: 6rpx solid #3b82f6; background: #f1f5f9; padding: 20rpx 24rpx; margin: 20rpx 0; border-radius: 12rpx; color: #475569; font-style: italic; } rich-text table { width: 100%; border-collapse: collapse; margin: 20rpx 0; background: white; border-radius: 16rpx; overflow: hidden; } rich-text td, rich-text th { border: 1rpx solid #e2e8f0; padding: 16rpx; text-align: left; } rich-text th { background: #f8fafc; font-weight: 600; color: #1e293b; } rich-text code { background: #f1f5f9; padding: 4rpx 12rpx; border-radius: 8rpx; font-family: monospace; color: #dc2626; } rich-text pre { background: #1e293b; color: #e2e8f0; padding: 24rpx; border-radius: 20rpx; overflow-x: auto; margin: 20rpx 0; }
|