blob: da072d1f7b2d58b28b032e9b157385efa425704e [file] [log] [blame] [edit]
.postDetailContainer {
max-width: 1200px;
margin: 0 auto;
background: #f5f5f5;
min-height: 100vh;
}
.postCoverSection {
margin-bottom: 24px;
border-radius: 0 0 16px 16px;
overflow: hidden;
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
}
.coverImageContainer {
position: relative;
width: 100%;
height: 400px;
overflow: hidden;
background: #f0f0f0;
}
.coverImage {
width: 100% !important;
height: 100% !important;
object-fit: cover !important;
transition: transform 0.3s ease;
}
.coverImage:hover {
transform: scale(1.02);
}
.coverOverlay {
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
pointer-events: none;
}
.coverGradient {
position: absolute;
bottom: 0;
left: 0;
right: 0;
height: 100px;
background: linear-gradient(transparent, rgba(0, 0, 0, 0.3));
}
.previewMask {
background: rgba(0, 0, 0, 0.5);
color: white;
padding: 8px 16px;
border-radius: 4px;
font-size: 14px;
}
.postDetailHeader {
margin: 0 24px 24px;
border-radius: 12px;
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}
.titleContainer {
display: flex;
align-items: center;
gap: 16px;
margin-bottom: 16px;
}
.titleContainer h2 {
margin: 0;
flex: 1;
}
.promotionBadge {
background: linear-gradient(45deg, #ff6b6b, #ffa500);
color: white;
padding: 6px 12px;
border-radius: 16px;
font-size: 12px;
font-weight: bold;
display: flex;
align-items: center;
gap: 6px;
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
white-space: nowrap;
}
.postMeta {
display: flex;
flex-wrap: wrap;
gap: 24px;
margin: 16px 0;
padding: 16px 0;
border-bottom: 1px solid #f0f0f0;
}
.postAuthor,
.postTime,
.postViews,
.postTags {
display: flex;
align-items: center;
gap: 8px;
}
.postActions {
display: flex;
gap: 12px;
flex-wrap: wrap;
margin-top: 16px;
}
.postContent {
margin: 0 24px 24px;
border-radius: 12px;
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}
.postContent img {
max-width: 100%;
height: auto;
}
.commentSection {
margin: 0 24px 24px;
border-radius: 12px;
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}
.commentInput {
margin-bottom: 24px;
}
.commentActions {
display: flex;
justify-content: flex-end;
gap: 12px;
margin-top: 12px;
}
.commentList {
margin-top: 24px;
}
.replyList {
margin-top: 16px;
padding-left: 24px;
border-left: 2px solid #f0f0f0;
}
.relatedPosts {
margin: 0 24px 24px;
padding: 24px;
background: white;
border-radius: 12px;
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}
.recommendHeader {
display: flex;
justify-content: space-between;
align-items: center;
margin-bottom: 24px;
}
.recommendHeader h4 {
margin: 0;
}
.postDetailLoading {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
min-height: 400px;
color: #666;
}
.postDetailError {
text-align: center;
padding: 60px 24px;
color: #999;
font-size: 16px;
}
/* 响应式设计 */
@media (max-width: 768px) {
.postDetailContainer {
margin: 0;
}
.coverImageContainer {
height: 250px;
}
.postDetailHeader,
.postContent,
.commentSection,
.relatedPosts {
margin: 0 12px 16px;
border-radius: 8px;
}
.postMeta {
flex-direction: column;
gap: 12px;
}
.postActions {
flex-direction: column;
}
.postActions button {
width: 100%;
}
}
@media (max-width: 480px) {
.coverImageContainer {
height: 200px;
}
.postDetailHeader,
.postContent,
.commentSection,
.relatedPosts {
margin: 0 8px 12px;
}
}