/* 爹学理论研究网站 - 增强版样式 */ /* 导入字体 */ @import url('https://fonts.googleapis.com/css2?family=Noto+Sans+SC:wght@300;400;500;700;900&family=Noto+Serif+SC:wght@400;600;700&display=swap'); /* 整体样式调整 */ body { font-family: 'Noto Sans SC', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif; line-height: 1.7; color: #333; background-color: #f8f9fa; font-size: 16px; } /* 动画定义 */ @keyframes fadeIn { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: translateY(0); } } @keyframes pulse { 0% { transform: scale(1); } 50% { transform: scale(1.05); } 100% { transform: scale(1); } } @keyframes slideIn { from { transform: translateX(-100%); opacity: 0; } to { transform: translateX(0); opacity: 1; } } @keyframes glow { 0% { box-shadow: 0 0 5px rgba(41, 128, 185, 0.5); } 50% { box-shadow: 0 0 20px rgba(41, 128, 185, 0.8), 0 0 30px rgba(41, 128, 185, 0.4); } 100% { box-shadow: 0 0 5px rgba(41, 128, 185, 0.5); } } /* 标题样式 */ h1, h2, h3, h4, h5, h6 { font-family: 'Noto Serif SC', serif; font-weight: 700; margin-top: 1.5em; margin-bottom: 0.8em; line-height: 1.3; animation: fadeIn 0.8s ease-out; } h1 { font-size: 2.8rem; color: #1a1a1a; border-bottom: 3px solid #2980B9; padding-bottom: 0.3em; position: relative; text-align: center; margin-bottom: 1.5em; } h1::after { content: ""; position: absolute; bottom: -10px; left: 50%; transform: translateX(-50%); width: 100px; height: 4px; background: linear-gradient(90deg, #2980B9, #8e44ad); border-radius: 2px; } h2 { font-size: 2.2rem; color: #2980B9; border-left: 5px solid #2980B9; padding-left: 15px; position: relative; } h3 { font-size: 1.8rem; color: #34495e; position: relative; } h3::before { content: "◆"; color: #2980B9; margin-right: 10px; } /* 链接样式 */ a { color: #2980B9; text-decoration: none; transition: all 0.3s ease; position: relative; } a:hover { color: #1a5276; text-decoration: underline; } a::after { content: ''; position: absolute; bottom: -2px; left: 0; width: 0; height: 2px; background: #8e44ad; transition: width 0.3s ease; } a:hover::after { width: 100%; } /* 导航栏样式 */ .wy-nav-top { background: linear-gradient(135deg, #2980B9, #8e44ad); box-shadow: 0 2px 10px rgba(0,0,0,0.1); } .wy-nav-top a { color: white; font-weight: 700; font-size: 1.2rem; } .wy-nav-top .wy-nav-top-menu { font-size: 1.1rem; } /* 侧边栏样式 */ .wy-nav-side { background: #2c3e50; box-shadow: 2px 0 10px rgba(0,0,0,0.1); } .wy-menu-vertical a { color: #ecf0f1; padding: 10px 15px; margin: 3px 0; border-radius: 5px; transition: all 0.3s ease; position: relative; overflow: hidden; } .wy-menu-vertical a:hover { background: rgba(41, 128, 185, 0.2); transform: translateX(5px); } .wy-menu-vertical a:active { background: rgba(41, 128, 185, 0.3); } .wy-menu-vertical li.current > a { background: #2980B9; border-left: 4px solid #8e44ad; font-weight: 700; box-shadow: 0 2px 5px rgba(0,0,0,0.1); } /* 内容区域样式 */ .wy-nav-content { max-width: 1200px; background: white; box-shadow: 0 0 20px rgba(0,0,0,0.05); border-radius: 8px; margin: 20px auto; overflow: hidden; } .rst-content { padding: 20px 40px; } /* 代码块样式 */ div.highlight { border-radius: 8px; margin: 1.5em 0; box-shadow: 0 3px 10px rgba(0,0,0,0.1); overflow: hidden; position: relative; } div.highlight::before { content: ""; position: absolute; top: 0; left: 0; width: 5px; height: 100%; background: linear-gradient(to bottom, #2980B9, #8e44ad); } div.highlight pre { background: #f8f9fa; padding: 20px; border-radius: 8px; overflow-x: auto; font-family: 'Courier New', monospace; font-size: 14px; line-height: 1.5; } /* 表格样式 */ .rst-content table.docutils { border-collapse: separate; border-spacing: 0; border-radius: 8px; overflow: hidden; box-shadow: 0 3px 10px rgba(0,0,0,0.1); margin: 1.5em 0; width: 100%; } .rst-content table.docutils thead { background: linear-gradient(135deg, #2980B9, #8e44ad); color: white; } .rst-content table.docutils th, .rst-content table.docutils td { padding: 12px 15px; text-align: left; border: none; } .rst-content table.docutils tbody tr:nth-child(even) { background-color: #f8f9fa; } .rst-content table.docutils tbody tr:hover { background-color: #e3f2fd; transform: scale(1.01); transition: all 0.2s ease; } /* 引用块样式 */ .rst-content blockquote { margin: 1.5em 0; padding: 15px 20px; background: #f8f9fa; border-left: 5px solid #2980B9; border-radius: 0 8px 8px 0; box-shadow: 0 3px 10px rgba(0,0,0,0.05); position: relative; } .rst-content blockquote::before { content: """; position: absolute; top: -10px; left: 10px; font-size: 60px; color: rgba(41, 128, 185, 0.2); font-family: serif; } /* 提示框样式 */ .admonition { margin: 1.5em 0; padding: 15px 20px; border-radius: 8px; box-shadow: 0 3px 10px rgba(0,0,0,0.1); position: relative; overflow: hidden; } .admonition::before { content: ""; position: absolute; top: 0; left: 0; width: 5px; height: 100%; } .admonition.note { background: #e3f2fd; border-left: 5px solid #2980B9; } .admonition.warning { background: #fff8e1; border-left: 5px solid #f39c12; } .admonition.error { background: #ffebee; border-left: 5px solid #e74c3c; } .admonition p.admonition-title { font-weight: 700; margin-top: 0; margin-bottom: 10px; font-size: 1.1em; } /* 搜索框样式 */ .wy-form .wy-form-aligned input[type="text"] { border: 2px solid #ddd; border-radius: 25px; padding: 10px 15px; transition: all 0.3s ease; box-shadow: none; } .wy-form .wy-form-aligned input[type="text"]:focus { border-color: #2980B9; box-shadow: 0 0 0 3px rgba(41, 128, 185, 0.2); outline: none; } /* 页脚样式 */ footer { background: linear-gradient(135deg, #2c3e50, #34495e); color: #ecf0f1; padding: 30px 0; text-align: center; margin-top: 40px; border-top: 5px solid #2980B9; } footer p { margin: 5px 0; } /* 响应式调整 */ @media (max-width: 768px) { .wy-nav-content { margin: 10px; border-radius: 0; } .rst-content { padding: 15px 20px; } h1 { font-size: 2.2rem; } h2 { font-size: 1.8rem; } h3 { font-size: 1.5rem; } } /* 新增元素样式 */ /* 特色卡片 */ .feature-card { background: white; border-radius: 10px; box-shadow: 0 5px 15px rgba(0,0,0,0.1); padding: 25px; margin: 20px 0; transition: all 0.3s ease; position: relative; overflow: hidden; } .feature-card::before { content: ""; position: absolute; top: 0; left: 0; width: 100%; height: 5px; background: linear-gradient(90deg, #2980B9, #8e44ad); } .feature-card:hover { transform: translateY(-5px); box-shadow: 0 10px 25px rgba(0,0,0,0.15); } .feature-card h3 { margin-top: 0; color: #2980B9; } .feature-card p { color: #555; line-height: 1.6; } /* 交互按钮 */ .interactive-button { display: inline-block; background: linear-gradient(135deg, #2980B9, #8e44ad); color: white; padding: 12px 25px; border-radius: 30px; text-decoration: none; font-weight: 500; margin: 10px 5px; transition: all 0.3s ease; box-shadow: 0 3px 10px rgba(0,0,0,0.1); cursor: pointer; border: none; font-size: 16px; } .interactive-button:hover { transform: translateY(-3px); box-shadow: 0 5px 15px rgba(0,0,0,0.2); text-decoration: none; color: white; } .interactive-button:active { transform: translateY(1px); } /* 时间线样式 */ .timeline { position: relative; padding: 20px 0; } .timeline::before { content: ''; position: absolute; top: 0; left: 50%; width: 3px; height: 100%; background: linear-gradient(to bottom, #2980B9, #8e44ad); transform: translateX(-50%); } .timeline-item { position: relative; margin: 30px 0; width: 50%; padding: 0 30px; box-sizing: border-box; } .timeline-item:nth-child(odd) { left: 0; text-align: right; } .timeline-item:nth-child(even) { left: 50%; } .timeline-item::before { content: ''; position: absolute; top: 20px; width: 20px; height: 20px; background: #2980B9; border-radius: 50%; box-shadow: 0 0 0 5px rgba(41, 128, 185, 0.2); } .timeline-item:nth-child(odd)::before { right: -10px; } .timeline-item:nth-child(even)::before { left: -10px; } .timeline-content { background: white; padding: 20px; border-radius: 8px; box-shadow: 0 3px 10px rgba(0,0,0,0.1); transition: all 0.3s ease; } .timeline-content:hover { transform: scale(1.03); box-shadow: 0 5px 15px rgba(0,0,0,0.15); } @media (max-width: 768px) { .timeline::before { left: 30px; } .timeline-item { width: 100%; left: 0 !important; text-align: left !important; padding-left: 60px; } .timeline-item::before { left: 20px !important; } } /* 图片画廊 */ .image-gallery { display: grid; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: 20px; margin: 20px 0; } .gallery-item { position: relative; border-radius: 8px; overflow: hidden; box-shadow: 0 3px 10px rgba(0,0,0,0.1); transition: all 0.3s ease; height: 200px; background: #f8f9fa; } .gallery-item:hover { transform: scale(1.05); box-shadow: 0 5px 15px rgba(0,0,0,0.2); } .gallery-item img { width: 100%; height: 100%; object-fit: cover; transition: all 0.3s ease; } .gallery-item:hover img { transform: scale(1.1); } .gallery-caption { position: absolute; bottom: 0; left: 0; right: 0; background: rgba(0,0,0,0.7); color: white; padding: 10px; font-size: 14px; transform: translateY(100%); transition: all 0.3s ease; } .gallery-item:hover .gallery-caption { transform: translateY(0); } /* 标签云 */ .tag-cloud { display: flex; flex-wrap: wrap; justify-content: center; margin: 20px 0; } .tag { display: inline-block; padding: 5px 15px; margin: 5px; background: rgba(41, 128, 185, 0.1); color: #2980B9; border-radius: 20px; font-size: 14px; transition: all 0.3s ease; cursor: pointer; } .tag:hover { background: #2980B9; color: white; transform: scale(1.1); } /* 进度条 */ .progress-bar { width: 100%; height: 10px; background: #e0e0e0; border-radius: 5px; overflow: hidden; margin: 10px 0; } .progress-fill { height: 100%; background: linear-gradient(90deg, #2980B9, #8e44ad); border-radius: 5px; transition: width 1s ease; } /* 加载动画 */ .loading { display: inline-block; width: 20px; height: 20px; border: 3px solid rgba(41, 128, 185, 0.3); border-radius: 50%; border-top-color: #2980B9; animation: spin 1s ease-in-out infinite; } @keyframes spin { to { transform: rotate(360deg); } } /* 悬浮提示 */ .tooltip { position: relative; cursor: help; border-bottom: 1px dotted #2980B9; } .tooltip::after { content: attr(data-tooltip); position: absolute; bottom: 100%; left: 50%; transform: translateX(-50%); background: rgba(0,0,0,0.8); color: white; padding: 5px 10px; border-radius: 4px; font-size: 12px; white-space: nowrap; opacity: 0; pointer-events: none; transition: opacity 0.3s ease; } .tooltip:hover::after { opacity: 1; } /* 通知消息 */ .notification { position: fixed; top: 20px; right: 20px; padding: 15px 20px; background: white; border-radius: 8px; box-shadow: 0 5px 15px rgba(0,0,0,0.2); z-index: 1000; transform: translateX(150%); transition: transform 0.3s ease; max-width: 300px; } .notification.show { transform: translateX(0); } .notification.success { border-left: 5px solid #2ecc71; } .notification.error { border-left: 5px solid #e74c3c; } .notification.info { border-left: 5px solid #2980B9; } /* 模态框 */ .modal { display: none; position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0,0,0,0.5); z-index: 1000; justify-content: center; align-items: center; } .modal-content { background: white; padding: 30px; border-radius: 10px; max-width: 500px; width: 90%; box-shadow: 0 5px 15px rgba(0,0,0,0.3); position: relative; animation: fadeIn 0.3s ease; } .modal-close { position: absolute; top: 15px; right: 15px; font-size: 24px; cursor: pointer; color: #777; transition: color 0.3s ease; } .modal-close:hover { color: #333; } /* 页面加载动画 */ .page-loader { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: white; display: flex; justify-content: center; align-items: center; z-index: 9999; transition: opacity 0.5s ease; } .page-loader.hidden { opacity: 0; pointer-events: none; } .loader-spinner { width: 50px; height: 50px; border: 5px solid #f3f3f3; border-top: 5px solid #2980B9; border-radius: 50%; animation: spin 1s linear infinite; } /* 特殊元素:音韵密码展示 */ .phonetic-symbol { display: inline-block; padding: 5px 10px; margin: 5px; background: linear-gradient(135deg, #2980B9, #8e44ad); color: white; border-radius: 5px; font-weight: bold; transition: all 0.3s ease; cursor: pointer; } .phonetic-symbol:hover { transform: scale(1.1); box-shadow: 0 3px 10px rgba(0,0,0,0.2); } /* 文明展示卡片 */ .civilization-card { background: white; border-radius: 10px; overflow: hidden; box-shadow: 0 5px 15px rgba(0,0,0,0.1); margin: 20px 0; transition: all 0.3s ease; } .civilization-header { padding: 20px; background: linear-gradient(135deg, #2980B9, #8e44ad); color: white; } .civilization-content { padding: 20px; } .civilization-card:hover { transform: translateY(-5px); box-shadow: 0 10px 25px rgba(0,0,0,0.15); } /* 研究成果展示 */ .research-item { border-left: 4px solid #2980B9; padding-left: 20px; margin: 20px 0; position: relative; } .research-item::before { content: ""; position: absolute; left: -10px; top: 5px; width: 16px; height: 16px; background: #2980B9; border-radius: 50%; } .research-title { font-weight: bold; font-size: 1.1em; color: #2980B9; margin-bottom: 5px; } .research-description { color: #555; margin-bottom: 10px; } .research-meta { font-size: 0.9em; color: #777; } /* 理论框架图 */ .theory-diagram { margin: 30px 0; text-align: center; } .theory-box { display: inline-block; padding: 15px 20px; margin: 10px; background: white; border: 2px solid #2980B9; border-radius: 8px; min-width: 150px; transition: all 0.3s ease; } .theory-box:hover { background: #2980B9; color: white; transform: scale(1.05); } .theory-connector { display: inline-block; width: 50px; height: 2px; background: #2980B9; position: relative; vertical-align: middle; } .theory-connector::after { content: "→"; position: absolute; right: -10px; top: -10px; color: #2980B9; font-size: 20px; } /* 响应式网格布局 */ .grid-container { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 20px; margin: 20px 0; } /* 滚动到顶部按钮 */ .scroll-top { position: fixed; bottom: 20px; right: 20px; width: 50px; height: 50px; background: #2980B9; color: white; border-radius: 50%; display: flex; justify-content: center; align-items: center; cursor: pointer; opacity: 0; transition: all 0.3s ease; z-index: 1000; } .scroll-top.visible { opacity: 1; } .scroll-top:hover { background: #1a5276; transform: scale(1.1); } /* 动态背景 */ .dynamic-background { position: fixed; top: 0; left: 0; width: 100%; height: 100%; z-index: -1; background: linear-gradient(135deg, #f5f7fa 0%, #c3cfe2 100%); overflow: hidden; } .dynamic-background::before { content: ""; position: absolute; top: -50%; left: -50%; width: 200%; height: 200%; background: radial-gradient(circle, rgba(41, 128, 185, 0.1) 0%, rgba(142, 68, 173, 0.1) 100%); animation: rotate 30s linear infinite; } @keyframes rotate { from { transform: rotate(0deg); } to { transform: rotate(360deg); } }