/** * 资源线报数据网盘文本列表分享 - 主样式文件 * Author: 阿福 * Version: 1.0 */ /* ==================== CSS 变量定义 ==================== */ :root { --primary-color: #1890ff; --primary-hover: #40a9ff; --primary-light: #e6f7ff; --text-primary: #ffffff; --text-secondary: #e0e0e0; --text-muted: #b0b0b0; --bg-primary: #033c63; --bg-secondary: #023357; --bg-tertiary: #012a4a; --border-color: #1a4d79; --shadow-sm: 0 2px 8px rgba(0, 0, 0, 0.2); --shadow-md: 0 4px 16px rgba(0, 0, 0, 0.3); --shadow-lg: 0 8px 32px rgba(0, 0, 0, 0.4); --radius-sm: 4px; --radius-md: 8px; --radius-lg: 12px; --transition: all 0.3s ease; } /* 主题配色 */ .theme-green { --primary-color: #52c41a; --primary-hover: #73d13d; --primary-light: #f6ffed; } .theme-orange { --primary-color: #fa8c16; --primary-hover: #ffa940; --primary-light: #fff7e6; } .theme-purple { --primary-color: #722ed1; --primary-hover: #9254de; --primary-light: #f9f0ff; } /* ==================== 基础重置 ==================== */ *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; } html { font-size: 16px; scroll-behavior: smooth; } body { font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'PingFang SC', 'Hiragino Sans GB', 'Microsoft YaHei', 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 14px; line-height: 1.6; color: var(--text-primary); background-color: var(--bg-primary); } a { color: var(--primary-color); text-decoration: none; transition: var(--transition); } a:hover { color: var(--primary-hover); } img { max-width: 100%; height: auto; vertical-align: middle; } ul, ol { list-style: none; } input, textarea, button { font-family: inherit; font-size: inherit; } /* ==================== 图标字体 ==================== */ [class^="icon-"]::before { display: inline-block; font-style: normal; font-variant: normal; text-rendering: auto; -webkit-font-smoothing: antialiased; } .icon-search::before { content: "🔍"; } .icon-pin::before { content: "📌"; } .icon-list::before { content: "📋"; } .icon-time::before { content: "🕐"; } .icon-eye::before { content: "👁"; } .icon-comment::before { content: "💬"; } .icon-arrow-right::before { content: "→"; } .icon-arrow-left::before { content: "←"; } .icon-arrow-up::before { content: "↑"; } .icon-home::before { content: "🏠"; } .icon-folder::before { content: "📁"; } .icon-tag::before { content: "🏷"; } .icon-link::before { content: "🔗"; } .icon-user::before { content: "👤"; } .icon-comments::before { content: "💬"; } .icon-inbox::before { content: "📥"; } /* ==================== 布局容器 ==================== */ .container { max-width: 1250px; margin: 0 auto; padding: 0 15px; } /* 无内边距容器 */ .container.no-padding { padding: 0; } /* 全宽内容区 */ .main-content.full-width { width: 100%; max-width: 1250px; margin: 0 auto; } /* 文章页内容区 - 保持原有宽度 */ .single .main-content, .page .main-content { flex: 1; min-width: 0; } .main-wrapper { padding: 20px 5px; } .content-wrapper { display: flex; gap: 20px; } .main-content { flex: 1; min-width: 0; } /* ==================== 头部导航 ==================== */ .site-header { background: var(--bg-primary); /* box-shadow: var(--shadow-sm);*/ position: sticky; top: 0; z-index: 1000; padding: 15px 0; } /* 顶部随页面滚动 */ .site-header.header-scroll { position: relative; top: auto; } .site-header .container { display: flex; flex-direction: column; gap: 15px; } /* 顶部行:LOGO和搜索框 */ .header-top { display: flex; align-items: center; justify-content: space-between; width: 100%; } /* Logo区域 */ .logo-section { display: flex; align-items: center; flex-shrink: 0; } .logo-link { display: flex; align-items: center; } .logo-img { width: 180px; height: 40px; object-fit: contain; } .logo-text { font-size: 20px; font-weight: 700; color: var(--primary-color); } /* LOGO水波特效 - 扩散效果(从中心向外) */ .logo-link.logo-wave-spread { position: relative; overflow: hidden; } .logo-link.logo-wave-spread::before { content: ''; position: absolute; top: 50%; left: 50%; width: 0; height: 0; background: radial-gradient(circle, rgba(255, 255, 255, 0.4) 0%, transparent 70%); border-radius: 50%; transform: translate(-50%, -50%); animation: logoWaveSpread 2.5s ease-out infinite; } @keyframes logoWaveSpread { 0% { width: 0; height: 0; opacity: 0.8; } 100% { width: 200%; height: 200%; opacity: 0; } } /* LOGO水波特效 - 一侧效果(从一侧到另一侧) */ .logo-link.logo-wave-side { position: relative; overflow: hidden; } .logo-link.logo-wave-side::before { content: ''; position: absolute; top: 0; left: -100%; width: 50%; height: 100%; background: linear-gradient( 90deg, transparent, rgba(255, 255, 255, 0.3), rgba(255, 255, 255, 0.5), rgba(255, 255, 255, 0.3), transparent ); animation: logoWaveSide 2.5s ease-in-out infinite; } @keyframes logoWaveSide { 0% { left: -100%; } 50%, 100% { left: 200%; } } /* 搜索框 - 居中显示 */ .header-search { flex: 1; max-width: 400px; margin-left: auto; margin-right: 0; display: flex; flex-direction: column; justify-content: flex-start; } .header-search form { display: flex; width: 100%; align-items: center; background: var(--bg-tertiary); border: 1px solid var(--border-color); border-radius: 50px; overflow: hidden; transition: var(--transition); } .header-search form:focus-within { border-color: #2c3e50; background: white; } .header-search form:focus-within input { color: #333; } .header-search form:focus-within input::placeholder { color: #999; } .header-search form:focus-within button { color: #333; border-left-color: #e0e0e0; } .header-search input { flex: 1; width: 100%; padding: 12px 15px 12px 20px; border: none; background: transparent; font-size: 14px; outline: none; } .header-search input::placeholder { color: var(--text-secondary); } .header-search button { background: transparent; border: none; border-left: 1px solid var(--border-color); cursor: pointer; padding: 8px 15px; color: var(--text-primary); font-size: 14px; font-weight: 500; transition: var(--transition); margin: 0; display: flex; align-items: center; justify-content: center; } .header-search button:hover { color: var(--primary-color); } .header-search button svg { display: block; } /* 导航菜单 */ .main-nav { width: 100%; background: rgba(255,255,255,.06); padding: 10px 0; border-radius: 8px; } .nav-list { display: flex; gap: 20px; } .nav-list li { background: transparent; border-radius: 0; box-shadow: none; border: none; } .nav-list a { color: var(--text-primary); font-weight: 500; padding: 8px 0; position: relative; background: transparent; border-radius: 0; box-shadow: none; border: none; } .nav-list a::after { content: ''; position: absolute; bottom: 0; left: 0; width: 0; height: 2px; background: #ffffff; transition: var(--transition); } .nav-list a:hover, .nav-list a.current { color: #ffffff; background: transparent !important; } .nav-list a:hover::after, .nav-list a.current::after { width: 100%; } /* ==================== 多级下拉菜单样式 ==================== */ .nav-item { position: relative; background: transparent; border-radius: 0; box-shadow: none; border: none; } .nav-item.has-dropdown .nav-link { display: inline-flex; align-items: center; gap: 4px; background: transparent !important; border-radius: 0 !important; box-shadow: none !important; border: none !important; padding: 8px 0; color: var(--text-primary); font-weight: 500; min-width: auto; } .nav-item.has-dropdown .nav-link:hover { background: transparent !important; color: #ffffff; box-shadow: none !important; border: none !important; transform: none; } .nav-item .dropdown-arrow { transition: transform 0.3s ease; display: inline-flex; align-items: center; justify-content: center; width: 12px; height: 12px; flex-shrink: 0; } .nav-item:hover .dropdown-arrow { transform: rotate(180deg); } .dropdown-item.has-dropdown > a { display: flex; align-items: center; justify-content: space-between; gap: 8px; } .dropdown-item .dropdown-arrow { transform: rotate(-90deg); display: inline-flex; align-items: center; justify-content: center; width: 10px; height: 10px; flex-shrink: 0; } /* 一级下拉菜单 */ .dropdown-menu { position: absolute; top: calc(100% + 8px); left: 0; transform: translateY(-10px); min-width: 160px; background: #fff; padding: 8px 0; opacity: 0; visibility: hidden; transition: all 0.25s ease; z-index: 9999; box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15); border-radius: 8px; border: 1px solid #e8e8e8; } /* 下拉菜单顶部小三角 */ .dropdown-menu::before { content: ''; position: absolute; top: -6px; left: 20px; width: 0; height: 0; border-left: 6px solid transparent; border-right: 6px solid transparent; border-bottom: 6px solid #fff; } .nav-item:hover > .dropdown-menu { opacity: 1; visibility: visible; transform: translateY(0); } .dropdown-item { position: relative; } .dropdown-item > a { display: block; padding: 10px 20px; color: #333; font-size: 14px; white-space: nowrap; transition: all 0.2s ease; } .dropdown-item > a:hover { color: #1890ff; background: #f5f7fa; } /* 二级下拉菜单(三级导航) */ .sub-dropdown-menu { position: absolute; top: 0; left: calc(100% + 8px); min-width: 140px; background: #fff; padding: 8px 0; opacity: 0; visibility: hidden; transform: translateX(-10px); transition: all 0.25s ease; z-index: 10000; box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15); border-radius: 8px; border: 1px solid #e8e8e8; } /* 二级下拉菜单左侧小三角 */ .sub-dropdown-menu::before { content: ''; position: absolute; top: 16px; left: -6px; width: 0; height: 0; border-top: 6px solid transparent; border-bottom: 6px solid transparent; border-right: 6px solid #fff; } .dropdown-item:hover > .sub-dropdown-menu { opacity: 1; visibility: visible; transform: translateX(0); } .sub-dropdown-menu li a { display: block; padding: 9px 18px; color: #333; font-size: 13px; white-space: nowrap; transition: all 0.2s ease; } .sub-dropdown-menu li a:hover { color: #1890ff; background: #f5f7fa; } /* 移动端菜单按钮 - 隐藏 */ .mobile-menu-btn { display: none; width: 40px; height: 40px; background: transparent; border: none; cursor: pointer; padding: 8px; position: relative; } /* 移动端卡片布局适配 */ @media (max-width: 767px) { .container, .container.no-padding, .main-content, .main-content.full-width, .content-wrapper, .cms-category-list, .cms-category-section, .category-posts { max-width: 100% !important; width: 100% !important; margin: 0 !important; padding: 0 !important; box-sizing: border-box !important; } .content-wrapper { gap: 10px !important; } .category-posts { grid-template-columns: 1fr !important; gap: 15px !important; padding: 0 10px !important; } .cms-category-section { padding: 0 10px !important; } .cms-category-list { padding: 20px 10px !important; } .post-item, .cms-post-item { max-width: 100% !important; width: 100% !important; margin: 0 !important; padding: 8px 12px !important; box-sizing: border-box !important; } .post-item > div, .cms-post-item > div { max-width: 100% !important; box-sizing: border-box !important; } .post-item a, .cms-post-item a { max-width: 100% !important; box-sizing: border-box !important; } /* 确保文章简介在手机端能够自动折行 */ .cms-post-item .post-intro, .cms-post-item .post-content { max-width: 100% !important; width: 100% !important; word-wrap: break-word !important; word-break: break-all !important; overflow-wrap: break-word !important; white-space: normal !important; overflow: hidden !important; } } .mobile-menu-btn .menu-icon { display: block; width: 24px; height: 2px; background: var(--text-primary); position: relative; transition: all 0.3s; } .mobile-menu-btn .menu-icon::before, .mobile-menu-btn .menu-icon::after { content: ''; position: absolute; width: 24px; height: 2px; background: var(--text-primary); transition: all 0.3s; } .mobile-menu-btn .menu-icon::before { top: -7px; } .mobile-menu-btn .menu-icon::after { top: 7px; } /* 菜单按钮展开状态 */ .mobile-menu-btn.active .menu-icon { background: transparent; } .mobile-menu-btn.active .menu-icon::before { top: 0; transform: rotate(45deg); } .mobile-menu-btn.active .menu-icon::after { top: 0; transform: rotate(-45deg); } /* 移动端导航 */ .mobile-nav { display: none; position: fixed; top: 0; left: 0; right: 0; bottom: 0; background: rgba(0, 0, 0, 0.5); z-index: 9999; } .mobile-nav.active { display: block; } .mobile-nav-inner { position: absolute; top: 110px; right: 15px; left: auto; width: 50%; min-width: 200px; max-width: 320px; background: #f5f5f5; padding: 15px; border-radius: 12px; max-height: calc(100vh - 130px); overflow-y: auto; box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15); z-index: 10000; } .mobile-search { margin-bottom: 15px; } .mobile-search form { display: flex; width: 100%; align-items: center; background: #fff; border: 1px solid #e0e0e0; border-radius: 8px; overflow: hidden; box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08); } .mobile-search input { flex: 1; width: 100%; padding: 10px 12px; border: none; background: transparent; font-size: 13px; outline: none; } .mobile-search button { background: var(--primary-color); color: white; border: none; cursor: pointer; padding: 8px 15px; font-size: 14px; font-weight: 500; border-radius: 50px; margin: 3px; display: flex; align-items: center; justify-content: center; } .mobile-search button svg { display: block; } .mobile-nav-blank { height: 8px; margin-bottom: 7px; } .mobile-nav-list { display: flex; flex-direction: column; gap: 8px; } .mobile-nav-list li { list-style: none; } /* 移动端多级菜单样式 */ .mobile-nav-list .dropdown-menu, .mobile-nav-list .sub-dropdown-menu { position: static; opacity: 1; visibility: visible; transform: none; box-shadow: none; background: transparent; padding: 5px 0 0 0; margin: 0; display: none; width: 100%; box-sizing: border-box; } .mobile-nav-list .nav-item.has-dropdown.active > .dropdown-menu, .mobile-nav-list .dropdown-item.active > .sub-dropdown-menu { display: block; } /* 所有导航项统一使用 flex 布局 */ .mobile-nav-list .nav-item, .mobile-nav-list .dropdown-item { position: relative; display: flex; align-items: center; flex-wrap: wrap; margin-bottom: 5px; } /* 普通链接样式(没有下拉菜单) */ .mobile-nav-list .nav-item:not(.has-dropdown) > a, .mobile-nav-list .dropdown-item:not(.has-dropdown) > a { flex: 1; display: block; padding: 10px 12px; color: #333; background: #fff; border-radius: 8px; font-size: 14px; text-decoration: none; transition: all 0.3s; box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08); } /* 有下拉菜单的项 - 整体白色背景 */ .mobile-nav-list .nav-item.has-dropdown, .mobile-nav-list .dropdown-item.has-dropdown { background: #fff; border-radius: 8px; box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08); padding: 0; min-height: 42px; } /* 有下拉菜单的链接 */ .mobile-nav-list .nav-item.has-dropdown > a, .mobile-nav-list .dropdown-item.has-dropdown > a { flex: 1; display: flex; align-items: center; padding: 0 12px; color: #333; background: transparent; font-size: 14px; text-decoration: none; transition: all 0.3s; min-height: 42px; } /* 下拉箭头样式 */ .mobile-nav-list .nav-item .dropdown-arrow, .mobile-nav-list .dropdown-item .dropdown-arrow { display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 42px; background: transparent; cursor: pointer; transition: transform 0.3s ease; } /* 子菜单样式 */ .mobile-nav-list .dropdown-menu, .mobile-nav-list .sub-dropdown-menu { width: 100%; padding: 5px 0 0 0; margin: 0; box-sizing: border-box; overflow: hidden; } /* 子菜单项样式 */ .mobile-nav-list .dropdown-menu li, .mobile-nav-list .sub-dropdown-menu li { margin-bottom: 5px; display: block; width: 100%; box-sizing: border-box; } /* 子菜单中的链接 */ .mobile-nav-list .dropdown-menu a, .mobile-nav-list .sub-dropdown-menu a { display: block; width: 100%; box-sizing: border-box; padding: 10px 12px; background: #f8f9fa; border-radius: 6px; font-size: 13px; color: #333; text-decoration: none; transition: all 0.3s; } /* 二级菜单链接缩进 */ .mobile-nav-list .dropdown-menu a { margin-left: 0; width: 100%; } /* 三级菜单链接缩进 */ .mobile-nav-list .sub-dropdown-menu a { margin-left: 15px; width: calc(100% - 15px); } .mobile-nav-list .dropdown-menu a:hover, .mobile-nav-list .sub-dropdown-menu a:hover { background: #e9ecef; color: #2c3e50; } /* 普通链接悬停效果 */ .mobile-nav-list .nav-item:not(.has-dropdown) > a:hover, .mobile-nav-list .dropdown-item:not(.has-dropdown) > a:hover { background: #2c3e50; color: #fff; box-shadow: 0 2px 8px rgba(44, 62, 80, 0.3); } /* 有下拉菜单的项悬停效果 */ .mobile-nav-list .nav-item.has-dropdown:hover, .mobile-nav-list .dropdown-item.has-dropdown:hover { background: #2c3e50; box-shadow: 0 2px 8px rgba(44, 62, 80, 0.3); } .mobile-nav-list .nav-item.has-dropdown:hover > a, .mobile-nav-list .dropdown-item.has-dropdown:hover > a, .mobile-nav-list .nav-item.has-dropdown:hover .dropdown-arrow, .mobile-nav-list .dropdown-item.has-dropdown:hover .dropdown-arrow { color: #fff; } .mobile-nav-list .nav-item.active > a .dropdown-arrow, .mobile-nav-list .dropdown-item.active > a .dropdown-arrow { transform: rotate(180deg); } /* ==================== 手机端个人资料卡片 ==================== */ .mobile-profile-card { margin-top: 15px; padding-top: 15px; border-top: 1px solid #e0e0e0; background: #fff; border-radius: 10px; padding: 15px; box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08); } .mobile-profile-header { display: flex; flex-direction: column; align-items: center; text-align: center; margin-bottom: 12px; } .mobile-profile-avatar { width: 60px; height: 60px; border-radius: 50%; overflow: hidden; flex-shrink: 0; border: 2px solid #f0f0f0; margin-bottom: 10px; } .mobile-profile-avatar img { width: 100%; height: 100%; object-fit: cover; } .mobile-profile-info { width: 100%; } .mobile-profile-name { font-size: 16px; font-weight: 600; color: #333; margin: 0 0 4px 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } .mobile-profile-desc { font-size: 12px; color: #666; margin: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } .mobile-profile-stats { display: flex; justify-content: space-around; padding: 10px 0; margin-bottom: 12px; background: #f8f9fa; border-radius: 8px; } .mobile-stat-item { text-align: center; flex: 1; } .mobile-stat-num { display: block; font-size: 16px; font-weight: 600; color: #2c3e50; line-height: 1.2; } .mobile-stat-label { display: block; font-size: 11px; color: #888; margin-top: 2px; } .mobile-profile-social { display: flex; justify-content: center; gap: 12px; flex-wrap: wrap; } .mobile-social-link { display: flex; align-items: center; justify-content: center; width: 36px; height: 36px; border-radius: 50%; background: #f5f5f5; color: #666; transition: all 0.3s ease; } .mobile-social-link:hover { transform: translateY(-2px); box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15); } .mobile-social-qq:hover { background: #12b7f5; color: #fff; } .mobile-social-wechat:hover { background: #07c160; color: #fff; } .mobile-social-bilibili:hover { background: #fb7299; color: #fff; } .mobile-social-weibo:hover { background: #e6162d; color: #fff; } .mobile-social-github:hover { background: #333; color: #fff; } .mobile-social-rss:hover { background: #ff6b6b; color: #fff; } /* ==================== 首页TAB导航 ==================== */ .homepage-tabs { margin-bottom: 10px; background: var(--bg-primary); border-radius: var(--radius-md); padding: 0; } .tab-nav { display: flex; gap: 10px; flex-wrap: nowrap; padding: 1px; padding-bottom: 8px; overflow-x: auto; overflow-y: hidden; -webkit-overflow-scrolling: touch; scrollbar-width: thin; scrollbar-color: #c1c1c1 transparent; -ms-overflow-style: scrollbar; cursor: grab; } .tab-nav:active { cursor: grabbing; } /* Webkit滚动条样式 - 始终显示 */ .tab-nav::-webkit-scrollbar { display: block; height: 6px; } .tab-nav::-webkit-scrollbar-track { background: #f1f1f1; border-radius: 3px; } .tab-nav::-webkit-scrollbar-thumb { background: #c1c1c1; border-radius: 3px; } .tab-nav::-webkit-scrollbar-thumb:hover { background: #a8a8a8; } .tab-item { display: inline-flex; align-items: center; justify-content: center; padding: 10px 20px; background: var(--bg-primary); border: 1px dashed var(--border-color); border-radius: var(--radius-md); font-size: 14px; color: var(--text-primary); text-decoration: none; transition: var(--transition); cursor: pointer; white-space: nowrap; flex: 1 1 auto; min-width: 100px; max-width: 200px; box-sizing: border-box; } .tab-item:hover { background: var(--bg-tertiary); border-color: #2c3e50; color: #2c3e50; } .tab-item.active { background: #2c3e50; color: #fff; border: 1px solid #2c3e50; } /* 电脑端显示桌面文字,隐藏手机文字 */ .tab-text-desktop { display: inline; } .tab-text-mobile { display: none; } /* 手机端TAB导航适配 - 五个TAB项一行显示,文字双排,超过5个可滚动 */ @media (max-width: 768px) { .homepage-tabs { padding: 0; margin-bottom: 15px; overflow: hidden; position: relative; } /* 滑动指示 - 右侧渐变阴影 */ .homepage-tabs::after { content: ''; position: absolute; right: 0; top: 0; bottom: 0; width: 30px; background: linear-gradient(to right, transparent, rgba(255,255,255,0.9)); pointer-events: none; z-index: 2; } /* 滑动指示图标 */ .homepage-tabs::before { content: '‹'; position: absolute; left: 5px; top: 50%; transform: translateY(-50%); font-size: 18px; color: var(--primary-color); z-index: 3; pointer-events: none; animation: slideHint 1.5s ease-in-out infinite; } @keyframes slideHint { 0%, 100% { transform: translateY(-50%) translateX(0); opacity: 0.6; } 50% { transform: translateY(-50%) translateX(-3px); opacity: 1; } } /* TAB数量少于等于5个时不显示滑动指示且禁用滑动,TAB自适应宽度 */ .homepage-tabs.tabs-no-scroll::before, .homepage-tabs.tabs-no-scroll::after { display: none; } .homepage-tabs.tabs-no-scroll .tab-nav { overflow-x: visible; -webkit-overflow-scrolling: auto; } .homepage-tabs.tabs-no-scroll .tab-item { flex: 1 1 auto; min-width: auto; width: auto; } .tab-nav { display: flex; flex-direction: row; gap: 4px; padding: 1px; width: 100%; box-sizing: border-box; overflow-x: auto; -webkit-overflow-scrolling: touch; scrollbar-width: none; -ms-overflow-style: none; } .tab-nav::-webkit-scrollbar { display: none; } .tab-item { padding: 4px 2px; font-size: 13px; min-width: 20%; flex: 0 0 20%; width: 20%; text-align: center; line-height: 1.3; white-space: normal; box-sizing: border-box; } /* 手机端显示手机文字,隐藏桌面文字 */ .tab-text-desktop { display: none; } .tab-text-mobile { display: inline; } } /* ==================== 广告位 ==================== */ .ad-header { background: var(--bg-primary); padding: 15px 0; margin-bottom: 20px; border-bottom: 1px solid var(--border-color); } .ad-post-bottom { margin: 30px 0; padding: 20px; background: var(--bg-tertiary); border-radius: var(--radius-md); } /* ==================== 区块标题 ==================== */ .section-title { font-size: 18px; font-weight: 600; margin-bottom: 10px; padding-bottom: 10px; border-bottom: 2px solid var(--border-color); display: flex; align-items: center; gap: 8px; } .section-title i { color: var(--primary-color); } /* ==================== 置顶文章区域 ==================== */ .istop-section { background: var(--bg-primary); padding: 20px; border-radius: var(--radius-lg); margin-bottom: 20px; box-shadow: var(--shadow-sm); } .istop-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 15px; } .istop-item { position: relative; } .istop-link { display: block; border-radius: var(--radius-md); overflow: hidden; background: var(--bg-tertiary); transition: var(--transition); } .istop-link:hover { transform: translateY(-4px); box-shadow: var(--shadow-md); } .istop-thumb { position: relative; aspect-ratio: 16/10; overflow: hidden; } .istop-thumb img { width: 100%; height: 100%; object-fit: cover; transition: var(--transition); } .istop-link:hover .istop-thumb img { transform: scale(1.05); } .istop-badge { position: absolute; top: 10px; left: 10px; background: linear-gradient(135deg, #ff4d4f, #ff7875); color: white; padding: 4px 10px; border-radius: var(--radius-sm); font-size: 12px; font-weight: 600; } .istop-info { padding: 15px; } .istop-title { font-size: 14px; font-weight: 600; line-height: 1.5; margin-bottom: 10px; color: var(--text-primary); display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; } .istop-meta { display: flex; gap: 15px; font-size: 12px; color: var(--text-muted); } /* ==================== 文章列表 ==================== */ .post-list-section { background: var(--bg-primary); padding: 15px; border-radius: var(--radius-lg); box-shadow: var(--shadow-sm); } /* 横向排列的文章列表 */ .post-list { display: flex; flex-direction: column; } .post-item-row { display: flex; align-items: center; gap: 12px; padding: 10px 0; border-bottom: 1px solid var(--border-color); transition: var(--transition); } .post-item-row:hover { background: #f5f5f5; margin: 0 -10px; padding-left: 10px; padding-right: 10px; border-radius: var(--radius-sm); transform: translateX(4px); box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08); z-index: 10; } /* 鼠标悬停时标题变色 */ .post-item-row:hover .post-title a { color: var(--primary-color); } /* 鼠标悬停时电脑端布局标题变色 */ .post-item-row:hover .post-desktop-layout .post-title a { color: #1890ff; } .post-item-row:last-child { border-bottom: none; } /* 分类标签 */ .post-cate-badge { display: inline-flex; align-items: center; justify-content: center; padding: 4px 12px; border-radius: var(--radius-sm); font-size: 12px; font-weight: 500; color: white; flex-shrink: 0; min-width: 60px; text-align: center; } .post-list .post-cate-badge a { color: white; text-decoration: none; } .post-cate-badge:hover { opacity: 0.9; transform: translateY(-1px); } /* 置顶图标 */ .sticky-icon { display: inline-block; vertical-align: -2px; margin-right: 2px; margin-left: 2px; flex-shrink: 0; width: 13px; height: 13px; } /* 文章标题 */ .post-item-row .post-title { flex: 1; font-size: 15px; font-weight: 500; line-height: 1.5; margin: 0; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .post-item-row .post-title a { color: var(--text-primary); display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .post-item-row .post-title a:hover { color: var(--primary-color); } /* 置顶文章样式 */ .post-item-istop { background: linear-gradient(135deg, #fff9f0 0%, #fff5e6 100%); border-radius: var(--radius-md); padding-left: 12px; padding-right: 12px; margin: 0 -12px; } .post-item-istop:hover { background: linear-gradient(135deg, #fff0e0 0%, #ffe8d6 100%); border-radius: var(--radius-md); margin: 0 -12px; padding-left: 12px; padding-right: 12px; } .istop-badge { display: inline-flex; align-items: center; gap: 4px; padding: 2px 8px; background: #ff4d4f; color: white; font-size: 12px; font-weight: 600; border-radius: 4px; margin-right: 8px; flex-shrink: 0; } /* 置顶文章的分类名称背景色 */ .post-item-istop .post-cate-badge { background: #ff4d4f; } .istop-badge svg { flex-shrink: 0; } /* 置顶图标 */ .istop-icon { margin-right: 4px; vertical-align: text-bottom; } /* 日期 */ .post-date { font-size: 13px; color: var(--text-muted); flex-shrink: 0; font-family: 'Consolas', monospace; margin-right: 8px; } /* 今日更新的文章时间显示为红色 */ .post-date.today { color: #ff4d4f; font-weight: 600; } /* ==================== 文章列表新布局(电脑端) ==================== */ /* 电脑端布局 */ .post-desktop-layout { display: flex; gap: 15px; width: 100%; } /* 缩略图 */ .post-thumbnail { width: 180px; height: 138px; flex-shrink: 0; border-radius: var(--radius-md); overflow: hidden; background: var(--bg-tertiary); } .post-thumbnail a { display: block; width: 100%; height: 100%; } .post-thumbnail img { width: 100%; height: 100%; object-fit: cover; transition: var(--transition); } .post-thumbnail:hover img { transform: scale(1.05); } /* 内容区域 */ .post-content { flex: 1; display: flex; flex-direction: column; justify-content: space-between; min-width: 0; } /* 没有缩略图时内容区域占满宽度 */ .post-content-full { width: 100%; } /* 头部:分类和标题(仅文章列表) */ .post-desktop-layout .post-header { display: flex; align-items: center; gap: 10px; margin-bottom: 8px; } .post-desktop-layout .post-header .post-cate-badge { flex-shrink: 0; } .post-desktop-layout .post-header .post-title { flex: 1; font-size: 16px; font-weight: 600; line-height: 1.4; margin: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .post-desktop-layout .post-header .post-title a { color: var(--text-primary); text-decoration: none; } .post-desktop-layout .post-header .post-title a:hover { color: var(--primary-color); } /* 文章简介 */ .post-intro { font-size: 12px; color: var(--text-muted); line-height: 1.6; margin-bottom: 10px; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; max-height: 40px; } /* 底部信息(仅文章列表) */ .post-desktop-layout .post-meta { display: flex; justify-content: space-between; align-items: center; font-size: 12px; color: var(--text-muted); } .post-desktop-layout .post-meta-left { display: flex; gap: 12px; align-items: center; } .post-desktop-layout .post-meta-right { display: flex; gap: 15px; align-items: center; } .post-desktop-layout .post-author { color: var(--text-secondary); } .post-desktop-layout .post-tag { display: inline-block; padding: 2px 6px; background: var(--bg-tertiary); border-radius: var(--radius-sm); font-size: 11px; color: var(--text-secondary); margin-right: 6px; } .post-desktop-layout .post-tag a { color: var(--text-secondary); text-decoration: none; } .post-desktop-layout .post-tag a:hover { color: var(--primary-color); } .post-desktop-layout .post-views, .post-desktop-layout .post-likes { display: flex; align-items: center; gap: 4px; } .post-desktop-layout .post-views svg, .post-desktop-layout .post-likes svg { flex-shrink: 0; } /* 手机端布局(默认隐藏) */ .post-mobile-layout { display: none; } /* 手机端适配 */ @media (max-width: 768px) { /* 电脑端布局隐藏 */ .post-desktop-layout { display: none; } /* 手机端布局 */ .post-mobile-layout { display: block; width: 100%; padding: 10px 0; } .post-mobile-main { display: flex; align-items: center; gap: 12px; height: 75px; } .post-mobile-body { flex: 1; min-width: 0; display: flex; flex-direction: column; justify-content: space-between; height: 75px; } /* 分类和标题 - 固定两行高度,与缩略图上边对齐 */ .post-mobile-title { font-size: 15px; font-weight: 500; line-height: 1.5; margin: 0; word-wrap: break-word; word-break: break-all; overflow-wrap: break-word; height: 51px; min-height: 51px; max-height: 51px; overflow: hidden; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; } .post-mobile-title .post-cate-badge { display: inline-block; padding: 1px 5px; font-size: 10px; border-radius: 2px; line-height: 1.3; white-space: nowrap; margin-right: 5px; vertical-align: middle; background-color: #2c3e50; } .post-mobile-title .post-cate-badge a { color: #fff !important; } /* 手机端置顶文章的分类目录样式 - 与普通文章列表保持一致 */ .post-item-istop .post-cate-badge { display: inline-block; padding: 1px 5px; font-size: 10px; border-radius: 2px; line-height: 1.3; white-space: nowrap; margin-right: 5px; vertical-align: middle; min-width: auto; } .post-mobile-title > a { color: #333 !important; display: inline !important; white-space: normal !important; overflow: visible !important; text-overflow: clip !important; vertical-align: middle; } /* 手机端点击文章列表时标题变蓝色 */ .post-mobile-layout:active .post-mobile-title > a, .post-mobile-layout:focus .post-mobile-title > a, .post-mobile-layout:hover .post-mobile-title > a { color: #1890ff !important; } /* 底部信息 - 固定位置在底部,与缩略图下边对齐 */ .post-mobile-footer { display: flex; align-items: center; gap: 15px; font-size: 12px; color: #999; margin-top: 0; padding-top: 0; height: 24px; min-height: 24px; } .post-mobile-footer .post-mobile-date { color: #666; } .post-mobile-footer .post-mobile-date-today { color: #ff4444; } .post-mobile-footer .post-mobile-views::before { content: "👁 "; } .post-mobile-footer .post-mobile-likes::before { content: "❤ "; } /* 手机端缩略图 - 97:75 比例 */ .post-mobile-thumb { width: 97px; height: 75px; flex-shrink: 0; border-radius: 4px; overflow: hidden; background: #f5f5f5; align-self: flex-start; } .post-mobile-thumb img { width: 100%; height: 100%; object-fit: cover; } /* 恢复原有的文章列表样式 */ .post-item-row { display: flex; align-items: center; gap: 12px; padding: 10px 0; border-bottom: 1px solid var(--border-color); } } /* 旧的时间线样式保留(用于其他页面) */ .post-timeline { position: relative; } .post-timeline::before { content: ''; position: absolute; left: 35px; top: 0; bottom: 0; width: 2px; background: var(--border-color); } .post-item { display: flex; gap: 20px; padding: 20px 0; position: relative; } .post-item:not(:last-child) { border-bottom: 1px solid var(--border-color); } .post-time-badge { width: 70px; height: 70px; background: var(--bg-tertiary); border-radius: var(--radius-md); display: flex; flex-direction: column; align-items: center; justify-content: center; flex-shrink: 0; position: relative; z-index: 1; border: 2px solid var(--border-color); } .post-month { font-size: 12px; color: var(--text-muted); } .post-day { font-size: 24px; font-weight: 700; color: var(--primary-color); line-height: 1; } .post-content { flex: 1; min-width: 0; } .post-header { margin-bottom: 10px; } .post-category { display: inline-block; background: #2c3e50; color: #fff; padding: 2px 10px; border-radius: var(--radius-sm); font-size: 12px; margin-bottom: 8px; } .post-category a { color: #fff; } .post-title { font-size: 18px; font-weight: 600; line-height: 1.4; } .post-title a { color: var(--text-primary); } .post-title a:hover { color: var(--primary-color); } .post-excerpt { color: var(--text-secondary); margin-bottom: 12px; line-height: 1.8; } .post-meta { display: flex; align-items: center; gap: 20px; font-size: 13px; color: var(--text-muted); } .meta-item { display: flex; align-items: center; gap: 5px; } .meta-item a { color: var(--text-muted); } .meta-item a:hover { color: var(--primary-color); } .meta-icon { display: inline-block; vertical-align: -2px; width: 14px; height: 14px; } .read-more { margin-left: auto; color: var(--primary-color); font-weight: 500; } .read-more:hover { color: var(--primary-hover); } /* ==================== 分页 ==================== */ .pagination { display: flex; justify-content: center; align-items: center; gap: 5px; margin-top: 30px; padding-top: 20px; /* border-top: 1px solid var(--border-color);*/ flex-wrap: wrap; } .pagination a, .pagination span { display: inline-flex; align-items: center; justify-content: center; min-width: 40px; height: 40px; padding: 0 15px; border-radius: var(--radius-sm); font-size: 14px; transition: var(--transition); border: 1px solid var(--border-color); } .pagination a { background: var(--bg-primary); color: var(--text-primary); } .pagination a:hover { background: #2c3e50; color: white; border-color: #2c3e50; } .pagination span.current { background: #1890ff; color: white; border-color: #1890ff; font-weight: 600; } /* 首页、尾页、下一页按钮样式 */ .pagination a.page-first, .pagination a.page-last, .pagination a.page-next { background: var(--bg-tertiary); font-weight: 500; } .pagination a.page-first:hover, .pagination a.page-last:hover, .pagination a.page-next:hover { background: var(--primary-color); color: white; } /* 省略号样式 */ .pagination span.ellipsis { border: none; background: transparent; color: var(--text-muted); } /* ==================== 侧边栏 ==================== */ .widget { background: var(--bg-primary); border-radius: var(--radius-lg); padding: 20px; margin-bottom: 20px; box-shadow: var(--shadow-sm); } .widget-title { font-size: 16px; font-weight: 600; margin-bottom: 15px; padding-bottom: 10px; border-bottom: 2px solid var(--primary-color); display: flex; align-items: center; gap: 8px; } /* 标签云 */ .tag-cloud { display: grid; grid-template-columns: repeat(2, 1fr); gap: 8px; } .tag-cloud a { display: block; padding: 6px 10px; background: #f5f5f5; border-radius: var(--radius-sm); color: var(--text-secondary); font-size: 13px; transition: var(--transition); text-align: center; text-decoration: none; } .tag-cloud a:hover { background: #2c3e50; color: white; } /* 隐藏标签前面的符号 */ .tag-cloud a::before, .tag-cloud a::after { display: none !important; content: none !important; } /* 标签云列表去掉小圆点 */ .tag-cloud ul, .tag-cloud li { list-style: none !important; margin: 0; padding: 0; } .tag-cloud li::before, .tag-cloud li::after { display: none !important; content: none !important; } /* 文章列表 */ .post-list li { padding: 10px 0; border-bottom: 1px dashed var(--border-color); } .post-list li:last-child { border-bottom: none; } .post-list a { display: block; color: var(--text-primary); line-height: 1.5; } .post-list a:hover { color: var(--primary-color); } .post-time { font-size: 12px; color: var(--text-muted); margin-right: 8px; } /* 分类列表 */ .category-list li, .archive-list li { padding: 10px 0; border-bottom: 1px solid var(--border-color); } .category-list li:last-child, .archive-list li:last-child { border-bottom: none; } .category-list a, .archive-list a { display: flex; justify-content: space-between; align-items: center; color: var(--text-primary); } .category-list a:hover, .archive-list a:hover { color: var(--primary-color); } .cate-count, .archive-count { font-size: 12px; color: var(--text-muted); } /* ==================== 新侧边栏样式 ==================== */ /* 个人资料卡片 */ .widget-profile { padding: 0; overflow: hidden; } .profile-cover { width: 100%; height: 100px; overflow: hidden; } .profile-cover img { width: 100%; height: 100%; object-fit: cover; } .profile-avatar { width: 80px; height: 80px; margin: -40px auto 0; border-radius: 50%; border: 4px solid var(--bg-primary); overflow: hidden; background: var(--bg-primary); } .profile-avatar img { width: 100%; height: 100%; object-fit: cover; } .profile-info { text-align: center; padding: 10px 20px 15px; } .profile-name { font-size: 18px; font-weight: 600; color: var(--text-primary); margin-bottom: 5px; } .profile-desc { font-size: 13px; color: var(--text-secondary); } .profile-stats { display: flex; justify-content: center; gap: 30px; padding: 15px 20px; border-top: 1px solid var(--border-color); } .stat-item { text-align: center; } .stat-num { display: block; font-size: 20px; font-weight: 700; color: var(--text-primary); line-height: 1.2; } .stat-label { font-size: 12px; color: var(--text-muted); } .profile-social { display: flex; justify-content: center; gap: 15px; padding: 15px 20px; border-top: 1px solid var(--border-color); } .social-link { display: flex; align-items: center; justify-content: center; width: 32px; height: 32px; border-radius: 50%; transition: var(--transition); } .social-link:hover { transform: translateY(-3px); } .social-qq { color: #12B7F5; } .social-qq:hover { background: #12B7F5; color: white; } .social-wechat { color: #07C160; } .social-wechat:hover { background: #07C160; color: white; } .social-bilibili { color: #FB7299; } .social-bilibili:hover { background: #FB7299; color: white; } .social-weibo { color: #E6162D; } .social-weibo:hover { background: #E6162D; color: white; } .social-github { color: #24292E; } .social-github:hover { background: #24292E; color: white; } .social-rss { color: #F8981D; } .social-rss:hover { background: #F8981D; color: white; } /* 热门文章和随机文章(带缩略图) */ .widget-hot-thumb, .widget-random { padding: 15px; } .widget-hot-thumb .widget-title, .widget-random .widget-title { border-bottom: none; padding-bottom: 0; margin-bottom: 15px; } .title-icon { display: inline-block; width: 4px; height: 18px; background: #2c3e50; border-radius: 2px; margin-right: 8px; } /* 热门文章简化列表(无缩略图) */ .hot-post-list-simple { list-style: none; padding: 0; margin: 0; } .hot-post-list-simple li { margin-bottom: 8px; } .hot-post-list-simple li:last-child { margin-bottom: 0; } .hot-post-item-simple { display: block; text-decoration: none; padding: 6px 0; background: transparent; border-radius: 0; transition: var(--transition); } .hot-post-item-simple:hover { background: #2c3e50; padding: 6px 10px; border-radius: var(--radius-sm); } .hot-post-title-simple { font-size: 13px; font-weight: 500; line-height: 1.5; color: var(--text-primary); margin: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } .hot-post-item-simple:hover .hot-post-title-simple { color: white; } /* 随机文章简化列表(无缩略图) */ .random-post-list-simple { list-style: none; padding: 0; margin: 0; } .random-post-list-simple li { margin-bottom: 8px; } .random-post-list-simple li:last-child { margin-bottom: 0; } .random-post-item-simple { display: block; text-decoration: none; padding: 6px 0; background: transparent; border-radius: 0; transition: var(--transition); } .random-post-item-simple:hover { background: #2c3e50; padding: 6px 10px; border-radius: var(--radius-sm); } .random-post-title-simple { font-size: 13px; font-weight: 500; line-height: 1.5; color: var(--text-primary); margin: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } .random-post-item-simple:hover .random-post-title-simple { color: white; } /* 随机文章刷新按钮 */ .random-refresh-btn { margin-left: auto; background: transparent; border: none; color: var(--text-muted); cursor: pointer; padding: 4px; border-radius: 4px; transition: all 0.3s ease; display: flex; align-items: center; justify-content: center; } .random-refresh-btn:hover { background: var(--bg-tertiary); color: var(--primary-color); } .random-refresh-btn.rotating svg { animation: rotate 0.5s linear; } @keyframes rotate { from { transform: rotate(0deg); } to { transform: rotate(360deg); } } .hot-post-list { list-style: none; padding: 0; margin: 0; } .hot-post-list li { margin-bottom: 12px; } .hot-post-list li:last-child { margin-bottom: 0; } .hot-post-item { display: flex; gap: 12px; text-decoration: none; color: var(--text-primary); } .hot-post-thumb { width: 70px; height: 55px; border-radius: var(--radius-sm); overflow: hidden; flex-shrink: 0; } .hot-post-thumb img { width: 100%; height: 100%; object-fit: cover; transition: var(--transition); } .hot-post-item:hover .hot-post-thumb img { transform: scale(1.05); } .hot-post-info { flex: 1; min-width: 0; display: flex; flex-direction: column; justify-content: space-between; } .hot-post-title { font-size: 13px; font-weight: 500; line-height: 1.5; color: var(--text-primary); display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; margin: 0; } .hot-post-date { font-size: 12px; color: var(--text-muted); } /* 友情链接 */ .widget-links { padding: 15px; } .widget-links .widget-title { border-bottom: none; padding-bottom: 0; margin-bottom: 15px; } .links-list { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px; } .links-list a { display: block; padding: 8px 12px; background: var(--bg-tertiary); border-radius: var(--radius-sm); font-size: 13px; color: var(--text-secondary); text-decoration: none; transition: var(--transition); text-align: center; } .links-list a:hover { background: #2c3e50; color: white; } /* 标签列表 */ .widget-tag-list { padding: 15px; } .widget-tag-list .widget-title { font-size: 15px; border-bottom: none; padding-bottom: 0; margin-bottom: 15px; } .tag-list { display: flex; flex-wrap: wrap; gap: 8px; } .tag-item { display: inline-block; padding: 6px 14px; background: var(--bg-tertiary); border: 1px solid var(--border-color); border-radius: var(--radius-sm); font-size: 13px; color: var(--text-secondary); text-decoration: none; transition: var(--transition); } .tag-item:hover { background: var(--primary-color); border-color: var(--primary-color); color: white; } /* ==================== 文章详情页 ==================== */ .post-detail, .page-detail { background: #ffffff; border-radius: var(--radius-lg); padding: 20px 30px 30px; box-shadow: var(--shadow-sm); max-width: 1250px; margin: 0 auto; } /* 手机端文章页间距 */ @media (max-width: 767px) { .post-detail, .page-detail { padding: 15px 20px 20px; margin: 0 10px; } } .post-breadcrumb, .page-breadcrumb { font-size: 13px; color: #666666; margin-bottom: 15px; } .post-breadcrumb a, .page-breadcrumb a { color: #666666; font-size: 13px; transition: var(--transition); } .post-breadcrumb a:hover, .page-breadcrumb a:hover { color: var(--primary-color); } .post-breadcrumb .breadcrumb-cate, .page-breadcrumb .breadcrumb-cate { color: var(--primary-color); display: inline-block; padding: 4px 12px; background: var(--primary-light); border-radius: var(--radius-sm); } .post-breadcrumb .breadcrumb-cate:hover, .page-breadcrumb .breadcrumb-cate:hover { background: #2c3e50; color: white; } .separator { margin: 0 8px; color: #999999; } .post-detail .post-title, .page-title { font-size: 28px; font-weight: 700; line-height: 1.4; margin-bottom: 10px; color: #333333; } .page-header { margin-bottom: 5px; } .post-detail .post-meta { padding-bottom: 20px; border-bottom: 1px solid #e0e0e0; margin-bottom: 25px; color: #999999; } /* 文章分类 */ .post-categories { margin-bottom: 15px; font-size: 14px; } .cate-label { color: #666666; margin-right: 5px; } .cate-link { display: inline-block; padding: 4px 12px; background: var(--primary-light); color: var(--primary-color); border-radius: var(--radius-sm); font-size: 13px; transition: var(--transition); } .cate-link:hover { background: var(--primary-color); color: white; } .cate-separator { margin: 0 8px; color: #999999; } .post-content, .page-content { font-size: 15px; line-height: 1.8; color: #333333; word-wrap: break-word; overflow-wrap: break-word; word-break: break-word; } /* 文章内容中所有文本元素自动换行 */ .post-content *, .page-content * { word-wrap: break-word !important; overflow-wrap: break-word !important; word-break: break-word !important; text-wrap: wrap !important; white-space: normal !important; max-width: 100%; } /* 文章内容中的链接自动换行 */ .post-content a, .page-content a { word-break: break-all; } /* 页面内容第一个元素去除顶部margin */ .page-content > *:first-child { margin-top: 0; } .page-content > *:last-child { margin-bottom: 0; } .post-content h2, .post-content h3, .post-content h4, .page-content h2, .page-content h3, .page-content h4 { margin: 30px 0 15px; font-weight: 600; color: #333333; } .post-content h2, .page-content h2 { font-size: 22px; padding-bottom: 10px; border-bottom: 1px solid #e0e0e0; } .post-content h3, .page-content h3 { font-size: 18px; } .post-content p, .page-content p { margin-bottom: 15px; color: #333333; } .post-content img, .page-content img { border-radius: var(--radius-md); margin: 10px 0; max-width: 100%; height: auto; display: block; } /* 图片被包裹在p标签中时,去除p标签的额外间距 */ .post-content p:has(> img:only-child), .page-content p:has(> img:only-child) { margin-bottom: 0; } /* 连续图片之间的间距 */ .post-content img + img, .page-content img + img { margin-top: 5px; } .post-content ul, .post-content ol, .page-content ul, .page-content ol { margin: 15px 0; padding-left: 25px; color: #333333; } .post-content ul li, .page-content ul li { list-style: disc; margin-bottom: 8px; color: #333333; } .post-content ol li, .page-content ol li { list-style: decimal; color: #333333; margin-bottom: 8px; } .post-content blockquote, .page-content blockquote { border-left: 4px solid var(--primary-color); padding: 15px 20px; margin: 20px 0; background: #f5f5f5; border-radius: 0 var(--radius-md) var(--radius-md) 0; color: #666666; } .post-content code, .page-content code { background: #f5f5f5; padding: 2px 6px; border-radius: var(--radius-sm); font-family: 'Consolas', 'Monaco', monospace; font-size: 13px; word-break: break-all; overflow-wrap: break-word; color: #333333; } .post-content pre, .page-content pre { background: #2d2d2d; color: #f8f8f2; padding: 20px; border-radius: var(--radius-md); overflow-x: auto; margin: 20px 0; } .post-content pre code, .page-content pre code { background: none; padding: 0; word-break: break-all; overflow-wrap: break-word; white-space: pre-wrap; } /* 表格样式 - 防止内容超出容器 */ .post-content table, .page-content table { width: 100% !important; max-width: 100%; border-collapse: collapse; margin: 15px 0; font-size: 14px; table-layout: fixed; word-wrap: break-word; } .post-content table th, .post-content table td, .page-content table th, .page-content table td { padding: 10px 12px; border: 1px solid #e0e0e0; text-align: left; word-break: break-all; overflow-wrap: break-word; color: #333333; } .post-content table th, .page-content table th { background: #f5f5f5; font-weight: 600; color: #333333; } .post-content table tr:nth-child(even), .page-content table tr:nth-child(even) { background: #f9f9f9; } /* 文章标签 */ .post-tags { margin: 30px 0; padding: 20px 0; border-top: 1px solid #e0e0e0; border-bottom: 1px solid #e0e0e0; } .tags-label { color: #666666; margin-right: 10px; } .tag-link { display: inline-block; padding: 4px 12px; background: #f5f5f5; border-radius: var(--radius-sm); margin-right: 8px; margin-bottom: 8px; font-size: 13px; color: #666666; transition: var(--transition); } .tag-link:hover { background: var(--primary-color); color: white; } /* 文章导航 */ .post-navigation { display: flex; justify-content: space-between; gap: 20px; margin: 30px 0; padding: 20px; background: #f5f5f5; border-radius: var(--radius-md); } .nav-prev, .nav-next { flex: 1; } .nav-next { text-align: right; } .nav-label { display: block; font-size: 12px; color: #999999; margin-bottom: 5px; } .nav-prev a, .nav-next a { color: #333333; font-weight: 500; transition: var(--transition); } .nav-prev a:hover, .nav-next a:hover { background: var(--primary-color); color: white; padding: 5px 10px; border-radius: 4px; } .nav-empty { color: #999999; } /* 相关文章 */ .related-posts { margin: 30px 0; } .related-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 15px; } .related-item a { display: block; } .related-thumb { aspect-ratio: 16/10; border-radius: var(--radius-md); overflow: hidden; margin-bottom: 10px; } .related-thumb img { width: 100%; height: 100%; object-fit: cover; transition: var(--transition); } .related-item:hover .related-thumb img { transform: scale(1.05); } .related-title { font-size: 14px; font-weight: 500; line-height: 1.4; color: #333333; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; } /* ==================== 评论区 ==================== */ .comments-section { margin-top: 40px; padding-top: 30px; border-top: 1px solid var(--border-color); } .comments-title { font-size: 18px; font-weight: 600; margin-bottom: 20px; } .comments-count { font-size: 14px; color: var(--text-muted); font-weight: normal; } .comments-list { margin-bottom: 30px; } .comment-item { display: flex; gap: 15px; padding: 20px 0; border-bottom: 1px solid var(--border-color); } .comment-avatar { width: 48px; height: 48px; border-radius: 50%; overflow: hidden; flex-shrink: 0; } .comment-avatar img { width: 100%; height: 100%; object-fit: cover; } .comment-body { flex: 1; } .comment-header { margin-bottom: 8px; } .comment-author { font-weight: 600; color: var(--text-primary); margin-right: 10px; } .comment-time { font-size: 12px; color: var(--text-muted); } .comment-content { color: var(--text-secondary); line-height: 1.6; } .comment-actions { margin-top: 10px; } .comment-actions a { font-size: 13px; color: var(--primary-color); } .comments-empty { text-align: center; padding: 40px; color: var(--text-muted); } /* 评论表单 */ .comment-form-wrapper { background: var(--bg-tertiary); padding: 25px; border-radius: var(--radius-md); } .form-title { font-size: 16px; font-weight: 600; margin-bottom: 15px; } .form-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 15px; margin-bottom: 15px; } .form-group { margin-bottom: 15px; } .form-group input, .form-group textarea { width: 100%; padding: 12px; border: 1px solid var(--border-color); border-radius: var(--radius-sm); background: var(--bg-primary); transition: var(--transition); } .form-group input:focus, .form-group textarea:focus { outline: none; border-color: var(--primary-color); } .form-group textarea { resize: vertical; min-height: 120px; } .form-actions { display: flex; align-items: center; gap: 15px; } .btn { display: inline-flex; align-items: center; justify-content: center; gap: 5px; padding: 10px 24px; border-radius: var(--radius-sm); font-weight: 500; cursor: pointer; transition: var(--transition); border: none; } .btn-primary { background: #2c3e50; color: white; } .btn-primary:hover { background: #2c3e50; color: white; } .btn-secondary { background: var(--bg-secondary); color: var(--text-primary); } .btn-secondary:hover { background: var(--border-color); } /* ==================== 分类页 ==================== */ .category-header, .tag-header, .search-header { background: none; padding: 15px 0; border: none; margin-bottom: 15px; box-shadow: none; } .category-title, .tag-title, .search-title { font-size: 24px; font-weight: 700; margin-bottom: 10px; color: #000000; } .category-desc { color: #333333; margin-bottom: 10px; } .category-meta, .tag-meta, .search-info { color: var(--text-muted); font-size: 14px; } .sub-categories { background: var(--bg-primary); padding: 20px; border-radius: var(--radius-lg); margin-bottom: 20px; box-shadow: var(--shadow-sm); } .sub-cate-title { font-size: 16px; font-weight: 600; margin-bottom: 15px; } .sub-cate-list { display: flex; flex-wrap: wrap; gap: 10px; } .sub-cate-item { display: inline-flex; align-items: center; gap: 5px; padding: 8px 16px; background: var(--bg-tertiary); border-radius: var(--radius-sm); color: var(--text-primary); transition: var(--transition); } .sub-cate-item:hover { background: var(--primary-color); color: white; } .sub-cate-count { font-size: 12px; opacity: 0.8; } /* ==================== 404页面 ==================== */ .error-404 { background: var(--bg-primary); padding: 60px 40px; border-radius: var(--radius-lg); text-align: center; box-shadow: var(--shadow-sm); } .error-icon { margin-bottom: 20px; } .error-code { font-size: 120px; font-weight: 700; color: var(--primary-color); line-height: 1; opacity: 0.3; } .error-title { font-size: 24px; font-weight: 600; margin-bottom: 10px; } .error-desc { color: var(--text-secondary); margin-bottom: 25px; } .error-actions { display: flex; justify-content: center; gap: 15px; margin-bottom: 30px; } .search-empty { text-align: center; padding: 60px 40px; } .empty-icon { font-size: 64px; margin-bottom: 20px; opacity: 0.3; } .search-empty h3 { font-size: 20px; margin-bottom: 10px; } .search-empty p { color: var(--text-secondary); margin-bottom: 20px; } .search-form form { display: flex; gap: 10px; max-width: 400px; margin: 0 auto; } .search-form input { flex: 1; padding: 12px 15px; border: 1px solid var(--border-color); border-radius: var(--radius-sm); } .search-form button { padding: 12px 24px; background: var(--primary-color); color: white; border: none; border-radius: var(--radius-sm); cursor: pointer; } /* ==================== 页脚 ==================== */ .site-footer { background: var(--bg-primary); padding: 40px 0 20px; margin-top: 40px; /* border-top: 1px solid var(--border-color);*/ } .footer-inner { display: flex; flex-direction: column; gap: 10px; } .footer-info { text-align: center; color: var(--text-muted); font-size: 13px; } .footer-info p { margin-bottom: 10px; } .footer-info p:last-child { margin-bottom: 0; } .footer-copyright { display: inline; } .footer-icp { display: block; } .footer-icp .icp-icon { display: inline-block; vertical-align: -2px; margin-right: 4px; fill: currentColor; width: 13px; height: 13px; } .footer-links { text-align: center; } .footer-links h4 { font-size: 16px; font-weight: 600; margin-bottom: 15px; } .footer-links ul { display: flex; flex-wrap: wrap; gap: 15px; } .footer-links a { color: var(--text-secondary); } .footer-links a:hover { color: var(--primary-color); } .footer-info a { color: var(--text-secondary); } .footer-info a:hover { color: var(--primary-color); } /* PC端和移动端友情链接切换 */ .footer-links-mobile { display: none; } /* PC端友情链接样式 - 与移动端一致,单行显示 */ .footer-links-pc { display: block; font-size: 13px; color: var(--text-muted); } .footer-links-pc h4 { display: inline; font-size: 13px; font-weight: normal; margin: 0 5px 0 0; color: var(--text-secondary); } .footer-links-pc ul { display: inline; list-style: none; padding: 0; margin: 0; } .footer-links-pc li { display: inline; } .footer-links-pc a { color: var(--text-secondary); margin-right: 10px; } .footer-links-pc a:hover { color: var(--primary-color); } /* 移动端友情链接样式 */ .footer-links-mobile { font-size: 13px; color: var(--text-muted); text-align: left; } .footer-links-mobile .footer-links-label { color: var(--text-secondary); margin-right: 5px; } .footer-links-mobile ul { display: inline; list-style: none; padding: 0; margin: 0; } .footer-links-mobile li { display: inline; } .footer-links-mobile a { color: var(--text-secondary); margin-right: 10px; } .footer-links-mobile a:hover { color: var(--primary-color); } /* ==================== 返回顶部 ==================== */ .back-to-top { position: fixed; right: 30px; bottom: 30px; width: 44px; height: 44px; background: #2c3e50; color: white; border-radius: 50%; display: flex; align-items: center; justify-content: center; cursor: pointer; opacity: 0; visibility: hidden; transition: var(--transition); box-shadow: var(--shadow-md); z-index: 999; } .back-to-top.visible { opacity: 1; visibility: visible; } .back-to-top:hover { background: #2c3e50; transform: translateY(-4px); } /* ==================== 响应式设计 - 920px宽度优化 ==================== */ /* 桌面端:LOGO高出搜索框半个高度 */ @media (min-width: 921px) { .logo-section { margin-top: -22px; } } /* 平板和手机端适配 */ @media (max-width: 920px) { .container { max-width: 100%; padding: 0 15px; } .main-content.full-width { max-width: 100%; padding: 0; } .post-list-section { padding: 15px; margin: 0 -15px; } /* 手机端文章页内容区域无间距 */ .post-detail { margin: 0 -15px; padding: 20px 15px; } /* 手机端文章列表 */ .post-item-row { gap: 10px; padding: 12px 0; } .post-item-row:hover { margin: 0 -10px; padding-left: 10px; padding-right: 10px; } .post-cate-badge { padding: 3px 8px; font-size: 11px; min-width: 50px; } .post-item-row .post-title { font-size: 14px; } .post-date { font-size: 12px; } .post-item { flex-direction: column; padding: 15px 0; } .post-time-badge { width: auto; height: auto; flex-direction: row; gap: 5px; padding: 5px 10px; margin-bottom: 10px; } .post-day { font-size: 14px; } .post-timeline::before { display: none; } /* 手机端头部布局 */ .site-header { padding: 10px 0; } .site-header .container { padding: 0 15px; gap: 10px; } /* 手机端:LOGO和搜索框垂直排列 */ .header-top { flex-direction: row; flex-wrap: wrap; gap: 10px; align-items: center; justify-content: space-between; } .logo-section { margin-bottom: 0; flex: 0 0 auto; order: 1; } .logo-img { width: 150px; height: 35px; } .logo-text { font-size: 18px; } /* 手机端搜索框在LOGO下方,宽度100% */ .header-search { width: 100% !important; max-width: 100%; margin: 0; order: 3; flex: 0 0 100%; } /* 手机端热词区域固定位置 */ .hot-search-wrapper { order: 3; flex-basis: 100%; margin-top: 8px; } .header-search input { padding: 8px 35px 8px 12px; } /* 手机端导航栏横向排列 */ .main-nav { width: 100%; display: block; order: 3; padding: 4px 0; } .nav-list { display: flex; flex-direction: row; gap: 15px; justify-content: flex-start; flex-wrap: nowrap; overflow-x: auto; -webkit-overflow-scrolling: touch; scrollbar-width: none; -ms-overflow-style: none; align-items: center; min-height: 32px; } .nav-list::-webkit-scrollbar { display: none; } .nav-list li { flex-shrink: 0; } .nav-list a { font-size: 14px; padding: 6px 0; white-space: nowrap; line-height: 1.4; } /* 手机端求资源按钮样式 */ .nav-item-right a { padding: 5px 12px; border-radius: 14px; font-size: 13px; line-height: 1.3; } /* 手机端菜单按钮 */ .mobile-menu-btn { display: block !important; flex: 0 0 auto; order: 2; } /* 手机端导航菜单 */ .main-nav { display: none; } .pagination { flex-wrap: wrap; gap: 3px; } .pagination a, .pagination span { min-width: 36px; height: 36px; padding: 0 10px; font-size: 13px; } .footer-inner { flex-direction: column; text-align: center; gap: 8px; } /* PC端友情链接隐藏,移动端显示 */ .footer-links-pc { display: none; } .footer-links-mobile { display: inline; text-align: center; font-size: 12px; } .footer-info { text-align: center; line-height: 1.5; } .footer-info p { margin-bottom: 6px; } .footer-links { text-align: center; margin-top: 4px; } /* 手机端缩小页脚顶部间距 */ .site-footer { margin-top: 15px; padding-top: 20px; } } @media (max-width: 480px) { .container { padding: 0 10px; } .main-content.full-width { padding: 0; } .post-list-section { padding: 10px; margin: 0 -10px; } /* 手机端文章页内容区域无间距 */ .post-detail { margin: 0 -10px; padding: 15px 10px; } .section-title { font-size: 16px; } .post-title { font-size: 16px; } .post-excerpt { font-size: 13px; } .post-meta { flex-wrap: wrap; gap: 10px; font-size: 12px; } .pagination a, .pagination span { min-width: 32px; height: 32px; padding: 0 8px; font-size: 12px; } .post-detail .post-title, .page-title { font-size: 22px; } .error-code { font-size: 80px; } .pagination { flex-wrap: wrap; } /* 手机端标签间距缩小 */ .post-tags { margin: 15px 0; padding: 10px 0; } .tags-label { margin-right: 5px; } .tag-link { padding: 2px 6px; margin-right: 4px; margin-bottom: 4px; font-size: 12px; } .tag-icon { display: inline-block; vertical-align: -2px; width: 12px; height: 12px; } } /* ==================== 广告位样式 ==================== */ .ad-banner { width: 100%; max-width: 100%; margin: 15px 0; text-align: center; overflow: hidden; } .ad-banner img, .ad-banner iframe, .ad-banner > div { max-width: 100%; height: auto; display: inline-block; } /* 电脑端和手机端广告控制 */ .ad-pc { display: block !important; } .ad-mobile { display: none !important; } /* 首页广告位 */ .ad-home-top { margin-top: 0; margin-bottom: 15px; } .ad-home-bottom { margin-top: 15px; margin-bottom: 0; } .ad-home-list { margin: 10px 0; padding: 10px 0; border-top: 1px dashed #e8e8e8; border-bottom: 1px dashed #e8e8e8; } /* 文章页广告位 */ .ad-article-top { margin-top: 0; margin-bottom: 20px; } .ad-article-related { margin: 30px 0 20px; } /* 手机端广告显示控制 */ @media (max-width: 920px) { .ad-pc { display: none !important; } .ad-mobile { display: block !important; } } /* ==================== 打印样式 ==================== */ @media print { .site-header, .sidebar, .site-footer, .back-to-top, .comments-section, .post-navigation, .related-posts { display: none; } .main-content { width: 100%; } .post-detail { box-shadow: none; } } /* ==================== 图片灯箱样式 ==================== */ /* 灯箱遮罩层 */ .qxtool-lightbox { display: none; position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0, 0, 0, 0.9); z-index: 9999; opacity: 0; transition: opacity 0.3s ease; } .qxtool-lightbox.active { display: flex; opacity: 1; align-items: center; justify-content: center; } /* 灯箱图片容器 */ .qxtool-lightbox-content { position: relative; max-width: 90%; max-height: 90%; display: flex; align-items: center; justify-content: center; } /* 灯箱图片 */ .qxtool-lightbox-img { max-width: 100%; max-height: 90vh; object-fit: contain; border-radius: 4px; box-shadow: 0 4px 20px rgba(0, 0, 0, 0.5); transform: scale(0.9); transition: transform 0.3s ease; } .qxtool-lightbox.active .qxtool-lightbox-img { transform: scale(1); } /* 关闭按钮 */ .qxtool-lightbox-close { position: absolute; top: 20px; right: 20px; width: 44px; height: 44px; background: rgba(255, 255, 255, 0.1); border: none; border-radius: 50%; cursor: pointer; display: flex; align-items: center; justify-content: center; transition: all 0.3s ease; z-index: 10001; } .qxtool-lightbox-close:hover { background: rgba(255, 255, 255, 0.2); transform: rotate(90deg); } .qxtool-lightbox-close svg { width: 24px; height: 24px; fill: #fff; } /* 左右切换按钮 */ .qxtool-lightbox-prev, .qxtool-lightbox-next { position: absolute; top: 50%; transform: translateY(-50%); width: 50px; height: 50px; background: rgba(255, 255, 255, 0.1); border: none; border-radius: 50%; cursor: pointer; display: flex; align-items: center; justify-content: center; transition: all 0.3s ease; z-index: 10001; } .qxtool-lightbox-prev { left: 20px; } .qxtool-lightbox-next { right: 20px; } .qxtool-lightbox-prev:hover, .qxtool-lightbox-next:hover { background: rgba(255, 255, 255, 0.2); } .qxtool-lightbox-prev svg, .qxtool-lightbox-next svg { width: 24px; height: 24px; fill: #fff; } /* 图片计数器 */ .qxtool-lightbox-counter { position: absolute; bottom: 20px; left: 50%; transform: translateX(-50%); background: rgba(0, 0, 0, 0.6); color: #fff; padding: 8px 16px; border-radius: 20px; font-size: 14px; z-index: 10001; } /* 图片标题 */ .qxtool-lightbox-caption { position: absolute; bottom: 60px; left: 50%; transform: translateX(-50%); background: rgba(0, 0, 0, 0.6); color: #fff; padding: 10px 20px; border-radius: 4px; font-size: 14px; max-width: 80%; text-align: center; z-index: 10001; } /* 文章中的图片添加可点击光标 */ .post-content img { cursor: zoom-in; transition: opacity 0.3s ease; } .post-content img:hover { opacity: 0.9; } /* 加载动画 */ .qxtool-lightbox-loading { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); width: 50px; height: 50px; border: 3px solid rgba(255, 255, 255, 0.3); border-top-color: #fff; border-radius: 50%; animation: lightbox-spin 1s linear infinite; } @keyframes lightbox-spin { to { transform: translate(-50%, -50%) rotate(360deg); } } /* ==================== 灯箱移动端适配 ==================== */ @media (max-width: 768px) { .qxtool-lightbox-content { max-width: 100%; max-height: 100%; } .qxtool-lightbox-img { max-height: 80vh; border-radius: 0; } .qxtool-lightbox-close { top: 10px; right: 10px; width: 40px; height: 40px; } .qxtool-lightbox-close svg { width: 20px; height: 20px; } .qxtool-lightbox-prev, .qxtool-lightbox-next { width: 40px; height: 40px; } .qxtool-lightbox-prev { left: 10px; } .qxtool-lightbox-next { right: 10px; } .qxtool-lightbox-prev svg, .qxtool-lightbox-next svg { width: 20px; height: 20px; } .qxtool-lightbox-counter { bottom: 10px; font-size: 12px; padding: 6px 12px; } .qxtool-lightbox-caption { bottom: 50px; font-size: 12px; padding: 8px 16px; max-width: 90%; } } /* 小屏幕手机适配 */ @media (max-width: 480px) { .qxtool-lightbox-prev, .qxtool-lightbox-next { display: none; } .qxtool-lightbox-img { max-height: 75vh; } } /* ==================== 首页幻灯片样式 ==================== */ /* 幻灯片外层容器 */ .homepage-slider { width: 100%; max-width: 1200px; margin: 0 auto 30px; border-radius: var(--radius-lg); overflow: hidden; box-shadow: var(--shadow-md); } /* 幻灯片容器 */ .slider-container { position: relative; width: 100%; height: 220px; overflow: hidden; } /* 单个幻灯片 */ .slider-item { position: absolute; top: 0; left: 0; width: 100%; height: 100%; opacity: 0; transition: opacity 0.5s ease-in-out; } .slider-item:first-child { opacity: 1; } .slider-item a { display: block; width: 100%; height: 100%; position: relative; } .slider-item img { width: 100%; height: 100%; object-fit: cover; } /* 幻灯片标题 */ .slider-title { position: absolute; bottom: 0; left: 0; right: 0; padding: 15px 20px; background: linear-gradient(to top, rgba(0,0,0,0.7), transparent); color: white; font-size: 16px; font-weight: 500; text-shadow: 0 2px 4px rgba(0,0,0,0.3); text-align: center; } /* 左右切换按钮 */ .slider-btn { position: absolute; top: 50%; transform: translateY(-50%); width: 44px; height: 44px; background: rgba(0,0,0,0.3); border: none; border-radius: 50%; cursor: pointer; display: flex; align-items: center; justify-content: center; transition: all 0.3s ease; z-index: 10; opacity: 0; visibility: hidden; } /* 鼠标悬停在幻灯片区域时显示按钮 */ .homepage-slider:hover .slider-btn { opacity: 1; visibility: visible; } .slider-btn:hover { background: rgba(0,0,0,0.5); } .slider-btn-left { left: 15px; } .slider-btn-right { right: 15px; } .slider-btn svg { width: 20px; height: 20px; } /* 指示点容器 */ .slider-dots { position: absolute; bottom: 8px; left: 50%; transform: translateX(-50%); display: flex; gap: 6px; z-index: 10; } /* 单个指示点 */ .slider-dot { width: 6px; height: 6px; background: rgba(255,255,255,0.5); border-radius: 50%; cursor: pointer; transition: all 0.3s ease; } .slider-dot:hover { background: rgba(255,255,255,0.8); } .slider-dot.active { background: rgba(255,255,255,0.95); width: 16px; border-radius: 3px; } /* ==================== 幻灯片移动端适配 ==================== */ @media (max-width: 768px) { .slider-container { height: 180px; } .slider-title { padding: 12px 15px; font-size: 14px; } .slider-btn { width: 36px; height: 36px; background: rgba(0,0,0,0.15); } .slider-btn:hover { background: rgba(0,0,0,0.3); } .slider-btn-left { left: 10px; } .slider-btn-right { right: 10px; } .slider-btn svg { width: 16px; height: 16px; } .slider-dots { bottom: 6px; gap: 4px; } .slider-dot { width: 5px; height: 5px; } .slider-dot.active { width: 14px; } } @media (max-width: 480px) { .slider-container { height: 150px; } .slider-title { padding: 10px 12px; font-size: 13px; } } /* ==================== 评论区样式 - 简洁布局 ==================== */ /* 评论区整体容器 */ .comments-section { margin-top: 40px; padding-top: 30px; border-top: 1px solid var(--border-color); } /* 评论区标题 - 左侧显示 */ .comments-header { margin-bottom: 25px; } .comments-title { font-size: 18px; font-weight: 600; color: var(--text-primary); display: flex; align-items: center; gap: 8px; } .comments-title svg { color: var(--primary-color); width: 20px; height: 20px; } .comments-count { color: var(--text-muted); font-weight: 400; } /* 评论列表 */ .commentlist { list-style: none; padding: 0; margin: 0; } /* 单条评论 - 简洁布局 */ .comment-item { display: flex; gap: 15px; padding: 20px 0; border-bottom: 1px solid var(--border-color); } .comment-item:last-child { border-bottom: none; } /* 评论头像 */ .comment-avatar { width: 48px; height: 48px; border-radius: 50%; overflow: hidden; flex-shrink: 0; } .comment-avatar img { width: 100%; height: 100%; object-fit: cover; } /* 评论内容区域 */ .comment-body { flex: 1; min-width: 0; } /* 评论头部信息 - 作者和时间在一行 */ .comment-header { margin-bottom: 8px; display: flex; align-items: center; gap: 8px; } .comment-author { font-weight: 500; color: var(--text-primary); font-size: 15px; } .comment-time { font-size: 13px; color: var(--text-muted); } /* 评论元信息 - 作者和时间 */ .comment-meta { display: flex; align-items: center; gap: 4px; } /* 回复按钮 - 按钮样式 */ .comment-reply { font-size: 13px; color: #fff; background: #2c3e50; padding: 4px 12px; border-radius: 4px; margin-left: auto; opacity: 0; transition: opacity 0.2s ease; cursor: pointer; text-decoration: none; } .comment-reply:hover { background: #34495e; text-decoration: none; color: #fff; } .comment-item:hover .comment-reply { opacity: 1; } /* 评论内容 */ .comment-content { font-size: 14px; line-height: 1.7; color: var(--text-secondary); } .comment-content p { margin-bottom: 8px; } .comment-content p:last-child { margin-bottom: 0; } /* 子评论 */ .comment-children { margin-left: 63px; margin-top: 15px; } .comment-children .comment-item { padding: 15px 0; } .comment-children .comment-avatar { width: 40px; height: 40px; } /* 评论翻页 */ .commentpagebar { margin-top: 30px; text-align: center; } .commentpagebar a, .commentpagebar span { display: inline-block; padding: 8px 16px; margin: 0 4px; border-radius: var(--radius-sm); border: 1px solid var(--border-color); background: var(--bg-primary); font-size: 14px; color: var(--text-secondary); transition: var(--transition); } .commentpagebar a:hover { color: var(--primary-color); border-color: var(--primary-color); text-decoration: none; } .commentpagebar .current { color: var(--primary-color); border-color: var(--primary-color); background: var(--primary-light); } /* ==================== 评论表单样式 - 简洁布局 ==================== */ .comment-form-section { margin-top: 40px; } .comment-form-title { font-size: 18px; font-weight: 600; color: var(--text-primary); margin-bottom: 20px; } /* 已登录信息 */ .logged-in-info { padding: 12px 16px; background: var(--bg-tertiary); border-radius: var(--radius-sm); margin-bottom: 15px; border: 1px solid var(--border-color); font-size: 14px; color: var(--text-secondary); } .logged-in-info strong { color: var(--primary-color); font-weight: 500; } /* 表单布局 */ .comment-author-info { margin-bottom: 15px; } .form-row { display: flex; gap: 15px; margin-bottom: 15px; } .form-group { flex: 1; } .form-group input { width: 100%; padding: 12px 15px; border: 1px solid var(--border-color); border-radius: var(--radius-sm); font-size: 14px; background: var(--bg-primary); transition: var(--transition); } .form-group input:focus { outline: none; border-color: #2c3e50; } .form-group input::placeholder { color: var(--text-muted); } /* 验证码行 */ .verify-row { align-items: center; } .verify-group { flex: 0 0 200px; } .verify-image img { height: 44px; border-radius: var(--radius-sm); cursor: pointer; border: 1px solid var(--border-color); } /* 评论文本框 */ .comment-textarea-wrapper { margin-bottom: 15px; } .comment-textarea { width: 100%; min-height: 120px; padding: 15px; border: 1px solid var(--border-color); border-radius: var(--radius-sm); font-size: 14px; line-height: 1.6; background: var(--bg-primary); resize: vertical; font-family: inherit; } .comment-textarea:focus { outline: none; border-color: #2c3e50; } .comment-textarea::placeholder { color: var(--text-muted); } /* 表单底部 - 提交按钮右对齐 */ .comment-form-footer { display: flex; justify-content: flex-end; } .comment-submit-btn { padding: 12px 30px; background: #2c3e50; color: white; border: none; border-radius: var(--radius-sm); font-size: 14px; font-weight: 500; cursor: pointer; transition: var(--transition); } .comment-submit-btn:hover { background: #34495e; } /* ==================== 评论区移动端适配 ==================== */ @media (max-width: 768px) { .comments-section { margin-top: 30px; padding-top: 20px; } .comment-item { gap: 12px; padding: 15px 0; } .comment-avatar { width: 40px; height: 40px; } .comment-author { font-size: 14px; } .comment-time { font-size: 12px; } .comment-reply { opacity: 0; font-size: 12px; padding: 3px 10px; } .comment-item:hover .comment-reply { opacity: 1; } .comment-content { font-size: 13px; } .comment-children { margin-left: 52px; } .comment-children .comment-avatar { width: 32px; height: 32px; } .form-row { flex-direction: column; gap: 12px; } .verify-row { flex-direction: row; } .verify-group { flex: 1; } .comment-textarea { min-height: 100px; } } @media (max-width: 480px) { .comments-title { font-size: 16px; } .comment-item { gap: 10px; padding: 12px 0; } .comment-avatar { width: 36px; height: 36px; } .comment-content { font-size: 12px; } .comment-children { margin-left: 46px; } .comment-children .comment-avatar { width: 28px; height: 28px; } .form-group input { padding: 10px 12px; font-size: 13px; } .comment-textarea { min-height: 80px; padding: 12px; font-size: 13px; } .comment-submit-btn { padding: 10px 24px; font-size: 13px; } } /* ==================== Single.php 文章页样式 ==================== */ /* 点赞和打赏按钮区域 */ .post-action-section { text-align: center; margin: 30px 0; } .post-action-section .like-btn, .post-action-section .reward-btn { margin: 0 10px; } /* 隐藏内容样式 */ .hide-content-wrapper { margin: 20px 0; border: 1px solid #e0f0e0; border-radius: 8px; overflow: hidden; background: #f8fdf8; } .hide-content-mask { display: flex; padding: 15px; gap: 15px; align-items: center; } .hide-content-left { flex: 0 0 100px; text-align: center; } .hide-content-left img { width: 100px; height: 100px; border-radius: 4px; } .hide-content-right { flex: 1; } .hide-content-title { font-size: 14px; color: #ff6b6b; margin-bottom: 10px; font-weight: 500; } .hide-content-form { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; } .hide-label { font-size: 13px; color: #ff6b6b; font-weight: 600; } .hide-password-input { padding: 6px 10px; border: 1px solid #d9d9d9; border-radius: 4px; font-size: 13px; width: 120px; } .hide-submit-btn { padding: 6px 12px; background: #40a9ff; color: white; border: none; border-radius: 4px; font-size: 13px; cursor: pointer; transition: all 0.3s ease; } .hide-submit-btn:hover { background: #1890ff; } .hide-content-real { padding: 20px; background: #fff; border-top: 1px solid #e8e8e8; } /* 小程序版隐藏内容样式 */ .hide-content-mp-wrapper { border-color: #e6f7ff; background: #f0f8ff; } .hide-content-mp-wrapper .hide-content-title { color: #1890ff; } .hide-content-mp-wrapper .hide-label { color: #1890ff; } .hide-submit-mp-btn { background: #52c41a; } .hide-submit-mp-btn:hover { background: #389e0d; } @media (max-width: 600px) { .hide-content-mask { padding: 10px; gap: 10px; } .hide-content-left { flex: 0 0 80px; } .hide-content-left img { width: 80px; height: 80px; } .hide-content-title { font-size: 12px; margin-bottom: 8px; } .hide-label { font-size: 12px; } .hide-password-input { padding: 5px 8px; font-size: 12px; width: 100px; } .hide-submit-btn { padding: 5px 10px; font-size: 12px; } } /* 点赞按钮样式 */ .like-btn { padding: 6px 14px; background: transparent; color: #2c3e50; border: 2px dashed #2c3e50; border-radius: 25px; font-size: 14px; cursor: pointer; transition: all 0.3s ease; display: inline-flex; align-items: center; gap: 6px; } .like-btn:hover { background: #2c3e50; color: white; border-style: solid; transform: translateY(-2px); } .like-btn.liked { background: transparent; color: #2c3e50; border-color: #2c3e50; } .like-btn.liked:hover { background: #2c3e50; color: white; } .like-btn:focus, .like-btn:active, .like-btn.liked:focus, .like-btn.liked:active { outline: none; box-shadow: none; } .like-btn .like-count { margin-left: 5px; font-weight: 600; } .like-btn svg { display: block; flex-shrink: 0; } .reward-btn { padding: 6px 18px; background: transparent; color: #ff6b6b; border: 2px dashed #ff6b6b; border-radius: 25px; font-size: 14px; cursor: pointer; transition: all 0.3s ease; display: inline-flex; align-items: center; gap: 6px; } .reward-btn:hover { background: #ff6b6b; color: white; border-style: solid; transform: translateY(-2px); } .reward-btn svg { display: block; flex-shrink: 0; } /* 打赏弹窗样式 */ .reward-modal { display: none; position: fixed; z-index: 9999; left: 0; top: 0; width: 100%; height: 100%; background: rgba(0,0,0,0.5); } .reward-modal-content { background: #fff; margin: 10% auto; padding: 0; border-radius: 8px; width: 90%; max-width: 320px; box-shadow: 0 4px 20px rgba(0,0,0,0.2); text-align: center; } .reward-modal-header { padding: 15px 20px; border-bottom: 1px solid #eee; display: flex; justify-content: space-between; align-items: center; } .reward-modal-header h3 { margin: 0; font-size: 18px; color: #333; } .reward-close { font-size: 28px; font-weight: bold; color: #aaa; cursor: pointer; } .reward-close:hover { color: #000; } .reward-modal-body { padding: 20px; } .reward-modal-body .reward-text { font-size: 14px; color: #666; line-height: 1.6; margin-bottom: 20px; } .reward-modal-body .reward-qrcode { display: inline-block; padding: 10px; background: #f5f5f5; border-radius: 8px; } .reward-modal-body .reward-qrcode img { width: 130px; height: 130px; display: block; border-radius: 4px; } /* 反馈按钮样式 */ .feedback-btn { float: right; padding: 4px 12px; background: #ff4d4f; color: white; border: none; border-radius: 4px; font-size: 12px; cursor: pointer; transition: all 0.3s; margin-left: 8px; display: inline-flex; align-items: center; gap: 4px; } .feedback-btn:hover { background: #ff7875; } .feedback-btn svg { display: block; flex-shrink: 0; } /* 求资源按钮样式 */ .request-btn { float: right; padding: 4px 12px; background: #2c3e50; color: white; border: none; border-radius: 4px; font-size: 12px; cursor: pointer; transition: all 0.3s; margin-left: 8px; display: inline-flex; align-items: center; gap: 4px; } .request-btn:hover { background: #2c3e50; } .request-btn svg { display: block; flex-shrink: 0; } /* 反馈弹窗样式 */ .feedback-modal { display: none; position: fixed; z-index: 9999; left: 0; top: 0; width: 100%; height: 100%; background: rgba(0,0,0,0.5); } .feedback-modal-content { background: #fff; margin: 10% auto; padding: 0; border-radius: 8px; width: 90%; max-width: 500px; box-shadow: 0 4px 20px rgba(0,0,0,0.2); } .feedback-modal-header { padding: 15px 20px; border-bottom: 1px solid #eee; display: flex; justify-content: space-between; align-items: center; } .feedback-modal-header h3 { margin: 0; font-size: 18px; } .feedback-close { font-size: 28px; font-weight: bold; color: #aaa; cursor: pointer; } .feedback-close:hover { color: #000; } .feedback-modal-body { padding: 20px; } .feedback-modal-body .form-group { margin-bottom: 15px; } .feedback-modal-body label { display: block; margin-bottom: 5px; font-weight: 500; } .feedback-modal-body input, .feedback-modal-body select, .feedback-modal-body textarea { width: 100%; padding: 10px; border: 1px solid #ddd; border-radius: 4px; font-size: 14px; background: white; color: #333; } .feedback-modal-body textarea { resize: vertical; } .form-actions { display: flex; gap: 10px; justify-content: flex-end; margin-top: 20px; } .btn-submit { padding: 10px 24px; background: #2c3e50; color: white; border: none; border-radius: 4px; cursor: pointer; } .btn-submit:hover { background: #2c3e50; } .btn-cancel { padding: 10px 24px; background: #f5f5f5; color: #666; border: 1px solid #d9d9d9; border-radius: 4px; cursor: pointer; } .btn-cancel:hover { border-color: #1890ff; color: #1890ff; } /* 求资源弹窗样式 */ .request-modal { display: none; position: fixed; z-index: 9999; left: 0; top: 0; width: 100%; height: 100%; background: rgba(0,0,0,0.5); } .request-modal-content { background: white; margin: 10% auto; padding: 0; border-radius: 8px; width: 90%; max-width: 500px; box-shadow: 0 4px 12px rgba(0,0,0,0.15); } .request-modal-header { padding: 16px 24px; border-bottom: 1px solid #e8e8e8; display: flex; justify-content: space-between; align-items: center; } .request-modal-header h3 { margin: 0; font-size: 18px; color: #333; } .request-close { font-size: 24px; color: #999; cursor: pointer; line-height: 1; } .request-close:hover { color: #666; } .request-modal-body { padding: 24px; } /* 网盘资源区域样式 */ .post-pan-links { background: linear-gradient(135deg, #f5f7fa 0%, #e4e7ed 100%); border: 1px solid #dcdfe6; border-radius: 8px; padding: 20px; margin: 20px 0; } .post-pan-links { position: relative; padding-top: 65px; } .post-pan-links h4 { position: absolute; top: -1px; left: -1px; margin: 0; font-size: 16px; color: #fff; display: inline-flex; align-items: center; gap: 8px; background: #2c3e50; padding: 10px 20px; border-radius: 8px 0 20px 0; box-shadow: 2px 2px 8px rgba(44, 62, 80, 0.3); border: 1px solid #2c3e50; z-index: 1; } .pan-links-list { display: flex; flex-wrap: wrap; gap: 10px; } .pan-link-item { display: inline-flex; align-items: center; gap: 8px; padding: 10px 20px; background: linear-gradient(135deg, #1890ff 0%, #40a9ff 100%); color: #fff; text-decoration: none; border-radius: 6px; font-size: 14px; transition: all 0.3s ease; box-shadow: 0 2px 8px rgba(24, 144, 255, 0.3); } .pan-link-item:hover { background: linear-gradient(135deg, #40a9ff 0%, #1890ff 100%); box-shadow: 0 4px 12px rgba(24, 144, 255, 0.4); transform: translateY(-2px); color: #2c3e50; } .pan-link-item .pan-icon { font-size: 12px; } /* 拓展说明样式 */ .extend-links { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 15px; padding-top: 15px; border-top: 1px dashed #dcdfe6; } .extend-link-item { display: inline-flex; align-items: center; justify-content: center; padding: 4px 12px; background: #fff; border: 1px solid #dcdfe6; border-radius: 6px; font-size: 13px; color: #606266; text-decoration: none; transition: all 0.3s ease; flex: 0 0 calc(50% - 5px); box-sizing: border-box; line-height: 1.4; } .extend-link-item:hover { background: #f5f7fa; border-color: #1890ff; color: #1890ff; } /* 文章声明样式 */ .post-article-notice { margin: 30px 0; padding: 20px; background: #f5f5f5; border-radius: 8px; } .post-article-notice .notice-header { display: flex; align-items: center; justify-content: center; gap: 15px; margin-bottom: 15px; } .post-article-notice .notice-line { flex: 1; height: 1px; background: #ccc; max-width: 100px; } .post-article-notice .notice-title { font-size: 16px; font-weight: 600; color: #333; white-space: nowrap; } .post-article-notice .notice-text { font-size: 14px; line-height: 1.8; color: #666; text-align: left; } .post-article-notice .notice-text p { margin: 0 0 10px 0; } .post-article-notice .notice-text p:last-child { margin-bottom: 0; } .post-article-notice .notice-text a { color: #1890ff; text-decoration: underline; } .post-article-notice .notice-text a:hover { color: #40a9ff; } /* 上一篇/下一篇导航样式 */ .post-navigation { display: flex; justify-content: space-between; align-items: center; gap: 15px; margin: 30px 0; padding: 0; } .nav-prev, .nav-next { flex: 1; } .nav-next { text-align: right; } .nav-link { display: inline-flex; align-items: center; justify-content: center; gap: 6px; padding: 12px 24px; background: linear-gradient(135deg, #f5f7fa 0%, #e4e7ed 100%); border: 1px solid #dcdfe6; border-radius: 25px; text-decoration: none; color: #606266; font-size: 14px; font-weight: 500; transition: all 0.3s ease; min-width: 100px; } .nav-link:hover { background: linear-gradient(135deg, #1890ff 0%, #40a9ff 100%); border-color: #1890ff; color: #fff; box-shadow: 0 4px 12px rgba(24, 144, 255, 0.3); transform: translateY(-2px); } /* 主导航菜单链接悬停样式覆盖 */ .nav-list .nav-link:hover { background: transparent !important; border-color: transparent !important; box-shadow: none !important; transform: none !important; color: #ffffff !important; } .nav-link.disabled { background: #f5f7fa; border-color: #e4e7ed; color: #c0c4cc; cursor: not-allowed; transform: none; box-shadow: none; } .nav-icon { font-size: 20px; font-weight: 300; line-height: 1; } .nav-text { white-space: nowrap; } @media (max-width: 768px) { .post-navigation { gap: 10px; } .nav-link { padding: 10px 18px; min-width: 80px; font-size: 13px; } .nav-icon { font-size: 18px; } /* 手机端反馈和求资源按钮内边距缩小 */ .feedback-btn { padding: 4px 8px; } .request-btn { padding: 4px 8px; } } /* 相关文章样式 - 极简风格 */ .recommend-articles-section { margin: 30px 0; padding: 0; background: none; border: none; } .recommend-header { display: flex; align-items: center; justify-content: center; gap: 10px; margin-bottom: 15px; } .recommend-line { flex: 1; height: 1px; background: #ddd; max-width: 60px; } .recommend-title { font-size: 16px; font-weight: 700; color: #000; white-space: nowrap; } .recommend-cards { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; } .recommend-card { display: flex; flex-direction: column; background: #fff; border-radius: 8px; overflow: hidden; box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08); transition: all 0.3s ease; text-decoration: none; } .recommend-card:hover { transform: translateY(-5px); box-shadow: 0 8px 24px rgba(0, 0, 0, 0.15); } .recommend-card-thumb { width: 100%; height: 120px; overflow: hidden; } .recommend-card-thumb img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.3s ease; } .recommend-card:hover .recommend-card-thumb img { transform: scale(1.05); } .recommend-card-title { padding: 10px 12px; font-size: 12px; color: #333; line-height: 1.5; overflow: hidden; text-overflow: ellipsis; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; } .recommend-card:hover .recommend-card-title { color: #1890ff; } @media (max-width: 768px) { .recommend-cards { grid-template-columns: repeat(2, 1fr); gap: 12px; } .recommend-card-thumb { height: 90px; } .recommend-card-title { padding: 8px; font-size: 11px; line-height: 1.5; } .recommend-line { max-width: 40px; } /* 拓展说明手机端样式 - 一排显示1个 */ .extend-links { gap: 8px; } .extend-link-item { flex: 0 0 100%; padding: 10px 16px; font-size: 14px; } /* 网盘资源手机端样式 - 一排显示3个 */ .pan-links-list { gap: 8px; } .pan-link-item { flex: 0 0 calc(33.333% - 6px); padding: 10px 8px; font-size: 13px; justify-content: center; } .pan-link-item .pan-icon { display: none; } } /* ==================== 横版图片文章模板样式 ==================== */ /* 横版图片卡片网格 */ .horizontal-gallery-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 20px; margin: 20px 0; } /* 横版图片卡片 */ .horizontal-gallery-card { cursor: pointer; transition: transform 0.3s ease, box-shadow 0.3s ease; border-radius: var(--radius-md); overflow: hidden; background: var(--bg-primary); box-shadow: var(--shadow-sm); } .horizontal-gallery-card:hover { transform: translateY(-4px); box-shadow: var(--shadow-md); } /* 卡片图片容器 - 横版比例 16:9 */ .horizontal-card-image { position: relative; aspect-ratio: 16 / 9; overflow: hidden; background: var(--bg-tertiary); } .horizontal-card-image img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.3s ease; } .horizontal-gallery-card:hover .horizontal-card-image img { transform: scale(1.05); } /* 悬停覆盖层 */ .horizontal-card-overlay { position: absolute; top: 0; left: 0; right: 0; bottom: 0; background: rgba(0, 0, 0, 0.4); display: flex; align-items: center; justify-content: center; opacity: 0; transition: opacity 0.3s ease; } .horizontal-gallery-card:hover .horizontal-card-overlay { opacity: 1; } /* 卡片标题 */ .horizontal-card-title { padding: 10px 12px; font-size: 13px; color: var(--text-primary); text-align: center; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; background: var(--bg-primary); } /* 灯箱样式 */ .lightbox { display: none; position: fixed; top: 0; left: 0; right: 0; bottom: 0; background: rgba(0, 0, 0, 0.95); z-index: 9999; opacity: 0; transition: opacity 0.3s ease; } .lightbox.active { display: flex; opacity: 1; } .lightbox-content { position: relative; width: 100%; height: 100%; display: flex; align-items: center; justify-content: center; padding: 60px 80px; } .lightbox-image { max-width: 100%; max-height: 100%; object-fit: contain; border-radius: var(--radius-md); } .lightbox-close { position: absolute; top: 20px; right: 20px; width: 48px; height: 48px; background: rgba(255, 255, 255, 0.1); border: none; border-radius: 50%; cursor: pointer; display: flex; align-items: center; justify-content: center; transition: background 0.3s ease; z-index: 10; } .lightbox-close:hover { background: rgba(255, 255, 255, 0.2); } .lightbox-close svg { width: 24px; height: 24px; } .lightbox-nav { position: absolute; top: 50%; transform: translateY(-50%); width: 56px; height: 56px; background: rgba(255, 255, 255, 0.1); border: none; border-radius: 50%; cursor: pointer; display: flex; align-items: center; justify-content: center; transition: background 0.3s ease; z-index: 10; } .lightbox-nav:hover { background: rgba(255, 255, 255, 0.2); } .lightbox-nav svg { width: 28px; height: 28px; } .lightbox-prev { left: 20px; } .lightbox-next { right: 20px; } .lightbox-counter { position: absolute; top: 20px; left: 50%; transform: translateX(-50%); color: white; font-size: 14px; background: rgba(255, 255, 255, 0.1); padding: 8px 16px; border-radius: var(--radius-md); } .lightbox-loading { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); width: 40px; height: 40px; border: 3px solid rgba(255, 255, 255, 0.3); border-top-color: white; border-radius: 50%; animation: lightbox-spin 1s linear infinite; display: none; } .lightbox-loading.active { display: block; } @keyframes lightbox-spin { to { transform: rotate(360deg); } } .lightbox-caption { position: absolute; bottom: 20px; left: 50%; transform: translateX(-50%); color: white; font-size: 14px; text-align: center; max-width: 80%; padding: 10px 20px; background: rgba(0, 0, 0, 0.5); border-radius: var(--radius-md); } /* 响应式 - 手机端一排2张 */ @media (max-width: 768px) { .horizontal-gallery-grid { grid-template-columns: repeat(2, 1fr); gap: 12px; margin: 15px 0; } .horizontal-card-title { padding: 8px; font-size: 12px; } /* 灯箱手机端优化 */ .lightbox-content { padding: 50px 50px; } .lightbox-nav { width: 44px; height: 44px; } .lightbox-prev { left: 10px; } .lightbox-next { right: 10px; } .lightbox-close { top: 10px; right: 10px; width: 40px; height: 40px; } .lightbox-counter { top: 10px; font-size: 13px; padding: 6px 12px; } .lightbox-caption { bottom: 10px; font-size: 13px; max-width: 90%; } } @media (max-width: 480px) { .horizontal-gallery-grid { gap: 8px; } .lightbox-content { padding: 40px 40px; } } /* ==================== 竖版图片文章模板样式 ==================== */ /* 竖版图片卡片网格 */ .vertical-gallery-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 20px; margin: 20px 0; } /* 竖版图片卡片 */ .vertical-gallery-card { cursor: pointer; transition: transform 0.3s ease, box-shadow 0.3s ease; border-radius: var(--radius-md); overflow: hidden; background: var(--bg-primary); box-shadow: var(--shadow-sm); } .vertical-gallery-card:hover { transform: translateY(-4px); box-shadow: var(--shadow-md); } /* 卡片图片容器 - 竖版比例 3:4 */ .vertical-card-image { position: relative; aspect-ratio: 3 / 4; overflow: hidden; background: var(--bg-tertiary); } .vertical-card-image img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.3s ease; } .vertical-gallery-card:hover .vertical-card-image img { transform: scale(1.05); } /* 悬停覆盖层 */ .vertical-card-overlay { position: absolute; top: 0; left: 0; right: 0; bottom: 0; background: rgba(0, 0, 0, 0.4); display: flex; align-items: center; justify-content: center; opacity: 0; transition: opacity 0.3s ease; } .vertical-gallery-card:hover .vertical-card-overlay { opacity: 1; } /* 卡片标题 */ .vertical-card-title { padding: 10px 12px; font-size: 13px; color: var(--text-primary); text-align: center; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; background: var(--bg-primary); } /* 响应式 - 手机端 */ @media (max-width: 768px) { .vertical-gallery-grid { grid-template-columns: repeat(2, 1fr); gap: 12px; margin: 15px 0; } .vertical-card-title { padding: 8px; font-size: 12px; } } @media (max-width: 480px) { .vertical-gallery-grid { gap: 8px; } } /* ==================== 图片分类模板样式 ==================== */ /* 图片分类页面容器 - 无侧边栏 */ .category-images-wrapper { max-width: 1200px; margin: 0 auto; } .category-images-main { width: 100%; max-width: 100%; } /* 图片卡片网格 - 电脑端一排4个 */ .image-cards-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; margin: 20px 0; } /* 图片卡片项 */ .image-card-item { position: relative; } .image-card-link { display: block; text-decoration: none; } /* 图片卡片缩略图容器 - 竖版比例 3:4 */ .image-card-thumb { position: relative; aspect-ratio: 3 / 4; overflow: hidden; border-radius: var(--radius-md); background: var(--bg-tertiary); box-shadow: var(--shadow-sm); transition: box-shadow 0.3s ease; } .image-card-thumb:hover { box-shadow: var(--shadow-md); } .image-card-thumb img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.3s ease; } .image-card-thumb:hover img { transform: scale(1.05); } /* 悬停覆盖层 - 显示标题 */ .image-card-overlay { position: absolute; top: 0; left: 0; right: 0; bottom: 0; background: linear-gradient(to top, rgba(0, 0, 0, 0.8) 0%, rgba(0, 0, 0, 0.4) 50%, rgba(0, 0, 0, 0) 100%); display: flex; flex-direction: column; justify-content: flex-end; padding: 15px; opacity: 0; transition: opacity 0.3s ease; } .image-card-thumb:hover .image-card-overlay { opacity: 1; } /* 图片卡片标题 */ .image-card-title { color: white; font-size: 14px; font-weight: 500; line-height: 1.4; margin: 0 0 8px 0; overflow: hidden; text-overflow: ellipsis; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; } /* 图片卡片元信息 */ .image-card-meta { display: flex; align-items: center; gap: 12px; color: rgba(255, 255, 255, 0.8); font-size: 12px; } .image-card-views { display: flex; align-items: center; gap: 4px; } /* 响应式 - 平板端一排3个 */ @media (max-width: 1024px) { .image-cards-grid { grid-template-columns: repeat(3, 1fr); gap: 15px; } } /* 响应式 - 手机端一排2个 */ @media (max-width: 768px) { .image-cards-grid { grid-template-columns: repeat(2, 1fr); gap: 12px; margin: 15px 0; } .image-card-overlay { padding: 12px; } .image-card-title { font-size: 13px; } .image-card-meta { font-size: 11px; } } @media (max-width: 480px) { .image-cards-grid { gap: 8px; } .image-card-overlay { padding: 10px; } .image-card-title { font-size: 12px; margin-bottom: 6px; } } /* ==================== 混合图片分类模板样式 ==================== */ /* 混合分类页面容器 - 无侧边栏 */ .category-mixed-wrapper { max-width: 1200px; margin: 0 auto; } .category-mixed-main { width: 100%; max-width: 100%; } /* ==================== 文章失效提醒样式 ==================== */ .article-expire-notice { background: linear-gradient(135deg, #fff7e6 0%, #fff1b8 100%); border: 1px solid #ffd591; border-radius: var(--radius-md); padding: 15px 20px; margin: 15px 0; display: flex; align-items: center; gap: 10px; box-shadow: var(--shadow-sm); } .expire-icon { font-size: 20px; flex-shrink: 0; } .expire-text { color: #d46b08; font-size: 14px; line-height: 1.5; } .expire-text strong, .expire-text b { color: #cf1322; font-weight: 600; } /* 响应式 - 手机端 */ @media (max-width: 768px) { .article-expire-notice { padding: 12px 15px; margin: 10px 0; } .expire-icon { font-size: 18px; } .expire-text { font-size: 13px; } } /* 紧凑式分类标题栏 */ .category-header-compact { padding: 15px 0; margin-bottom: 10px; border-bottom: 1px solid var(--border-color); } .category-title-inline { display: flex; align-items: center; gap: 8px; font-size: 18px; font-weight: 600; color: var(--text-primary); margin: 0; } .category-title-inline .category-icon { color: var(--primary-color); flex-shrink: 0; } .category-count { font-size: 14px; font-weight: normal; color: var(--text-muted); margin-left: 4px; } /* 混合图片卡片网格 - 使用 CSS Columns 瀑布流布局 */ .mixed-cards-grid { column-count: 4; column-gap: 20px; margin: 20px 0; } /* 混合图片卡片项 */ .mixed-card-item { position: relative; break-inside: avoid; margin-bottom: 20px; } .mixed-card-link { display: block; text-decoration: none; } /* 图片卡片缩略图容器 */ .mixed-card-thumb { position: relative; width: 100%; overflow: hidden; border-radius: var(--radius-md); background: var(--bg-tertiary); box-shadow: var(--shadow-sm); transition: box-shadow 0.3s ease; } /* 竖版卡片 - 比例 9:16 */ .mixed-card-vertical .mixed-card-thumb { aspect-ratio: 9 / 16; } /* 横版卡片 - 比例 3:2 */ .mixed-card-horizontal .mixed-card-thumb { aspect-ratio: 3 / 2; } .mixed-card-thumb:hover { box-shadow: var(--shadow-md); } .mixed-card-thumb img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.3s ease; } .mixed-card-thumb:hover img { transform: scale(1.05); } /* 悬停覆盖层 - 显示标题 */ .mixed-card-overlay { position: absolute; top: 0; left: 0; right: 0; bottom: 0; background: linear-gradient(to top, rgba(0, 0, 0, 0.85) 0%, rgba(0, 0, 0, 0.5) 40%, rgba(0, 0, 0, 0) 70%); display: flex; flex-direction: column; justify-content: flex-end; padding: 15px; opacity: 0; transition: opacity 0.3s ease; } .mixed-card-thumb:hover .mixed-card-overlay { opacity: 1; } /* 图片卡片标题 */ .mixed-card-title { color: white; font-size: 14px; font-weight: 500; line-height: 1.4; margin: 0 0 8px 0; overflow: hidden; text-overflow: ellipsis; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; } /* 图片卡片元信息 */ .mixed-card-meta { display: flex; align-items: center; gap: 12px; color: rgba(255, 255, 255, 0.85); font-size: 12px; } .mixed-card-views { display: flex; align-items: center; gap: 4px; } /* 响应式 - 平板端一排3个 */ @media (max-width: 1024px) { .mixed-cards-grid { column-count: 3; column-gap: 15px; } .mixed-card-item { margin-bottom: 15px; } } /* 响应式 - 手机端一排2个 */ @media (max-width: 768px) { .mixed-cards-grid { column-count: 2; column-gap: 12px; margin: 15px 0; } .mixed-card-item { margin-bottom: 12px; } .mixed-card-overlay { padding: 12px; } .mixed-card-title { font-size: 13px; } } /* 工具说明样式 */ .tool-description { margin-top: 30px; padding: 0; background: transparent; border-radius: 0; border: none; } .tool-description h3 { margin-top: 0; color: #333; font-size: 18px; margin-bottom: 15px; padding-bottom: 10px; border-bottom: 2px solid #1890ff; display: inline-block; } .tool-description p { margin-bottom: 15px; line-height: 1.6; color: #333; } .tool-description ul, .tool-description ol { margin: 10px 0 15px 20px; } .tool-description li { margin-bottom: 8px; line-height: 1.5; } @media (max-width: 480px) { .mixed-cards-grid { column-gap: 8px; } .mixed-card-item { margin-bottom: 8px; } .mixed-card-overlay { padding: 10px; } .mixed-card-title { font-size: 12px; margin-bottom: 6px; } } /* ====================