|
|
第1行: |
第1行: |
| /* 这里所有CSS都会加载给Citizen皮肤的用户 */
| |
| /* 这里放置的CSS将应用于所有皮肤 */
| |
|
| |
|
| @import url("https://fonts.googleapis.com/css2?family=Press+Start+2P&display=swap");
| |
| @import url("https://fastly.jsdelivr.net/gh/hoah2333/Fonts@main/Typeface-VonwaonBitmap-16px.css");
| |
| @import url("https://fastly.jsdelivr.net/gh/hoah2333/Fonts@main/Typeface-VonwaonBitmap-12px.css");
| |
|
| |
| :root {
| |
| /* 保留原始配色变量 */
| |
| --link-color: #0645ad;
| |
| --link-color-active: #faa700;
| |
| --custom-background-blue: #ccf;
| |
| --custom-background-cyan: #cef;
| |
| --custom-background-green: #cfc;
| |
| --custom-background-gray: #d2d2d2;
| |
| --custom-background-grey: var(--custom-background-gray);
| |
| --custom-background-magenta: #fdf;
| |
| --custom-background-orange: #fdb;
| |
| --custom-background-purple: #ecf;
| |
| --custom-background-red: #fcc;
| |
| --custom-background-yellow: #ffc;
| |
| --custom-border-blue: #36e;
| |
| --custom-border-cyan: #9df;
| |
| --custom-border-green: #5d5;
| |
| --custom-border-gray: #bbb;
| |
| --custom-border-grey: var(--custom-border-gray);
| |
| --custom-border-magenta: #f9f;
| |
| --custom-border-orange: #f90;
| |
| --custom-border-purple: #96c;
| |
| --custom-border-red: #e44;
| |
| --custom-border-yellow: #fc3;
| |
| --custom-closed-topic-neutral: #eef;
| |
| --custom-closed-topic-no: #fee;
| |
| --custom-closed-topic-yes: #efe;
| |
| --custom-code-background: #f8f9fa;
| |
| --custom-load-page-button-color: #fff8;
| |
| --custom-main-page-background: #fcfcfc;
| |
| --custom-main-page-border: var(--custom-border-gray);
| |
| --custom-main-page-edition-subheader: #333;
| |
| --custom-mcwiki-header-color: #bcd4f5;
| |
| --custom-navbox-background: #fff;
| |
| --custom-navbox-top: #ccc;
| |
| --custom-navbox-middle: #ddd;
| |
| --custom-navbox-thru: #eee;
| |
| --custom-nbt-inherit-color: #e6e6fa;
| |
| --custom-table-background: #f8f9fa;
| |
| --custom-table-alternate-background: #f0f1f2;
| |
| --custom-table-choice-always: #003600;
| |
| --custom-table-choice-always-background: #80d080;
| |
| --custom-table-choice-default: #fff;
| |
| --custom-table-choice-in-off-background: #060;
| |
| --custom-table-choice-in-on-background: #0c0;
| |
| --custom-table-choice-na: #000;
| |
| --custom-table-choice-na-background: #fff;
| |
| --custom-table-choice-neutral: #634800;
| |
| --custom-table-choice-neutral-background: #ffeb9c;
| |
| --custom-table-choice-never: #3c0404;
| |
| --custom-table-choice-never-background: #ff8080;
| |
| --custom-table-choice-no: #840606;
| |
| --custom-table-choice-no-background: #ffc7ce;
| |
| --custom-table-choice-out-off-background: #900;
| |
| --custom-table-choice-out-on-background: #f00;
| |
| --custom-table-choice-partial: #665400;
| |
| --custom-table-choice-partial-background: #ffd;
| |
| --custom-table-choice-planned: #0131b7;
| |
| --custom-table-choice-planned-background: #dfdfff;
| |
| --custom-table-choice-rarely: #533400;
| |
| --custom-table-choice-rarely-background: #fdce5e;
| |
| --custom-table-choice-unknown: #222;
| |
| --custom-table-choice-unknown-background: #ccc;
| |
| --custom-table-choice-yes: #005600;
| |
| --custom-table-choice-yes-background: #c6efce;
| |
| --custom-table-header-background: #eaecf0;
| |
| --custom-topic-30-days: #bbb;
| |
| --custom-topic-7-days: #ddd;
| |
|
| |
| /* 增强CRT效果相关变量 */
| |
| --crt-primary-scanline-alpha: 0.14; /* 主扫描线透明度 */
| |
| --crt-secondary-scanline-alpha: 0.08; /* 副扫描线透明度 */
| |
| --crt-fast-scanline-alpha: 0.3; /* 快速扫描线透明度 */
| |
| --crt-flicker-alpha: 0.04; /* 屏幕闪烁强度 */
| |
| --crt-noise-alpha: 0.04; /* 噪点强度 */
| |
| --crt-glow-radius: 0.08em;
| |
| --crt-glow-color: rgba(0, 255, 100, 0.2); /* 辉光颜色和强度 */
| |
| --crt-text-shadow: 0 0 var(--crt-glow-radius) var(--crt-glow-color);
| |
| --crt-vignette-opacity: 0.15; /* 暗角效果强度 */
| |
| --crt-rgb-shift-amount: 1px; /* RGB颜色偏移量 */
| |
| --crt-curvature: 8; /* CRT曲率(数值越大曲率越大)*/
| |
|
| |
| /* 网格背景相关变量 */
| |
| --grid-color: rgba(0, 0, 0, 0.08);
| |
| --grid-size: 40px;
| |
| --grid-line-width: 1px;
| |
|
| |
| /* 字体设置 - 保持不变 */
| |
| --pixel-font-16: 'VonwaonBitmap 16px', monospace;
| |
| --pixel-font-12: 'VonwaonBitmap 12px', monospace;
| |
| --title-font: var(--pixel-font-16);
| |
| --body-font: var(--pixel-font-16);
| |
| --small-font: var(--pixel-font-12);
| |
| --UI-font: var(--pixel-font-12);
| |
|
| |
| /* 字体大小设置 */
| |
| --base-font-size: 15px;
| |
| --small-font-size: 13px;
| |
| --title-scale: 1.3;
| |
| --code-scale: 0.9;
| |
|
| |
| /* 边框和内间距设置 */
| |
| --side-border-thickness: 0.1rem;
| |
| --main-border-thickness: 0.05rem;
| |
|
| |
| /* 启用/禁用CRT效果 - 默认启用 */
| |
| --crt-effects-display: block;
| |
|
| |
| /* 质感相关变量 */
| |
| --glass-opacity: 0.92;
| |
| --glass-blur: 0px; /* 模糊效果 - 如果浏览器支持 */
| |
| --inset-shadow-depth: 25px;
| |
| --border-shine: rgba(255, 255, 255, 0.1);
| |
| --box-depth: 1px 1px 3px rgba(0, 0, 0, 0.15);
| |
|
| |
| /* 侧边栏相关变量 - 新增 */
| |
| --sidebar-max-height: 85vh; /* 侧边栏最大高度 */
| |
| --sidebar-width: 14rem; /* 侧边栏宽度 */
| |
| --sidebar-top-offset: 3rem; /* 侧边栏顶部偏移 */
| |
|
| |
| /* 控制台相关变量 - 新增 */
| |
| --console-indicator-color: rgba(0, 255, 100, 0.8);
| |
| --console-text-color: rgba(0, 255, 0, 0.9);
| |
| --terminal-bg: rgba(16, 24, 32, 0.8);
| |
| }
| |
|
| |
| /* CRT效果动画 - 增强版 */
| |
| @keyframes flicker {
| |
| 0%, 100% { opacity: 0.98; }
| |
| 25% { opacity: 0.94; }
| |
| 50% { opacity: 0.99; }
| |
| 75% { opacity: 0.95; }
| |
| 83% { opacity: 0.98; }
| |
| 90% { opacity: 0.91; }
| |
| 93% { opacity: 0.99; }
| |
| 97% { opacity: 0.93; }
| |
| }
| |
|
| |
| /* 极微弱闪烁效果 - 用于文本和UI元素 */
| |
| @keyframes micro-flicker {
| |
| 0%, 100% { opacity: 1; }
| |
| 25% { opacity: 0.99; }
| |
| 50% { opacity: 0.98; }
| |
| 75% { opacity: 0.99; }
| |
| }
| |
|
| |
| /* 主扫描线动画 - 更逼真 */
| |
| @keyframes primary-scanline {
| |
| 0% { transform: translateY(-5vh); }
| |
| 100% { transform: translateY(110vh); }
| |
| }
| |
|
| |
| /* 副扫描线动画 - 较慢移动 */
| |
| @keyframes secondary-scanline {
| |
| 0% { transform: translateY(-100vh); }
| |
| 100% { transform: translateY(100vh); }
| |
| }
| |
|
| |
| /* 快速扫描线动画 - 闪烁通过 */
| |
| @keyframes fast-scanline {
| |
| 0%, 5% { opacity: 0; transform: translateY(-100vh); }
| |
| 8% { opacity: var(--crt-fast-scanline-alpha); }
| |
| 25% { opacity: var(--crt-fast-scanline-alpha); }
| |
| 30% { opacity: 0; }
| |
| 100% { opacity: 0; transform: translateY(100vh); }
| |
| }
| |
|
| |
| /* 噪点效果动画 */
| |
| @keyframes noise {
| |
| 0%, 100% { background-position: 0 0; }
| |
| 25% { background-position: 100% 0; }
| |
| 50% { background-position: 100% 100%; }
| |
| 75% { background-position: 0 100%; }
| |
| }
| |
|
| |
| /* RGB颜色偏移动画 */
| |
| @keyframes rgb-shift {
| |
| 0%, 100% {
| |
| text-shadow:
| |
| var(--crt-rgb-shift-amount) 0 0 rgba(255, 0, 0, 0.3),
| |
| calc(-1 * var(--crt-rgb-shift-amount)) 0 0 rgba(0, 255, 255, 0.3);
| |
| }
| |
| 25% {
| |
| text-shadow:
| |
| calc(0.8 * var(--crt-rgb-shift-amount)) 0 0 rgba(255, 0, 0, 0.3),
| |
| calc(-0.8 * var(--crt-rgb-shift-amount)) 0 0 rgba(0, 255, 255, 0.3);
| |
| }
| |
| 50% {
| |
| text-shadow:
| |
| var(--crt-rgb-shift-amount) 0 0 rgba(255, 0, 0, 0.3),
| |
| calc(-1 * var(--crt-rgb-shift-amount)) 0 0 rgba(0, 255, 255, 0.3);
| |
| }
| |
| 75% {
| |
| text-shadow:
| |
| calc(1.2 * var(--crt-rgb-shift-amount)) 0 0 rgba(255, 0, 0, 0.3),
| |
| calc(-1.2 * var(--crt-rgb-shift-amount)) 0 0 rgba(0, 255, 255, 0.3);
| |
| }
| |
| }
| |
|
| |
| @keyframes crt-on {
| |
| 0% { opacity: 0; filter: brightness(5) saturate(0); }
| |
| 10% { opacity: 0.3; filter: brightness(3) saturate(0.2); }
| |
| 30% { opacity: 0.7; filter: brightness(2) saturate(0.5); }
| |
| 50% { opacity: 0.8; filter: brightness(1.5) saturate(0.8); }
| |
| 100% { opacity: 1; filter: brightness(1) saturate(1); }
| |
| }
| |
|
| |
| /* 控制台指示灯闪烁效果 */
| |
| @keyframes console-blink {
| |
| 0%, 100% { opacity: 1; }
| |
| 50% { opacity: 0.3; }
| |
| }
| |
|
| |
| /* 打字机效果 */
| |
| @keyframes typing {
| |
| from { width: 0; }
| |
| to { width: 100%; }
| |
| }
| |
|
| |
| /* 滚动指示动画 */
| |
| @keyframes scroll-indicator {
| |
| 0%, 100% { transform: translateY(0); }
| |
| 50% { transform: translateY(10px); }
| |
| }
| |
|
| |
| /* 光感效果 - 模拟CRT显示器对周围光线的反应 */
| |
| @keyframes light-response {
| |
| 0%, 100% { filter: brightness(1); }
| |
| 50% { filter: brightness(1.03); }
| |
| }
| |
|
| |
| /* 全局和背景样式 - 增强CRT显示器质感 */
| |
| html {
| |
| min-height: 100%;
| |
| background-color: #111; /* 更暗的背景,衬托CRT效果 */
| |
| background-image:
| |
| /* 网格线 */
| |
| linear-gradient(var(--grid-color) var(--grid-line-width), transparent var(--grid-line-width)),
| |
| linear-gradient(90deg, var(--grid-color) var(--grid-line-width), transparent var(--grid-line-width)),
| |
| /* 精细噪点纹理 */
| |
| url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='4' height='4' viewBox='0 0 4 4'%3E%3Cpath fill='%239C92AC' fill-opacity='0.08' d='M1 3h1v1H1V3zm2-2h1v1H3V1z'%3E%3C/path%3E%3C/svg%3E");
| |
| background-size: var(--grid-size) var(--grid-size), var(--grid-size) var(--grid-size), auto;
| |
| background-position: center center;
| |
| animation: crt-on 2s ease-out;
| |
| position: relative;
| |
| overflow-x: hidden; /* 防止水平滚动条出现 */
| |
| padding: 0;
| |
| margin: 0;
| |
| }
| |
|
| |
| /* CRT显示器边框模拟 */
| |
| .crt-monitor-frame {
| |
| position: fixed;
| |
| top: 0;
| |
| left: 0;
| |
| width: 100%;
| |
| height: 100%;
| |
| pointer-events: none;
| |
| z-index: 10000;
| |
| background: transparent;
| |
| box-shadow: inset 0 0 100px 20px rgba(0, 0, 0, 0.7); /* 内阴影创造边框效果 */
| |
| border-radius: 15% / 8%; /* 创造CRT显示器的弧度 */
| |
| }
| |
|
| |
| /* CRT面板反光效果 */
| |
| .crt-reflection {
| |
| position: fixed;
| |
| top: 0;
| |
| left: 0;
| |
| width: 100%;
| |
| height: 100%;
| |
| background: linear-gradient(
| |
| 135deg,
| |
| rgba(255, 255, 255, 0.1) 0%,
| |
| transparent 40%
| |
| );
| |
| pointer-events: none;
| |
| z-index: 10001;
| |
| opacity: 0.3;
| |
| border-radius: 15% / 8%;
| |
| }
| |
|
| |
| body {
| |
| font-family: var(--body-font);
| |
| font-size: var(--base-font-size);
| |
| line-height: 1.65;
| |
| color: #222;
| |
| position: relative;
| |
| width: 90%;
| |
| max-width: 1200px; /* 限制最大宽度 */
| |
| min-height: calc(100vh - 4rem);
| |
| margin: 2rem auto; /* 居中并增加上下边距 */
| |
| padding: 2rem;
| |
| background-color: rgba(255, 255, 255, var(--glass-opacity));
| |
| border-radius: 6px;
| |
| border: 1px solid var(--border-shine);
| |
| box-shadow:
| |
| var(--box-depth),
| |
| 0 3px 12px rgba(0, 0, 0, 0.05),
| |
| inset 0 0 var(--inset-shadow-depth) rgba(0, 255, 100, 0.04);
| |
| animation: flicker 120s infinite alternate ease-in-out;
| |
| overflow: hidden; /* 隐藏超出部分,配合扫描线 */
| |
| backdrop-filter: blur(var(--glass-blur)); /* 支持的浏览器会有磨砂玻璃效果 */
| |
| -webkit-backdrop-filter: blur(var(--glass-blur));
| |
| transform-style: preserve-3d;
| |
| perspective: 1000px;
| |
| }
| |
|
| |
| /* CRT曲面效果 - 使页面内容看起来像在CRT上显示 */
| |
| .crt-curve-effect {
| |
| position: fixed;
| |
| top: 0;
| |
| left: 0;
| |
| width: 100%;
| |
| height: 100%;
| |
| pointer-events: none;
| |
| z-index: 9997;
| |
| background: transparent;
| |
| box-shadow: inset 0 0 calc(var(--crt-curvature) * 8px) rgba(0, 0, 0, 0.3);
| |
| border-radius: 50% / 10%;
| |
| opacity: 0.5;
| |
| }
| |
|
| |
| /* 添加暗角效果 - 增强CRT显示器质感 */
| |
| body::before {
| |
| content: "";
| |
| display: var(--crt-effects-display);
| |
| position: fixed;
| |
| top: 0;
| |
| left: 0;
| |
| width: 100%;
| |
| height: 100%;
| |
| pointer-events: none;
| |
| z-index: 9990;
| |
| background: radial-gradient(
| |
| circle at center,
| |
| transparent 40%,
| |
| rgba(0, 0, 0, var(--crt-vignette-opacity)) 140%
| |
| );
| |
| mix-blend-mode: multiply;
| |
| }
| |
|
| |
| /* 添加纹理噪点 - 模拟CRT颗粒感 */
| |
| body::after {
| |
| content: "";
| |
| display: var(--crt-effects-display);
| |
| position: fixed;
| |
| top: 0;
| |
| left: 0;
| |
| width: 100%;
| |
| height: 100%;
| |
| pointer-events: none;
| |
| z-index: 9991;
| |
| background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH4AcGEgUHbZ0MhgAAAB1pVFh0Q29tbWVudAAAAAAAQ3JlYXRlZCB3aXRoIEdJTVBkLmUHAAAHeUlEQVRo3u1aTY8cRxU9r6q7enpmdvbDu951MF6vE2MsRwpCChKRkCNEhAQSF4TgADdO/BguXJD4A+HAH+DMj+AMCBGJ2MJJiCwhx3a8ttfeZe2Z7enu6o+q9zjUzKzX3l1r1l4SzqGlUku9XdX1+r36eO+9V0QphdddBF6D4o1x5OTkZGFxcfGQt956a77VasHzPICZi4cQAFAA4Pv+S3sGAIwxYIxBmqbY39/H2toa7969+/djx449PDw8XE2S5PNXrlz55uzs7KWrV6/+ZWlpaePChQuLcRxnNU3zzszMzPvHjh37V6fTWQeANE3fFBGICFzXRZ7nYGbEcYwoipDnOZRSGA6HIhJ8JiIjhCilhm6apkxEBYCaiDiZ/aSUYiL6Vr/f/56ISJI4MxwO35+ZOfazdrs9WF9fdwFgenoaMzOz3N3d/UYYhs/v3bt3OgiCJWvtB9vb29/q9S6d7vV6l7vd7pt7e3vvBkEwaDabf15fX//x+vr6D/M8/66IuK1Wi8MwJADgnMt5nj/yfU9ns9l2o9H4qeu6RhRVfd8fk1JKiBRqInJ+q7fJ/f19NRgMnDRND4goEBHV7XbDWvtBHMf/qdfrr9y+ffsjAG4Q+AiCCM1mhCDw0Ww2oLXC6urqLxYXF39grT1vjMFoNEKe52g2mwjDgJIk6wFQzWazIyI/iaLoL/1+/wEROUop5xLn8XgKAKSUIofImYsZZVkGrbUwM9bW1p6GYfiHu3fv3vA89c75+flvTk8vXp6ZeePCzMziW0opLC4u0tmzZ+n8+fM4d+4cTp06xa7rgjGOra0tXlx8k3u9c3Tu3FmcPHmCFhYWqNPp4MSJE1hZWcHc3Bw2NjbgOA4nSRKDKE3TdCfP8/tElGRZVpFlBEdARMQEiBZVURQCEJgZeZ7D932MRiMzMzODJEk+6na7D8Pw4k+ttR84jnNWKQWj9dhwAiklaLVaWFlZwfLyMh1VHpXCcRycPXsW58+fx/T0NG1ubtrxfQb7+/uPnz17tsXMDwDsOiJimLlEZJgZzBxYa1UURQUAGGMgItRsNmCMIQA4c+YMms0mrS9Offf+/fu/jeP4X1NTU+9Yazul52utSURQSoGI4DgOlpeXCcBRnSClFBYWFnDjxg0qigLGGGitKQgCFZH/xcrKyneMMbDWKgACwDjGmKIoClAFrTWPbSqDOI6R5zlqtRqICGma/kBEYIxBFEXfr9VqV5NkmDrOpOpTPNHjr2k/YL2Znz3eL2JnZmYAAHmeo9VqcRAEtLW1BWvtRwB+DYAcInILY9LiMDNUURTG9/3xVVkGpZVzLMuytN/vP261WnAch9vtNnwfRZbln25smFjrIdqt8z9sND68ND2t32q1GuXVnSrvmKZDpGn6NE3TFACCIECWZUjTdLyBZVma5zlcX1//bGdn51etVmu71WqVDy6MsYwcZiRaa8Vaj6IoKp7jtdYoimK70+mc9TzPdfgpXlBa27VabVcpNSeisASDcy6NMXnZ+bnWWq21RZZlKIoCSZJsM/O/wzAshsOhBkCu6yJN0w+LotgWEfJcl7K8gDFZXl5wkiRFURSaMSYA5HkOx3EYAKIo+l2SJMjzHEQEIgqttdvW2sdJkmwPBgOICNVqNSRJ8ttOp7ObZdnfnXl77Zdf+T4ajYbeGI7SZI9rtVWxdkCuuyppdkBK7Vf7JHsvEq3SOHcGcE8/yYYbjuNsW2v/aIwZAaDxPRFJlmX3rbXGcRx0Oh3s7e3BWjvd7XbDa0sv+Ln+heu6ZIzB0Z2VpwV2d3dBRBgOh/B9H9ZapGmKyliMK2dnZ4cGg8EzAM5RsZxSKrPWNgCciOP4N1EU/dzzPOq0W7h27RpazeY/pqen/9jtdk8updnSB+G95+Pv3Og0m+b8lUnN/wcivXv37ng00FoXzCxElFtrNYBAKZVaa8dV5fs+tdvtLQE+McaYoigYAPf7fWRZxvV6HWmatj2Pv5Xn5onpTm1rNEr/leXDJ1lB947Vk9txnP8yvn+n3+vvHKF1z1rbY+awvCsiUlhrS5QmETEAeJ7H9Xr9ThzHz6y1ZYoWIgJrbaGUwsHBwUoU+VNJMmp2G42Pun3cD4P04Bfp6Md/3dqLPo6j+PZe/CxWfn6wuN///fzc/N0fX3SzL0tQ/98iooyIQCklkwg2AAgzoyiKsI/8i51OZxCAZFlmXdftl3cdhyUnCE8+rMDz6A9pml6jTwsGKX4yEUgKrA0A8KtY4xVLxC9pPOcVIzLegwQAMmttI4qi/Z2dHeR5PiEiWutS2RtJkhyMgxJNzz3+ZIY/D8Kf0w2aRBXPOeKc95tZfnyudqX33WwG9BXv9JcDFoCIiBhjAsdxTJIkYK2FiFRKKUdE4DgOrLUeAPfLTvevIiLwPOQDwPNAlvlXPvqfTLGBKEJVtR/AlwMWALTWIqUjzHx4XqjKmYiKPM/XADz6qokQEfjLAosoAlEHzGd5yP1P5Yg5YIwkJ+Ry1bI/pM0vmBpTVZlDTPtq1Fqf7JJYazmKIuR5DmNM2W6PZxulFJg5q8qfRQRKKdJak+u6ElSzeYlmlFJijGHXdVFxVJSmKZIkIWMMHMdBvV5HGIYQkbLakiRJNMbUpPx+LdwpqrD8a+tI9SXrPwHt6TNRvZCHAAAAAElFTkSuQmCC");
| |
| background-repeat: repeat;
| |
| background-size: 200px;
| |
| opacity: var(--crt-noise-alpha);
| |
| animation: noise 0.5s steps(2) infinite;
| |
| mix-blend-mode: overlay;
| |
| }
| |
|
| |
| /* CRT扫描线效果 - 更逼真 */
| |
| /* 1. 主扫描线 - 明显且速度和密度适中的扫描线 */
| |
| .crt-primary-scanline {
| |
| content: "";
| |
| display: var(--crt-effects-display);
| |
| position: fixed;
| |
| top: 0;
| |
| left: 0;
| |
| width: 100%;
| |
| height: 9px; /* 主扫描线较宽 */
| |
| background: linear-gradient(
| |
| to bottom,
| |
| transparent 0%,
| |
| rgba(0, 0, 0, var(--crt-primary-scanline-alpha)) 40%,
| |
| rgba(0, 0, 0, calc(var(--crt-primary-scanline-alpha) * 1.5)) 50%,
| |
| rgba(0, 0, 0, var(--crt-primary-scanline-alpha)) 60%,
| |
| transparent 100%
| |
| );
| |
| pointer-events: none;
| |
| z-index: 9995;
| |
| opacity: 0.85;
| |
| animation: primary-scanline 8s linear infinite;
| |
| }
| |
|
| |
| /* 2. 副扫描线 - 持续存在的细小扫描线纹理 */
| |
| .crt-secondary-scanline {
| |
| content: "";
| |
| display: var(--crt-effects-display);
| |
| position: fixed;
| |
| top: 0;
| |
| left: 0;
| |
| width: 100%;
| |
| height: 100%;
| |
| background: repeating-linear-gradient(
| |
| to bottom,
| |
| transparent 0px,
| |
| transparent 3px,
| |
| rgba(0, 0, 0, var(--crt-secondary-scanline-alpha)) 4px,
| |
| rgba(0, 0, 0, var(--crt-secondary-scanline-alpha)) 4px
| |
| );
| |
| background-size: 100% 8px;
| |
| pointer-events: none;
| |
| z-index: 9994;
| |
| opacity: 0.7;
| |
| }
| |
|
| |
| /* 3. 快速扫描线 - 闪烁通过的亮条 */
| |
| .crt-fast-scanline {
| |
| content: "";
| |
| display: var(--crt-effects-display);
| |
| position: fixed;
| |
| top: 0;
| |
| left: 0;
| |
| width: 100%;
| |
| height: 2px; /* 快速扫描线很窄 */
| |
| background: linear-gradient(
| |
| to bottom,
| |
| transparent 0%,
| |
| rgba(255, 255, 255, 0.5) 50%,
| |
| transparent 100%
| |
| );
| |
| pointer-events: none;
| |
| z-index: 9996;
| |
| opacity: 0;
| |
| animation: fast-scanline 4s cubic-bezier(0.15, 0.85, 0.5, 1) infinite;
| |
| }
| |
|
| |
| /* 额外扫描线阴影 - 增强3D效果 */
| |
| .crt-scanline-shadow {
| |
| content: "";
| |
| display: var(--crt-effects-display);
| |
| position: fixed;
| |
| top: 0;
| |
| left: 0;
| |
| width: 100%;
| |
| height: 100%;
| |
| pointer-events: none;
| |
| z-index: 9992;
| |
| background: linear-gradient(
| |
| to bottom,
| |
| rgba(0, 0, 0, 0.01) 0%,
| |
| rgba(0, 0, 0, 0.05) 50%,
| |
| rgba(0, 0, 0, 0.01) 100%
| |
| );
| |
| opacity: 0.4;
| |
| }
| |
|
| |
| /* 标题样式 - 更精致的复古科幻风格 */
| |
| h1, h2, h3, h4, h5, h6 {
| |
| font-family: var(--title-font);
| |
| font-size: calc(var(--base-font-size) * var(--title-scale));
| |
| font-weight: normal;
| |
| text-shadow: var(--crt-text-shadow),
| |
| 0 1px 1px rgba(0, 0, 0, 0.1);
| |
| letter-spacing: 0.03em;
| |
| position: relative;
| |
| margin-top: 1.8em;
| |
| margin-bottom: 1em;
| |
| padding-bottom: 0.5em;
| |
| border-bottom: 1px solid rgba(0, 0, 0, 0.1);
| |
| color: #111;
| |
| line-height: 1.5;
| |
| animation: micro-flicker 2s infinite alternate ease-in-out;
| |
| }
| |
|
| |
| /* 标题光效底层 */
| |
| h1::after, h2::after, h3::after {
| |
| content: "";
| |
| position: absolute;
| |
| bottom: -1px;
| |
| left: 0;
| |
| width: 100%;
| |
| height: 1px;
| |
| background: linear-gradient(
| |
| to right,
| |
| var(--crt-glow-color),
| |
| transparent 90%
| |
| );
| |
| }
| |
|
| |
| /* 标题装饰线 */
| |
| h1::before, h2::before {
| |
| content: "";
| |
| position: absolute;
| |
| bottom: -2px;
| |
| left: 0;
| |
| width: 30px;
| |
| height: 3px;
| |
| background: linear-gradient(
| |
| to right,
| |
| rgba(0, 255, 100, 0.8),
| |
| transparent
| |
| );
| |
| border-radius: 2px;
| |
| box-shadow: 0 0 8px var(--crt-glow-color);
| |
| }
| |
|
| |
| body h1 {
| |
| font-size: calc(var(--base-font-size) * 1.7);
| |
| text-transform: uppercase;
| |
| padding-left: 14px;
| |
| border-left: 3px solid var(--crt-glow-color);
| |
| box-shadow: -3px 0 8px rgba(0, 255, 100, 0.2);
| |
| letter-spacing: 0.05em;
| |
| }
| |
|
| |
| h2 {
| |
| font-size: calc(var(--base-font-size) * 1.5);
| |
| padding-left: 6px;
| |
| }
| |
|
| |
| h3 {
| |
| font-size: calc(var(--base-font-size) * 1.3);
| |
| border-bottom-style: dashed;
| |
| border-bottom-width: 1px;
| |
| }
| |
|
| |
| h4 {
| |
| font-size: calc(var(--base-font-size) * 1.2);
| |
| border-bottom: none;
| |
| border-left: 2px solid rgba(0, 255, 100, 0.4);
| |
| padding-left: 6px;
| |
| }
| |
|
| |
| h5, h6 {
| |
| font-size: calc(var(--base-font-size) * 1.1);
| |
| border-bottom: none;
| |
| }
| |
|
| |
| /* 链接样式 - 更精致的复古科幻风格 */
| |
| a {
| |
| color: var(--link-color);
| |
| text-decoration: none;
| |
| position: relative;
| |
| transition: all 0.25s ease;
| |
| padding: 1px 3px;
| |
| border-radius: 2px;
| |
| text-shadow: 0 0 3px rgba(0, 100, 255, 0.15);
| |
| font-family: var(--pixel-font-16);
| |
| }
| |
|
| |
| /* 链接悬停效果 */
| |
| a:hover {
| |
| color: var(--link-color-active);
| |
| background-color: rgba(250, 167, 0, 0.1);
| |
| text-shadow: 0 0 var(--crt-glow-radius) rgba(250, 167, 0, 0.4);
| |
| transform: translateY(-1px);
| |
| box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);
| |
| }
| |
|
| |
| /* 链接点击效果 */
| |
| a:active {
| |
| transform: translateY(0);
| |
| box-shadow: none;
| |
| }
| |
|
| |
| /* 标记链接是可交互的 - 添加小图标 */
| |
| a[href]:not(.mw-selflink)::before {
| |
| content: '>';
| |
| display: inline-block;
| |
| margin-right: 3px;
| |
| font-size: 0.8em;
| |
| opacity: 0.6;
| |
| transition: all 0.2s ease;
| |
| }
| |
|
| |
| a[href]:not(.mw-selflink):hover::before {
| |
| opacity: 1;
| |
| transform: translateX(1px);
| |
| animation: console-blink 1s infinite;
| |
| }
| |
|
| |
| /* 红色链接样式 */
| |
| a.new {
| |
| color: #ba0000;
| |
| text-shadow: 0 0 3px rgba(186, 0, 0, 0.2);
| |
| }
| |
|
| |
| a.new:hover {
| |
| background-color: rgba(186, 0, 0, 0.1);
| |
| text-shadow: 0 0 var(--crt-glow-radius) rgba(186, 0, 0, 0.4);
| |
| }
| |
|
| |
| /* 外部链接样式 */
| |
| a.external {
| |
| border-bottom: 1px dotted rgba(6, 69, 173, 0.3);
| |
| }
| |
|
| |
| a.external::after {
| |
| content: "⎋";
| |
| font-size: 0.8em;
| |
| margin-left: 3px;
| |
| opacity: 0.7;
| |
| }
| |
|
| |
| a.external:hover::after {
| |
| opacity: 1;
| |
| transform: translateY(-1px);
| |
| }
| |
|
| |
| /* Infobox样式 - 更精致的复古科幻风格 */
| |
| .notaninfobox {
| |
| position: relative;
| |
| clear: right;
| |
| margin: 0 0 1em 1em;
| |
| width: 350px;
| |
| font-size: calc(var(--base-font-size) * 0.9);
| |
| font-family: var(--small-font);
| |
| background-color: rgba(248, 249, 250, 0.95);
| |
| float: right;
| |
| border: 1px solid rgba(0, 0, 0, 0.15);
| |
| padding: 0;
| |
| overflow: auto;
| |
| z-index: 1;
| |
| overflow-wrap: anywhere;
| |
| box-shadow:
| |
| 2px 2px 5px rgba(0, 0, 0, 0.1),
| |
| inset 0 0 10px rgba(0, 255, 100, 0.04);
| |
| animation: flicker 80s infinite alternate;
| |
| border-radius: 3px;
| |
| }
| |
|
| |
| /* Infobox标题 */
| |
| .notaninfobox > .infobox-title {
| |
| font-family: var(--title-font);
| |
| font-weight: normal;
| |
| text-align: center;
| |
| font-size: 110%;
| |
| background: linear-gradient(to bottom, #d5e5fb, var(--custom-mcwiki-header-color));
| |
| color: #333;
| |
| text-shadow: 0 1px 1px rgba(255, 255, 255, 0.5), var(--crt-text-shadow);
| |
| padding: 10px 4px;
| |
| border-bottom: 1px solid rgba(0, 0, 0, 0.15);
| |
| position: relative;
| |
| overflow: hidden;
| |
| }
| |
|
| |
| /* 给标题添加光泽效果 */
| |
| .notaninfobox > .infobox-title::after {
| |
| content: "";
| |
| position: absolute;
| |
| top: 0;
| |
| left: -150%;
| |
| width: 150%;
| |
| height: 100%;
| |
| background: linear-gradient(
| |
| to right,
| |
| transparent 0%,
| |
| rgba(255, 255, 255, 0) 0%,
| |
| rgba(255, 255, 255, 0.4) 50%,
| |
| rgba(255, 255, 255, 0) 100%
| |
| );
| |
| transform: rotate(35deg);
| |
| animation: shine 6s infinite;
| |
| }
| |
|
| |
| /* Infobox标签样式 */
| |
| .notaninfobox .infobox-row .infobox-row-label {
| |
| font-family: var(--UI-font);
| |
| font-weight: 600;
| |
| color: #444;
| |
| text-shadow: none;
| |
| letter-spacing: 0.03em;
| |
| padding: 5px 8px;
| |
| background-color: rgba(0, 0, 0, 0.03);
| |
| border-right: 2px solid rgba(0, 0, 0, 0.1);
| |
| }
| |
|
| |
| /* Infobox内容样式 */
| |
| .notaninfobox .infobox-row .infobox-row-value {
| |
| padding: 5px 8px;
| |
| line-height: 1.4;
| |
| }
| |
|
| |
| /* Infobox行交替背景 */
| |
| .notaninfobox .infobox-row:nth-child(even) {
| |
| background-color: rgba(0, 0, 0, 0.02);
| |
| }
| |
|
| |
| /* Infobox行悬停效果 */
| |
| .notaninfobox .infobox-row:hover {
| |
| background-color: rgba(0, 255, 100, 0.03);
| |
| }
| |
|
| |
| /* 表格样式 - 更精致的复古科幻风格 */
| |
| table {
| |
| border: 1px solid #ccc;
| |
| background-color: rgba(248, 249, 250, 0.95);
| |
| box-shadow:
| |
| var(--box-depth),
| |
| inset 0 0 15px rgba(240, 240, 240, 0.8);
| |
| border-radius: 3px;
| |
| margin: 1.2em 0;
| |
| font-family: var(--pixel-font-12);
| |
| border-collapse: separate;
| |
| border-spacing: 0;
| |
| overflow: hidden; /* 使圆角边框生效 */
| |
| }
| |
|
| |
| /* 表格标题 */
| |
| table caption {
| |
| font-family: var(--title-font);
| |
| font-size: calc(var(--base-font-size) * 1.05);
| |
| padding: 10px;
| |
| font-weight: normal;
| |
| text-shadow: var(--crt-text-shadow);
| |
| margin-bottom: 5px;
| |
| color: #333;
| |
| border-bottom: 1px dashed rgba(0, 0, 0, 0.1);
| |
| }
| |
|
| |
| /* 表头样式 */
| |
| table th {
| |
| background: linear-gradient(to bottom, #f8f9fa, var(--custom-table-header-background));
| |
| color: #333;
| |
| font-family: var(--title-font);
| |
| font-weight: normal;
| |
| text-shadow: 0 1px 1px rgba(255, 255, 255, 0.5), var(--crt-text-shadow);
| |
| padding: 12px 14px;
| |
| border-bottom: 2px solid rgba(0, 0, 0, 0.1);
| |
| position: relative;
| |
| }
| |
|
| |
| /* 表头装饰效果 */
| |
| table th::after {
| |
| content: "";
| |
| position: absolute;
| |
| bottom: 0;
| |
| left: 0;
| |
| width: 100%;
| |
| height: 1px;
| |
| background: linear-gradient(
| |
| to right,
| |
| rgba(255, 255, 255, 0.5),
| |
| transparent
| |
| );
| |
| }
| |
|
| |
| /* 表格单元格 */
| |
| table td, table th {
| |
| border: 1px solid #e0e0e0;
| |
| padding: 8px 12px;
| |
| transition: all 0.2s ease;
| |
| font-size: calc(var(--base-font-size) * 0.95);
| |
| }
| |
|
| |
| /* 表格交替行 */
| |
| table tr:nth-child(even) td {
| |
| background-color: rgba(240, 241, 242, 0.7);
| |
| }
| |
|
| |
| /* 表格行悬停效果 */
| |
| table tr:hover td {
| |
| background-color: rgba(0, 255, 100, 0.08);
| |
| text-shadow: 0 0 1px rgba(0, 0, 0, 0.05);
| |
| }
| |
|
| |
| /* 代码样式 - 更精致的复古科幻风格 */
| |
| pre, code {
| |
| font-family: var(--pixel-font-12);
| |
| font-size: calc(var(--base-font-size) * var(--code-scale));
| |
| background-color: rgba(232, 232, 232, 0.8);
| |
| border: 1px solid #d0d0d0;
| |
| padding: 0.3em 0.5em;
| |
| text-shadow: none;
| |
| border-radius: 3px;
| |
| color: #1a1a1a;
| |
| position: relative;
| |
| }
| |
|
| |
| /* 代码块样式 */
| |
| pre {
| |
| padding: 1em 1em 1em 3.5em; /* 左侧留出行号空间 */
| |
| overflow-x: auto;
| |
| background-color: rgba(228, 230, 232, 0.9);
| |
| box-shadow:
| |
| inset 0 1px 4px rgba(0,0,0,0.15),
| |
| 0 1px 0 rgba(255,255,255,0.7);
| |
| counter-reset: line;
| |
| margin: 1.5em 0;
| |
| position: relative;
| |
| border-left: 3px solid rgba(0, 200, 100, 0.3);
| |
| }
| |
|
| |
| /* 代码块背景 - 终端风格 */
| |
| pre::before {
| |
| content: "";
| |
| position: absolute;
| |
| top: 0;
| |
| left: 0;
| |
| width: 100%;
| |
| height: 100%;
| |
| background:
| |
| repeating-linear-gradient(
| |
| to bottom,
| |
| transparent 0px,
| |
| transparent 19px,
| |
| rgba(0, 0, 0, 0.05) 19px,
| |
| rgba(0, 0, 0, 0.05) 20px
| |
| );
| |
| pointer-events: none;
| |
| }
| |
|
| |
| /* 代码行号 */
| |
| pre code {
| |
| display: block;
| |
| position: relative;
| |
| background: transparent;
| |
| border: none;
| |
| box-shadow: none;
| |
| padding: 0;
| |
| counter-increment: line;
| |
| }
| |
|
| |
| pre code::before {
| |
| content: counter(line);
| |
| display: inline-block;
| |
| width: 2em;
| |
| margin-right: 1em;
| |
| margin-left: -3em;
| |
| color: #888;
| |
| text-align: right;
| |
| user-select: none;
| |
| border-right: 1px solid rgba(0, 0, 0, 0.1);
| |
| padding-right: 0.5em;
| |
| }
| |
|
| |
| /* 内联代码 */
| |
| p code, li code, td code {
| |
| padding: 0.15em 0.4em;
| |
| margin: 0 0.2em;
| |
| background-color: rgba(220, 220, 220, 0.5);
| |
| border: 1px solid #d8d8d8;
| |
| white-space: nowrap;
| |
| }
| |
|
| |
| /* 控制台输出样式 */
| |
| .console-output {
| |
| background-color: var(--terminal-bg);
| |
| color: var(--console-text-color);
| |
| font-family: var(--pixel-font-12);
| |
| padding: 12px;
| |
| margin: 1em 0;
| |
| border-radius: 3px;
| |
| border: 1px solid rgba(0, 0, 0, 0.2);
| |
| box-shadow: inset 0 0 10px rgba(0, 0, 0, 0.2);
| |
| position: relative;
| |
| overflow: hidden;
| |
| }
| |
|
| |
| /* 控制台头部 */
| |
| .console-output::before {
| |
| content: "> terminal";
| |
| display: block;
| |
| color: rgba(255, 255, 255, 0.5);
| |
| border-bottom: 1px solid rgba(255, 255, 255, 0.1);
| |
| padding-bottom: 5px;
| |
| margin-bottom: 8px;
| |
| font-size: 0.9em;
| |
| }
| |
|
| |
| /* 控制台指示器闪烁 */
| |
| .console-indicator {
| |
| display: inline-block;
| |
| width: 0.8em;
| |
| height: 1em;
| |
| background-color: var(--console-indicator-color);
| |
| margin-left: 0.2em;
| |
| vertical-align: middle;
| |
| animation: console-blink 1s infinite;
| |
| }
| |
|
| |
| /* 确保文本内容清晰可读 */
| |
| p, li, td, th, figcaption, blockquote, cite {
| |
| font-family: var(--body-font);
| |
| line-height: 1.65;
| |
| letter-spacing: 0.01em;
| |
| position: relative;
| |
| text-shadow: var(--crt-text-shadow);
| |
| }
| |
|
| |
| /* 小字体元素 */
| |
| .small, small, .text-small, figcaption, .caption, .info, .note {
| |
| font-family: var(--small-font);
| |
| font-size: var(--small-font-size);
| |
| }
| |
|
| |
| /* 注释、提示和警告样式 */
| |
| .note, .info, .warning, .tip {
| |
| position: relative;
| |
| margin: 1.5em 0;
| |
| padding: 1em 1em 1em 3em;
| |
| border-radius: 3px;
| |
| box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
| |
| font-family: var(--small-font);
| |
| }
| |
|
| |
| .note::before, .info::before, .warning::before, .tip::before {
| |
| position: absolute;
| |
| left: 0.8em;
| |
| top: 50%;
| |
| transform: translateY(-50%);
| |
| font-size: 1.5em;
| |
| opacity: 0.8;
| |
| }
| |
|
| |
| /* 注释样式 */
| |
| .note {
| |
| background-color: rgba(230, 230, 250, 0.4);
| |
| border-left: 3px solid #99c;
| |
| }
| |
|
| |
| .note::before {
| |
| content: "※";
| |
| color: #99c;
| |
| }
| |
|
| |
| /* 信息样式 */
| |
| .info {
| |
| background-color: rgba(220, 237, 255, 0.4);
| |
| border-left: 3px solid #69c;
| |
| }
| |
|
| |
| .info::before {
| |
| content: "ℹ";
| |
| color: #69c;
| |
| }
| |
|
| |
| /* 警告样式 */
| |
| .warning {
| |
| background-color: rgba(255, 240, 230, 0.4);
| |
| border-left: 3px solid #f93;
| |
| }
| |
|
| |
| .warning::before {
| |
| content: "⚠";
| |
| color: #f93;
| |
| }
| |
|
| |
| /* 提示样式 */
| |
| .tip {
| |
| background-color: rgba(230, 250, 230, 0.4);
| |
| border-left: 3px solid #6c6;
| |
| }
| |
|
| |
| .tip::before {
| |
| content: "✓";
| |
| color: #6c6;
| |
| }
| |
|
| |
| /* 图片效果 - 更精致的复古科幻风格 */
| |
| img {
| |
| max-width: 100%;
| |
| height: auto;
| |
| transition: all 0.3s ease;
| |
| border-radius: 3px;
| |
| border: 1px solid rgba(0, 0, 0, 0.1);
| |
| box-shadow: 0 1px 3px rgba(0,0,0,0.05);
| |
| filter: contrast(1.02) brightness(1.01); /* 轻微增强对比度 */
| |
| position: relative;
| |
| }
| |
|
| |
| /* 图片悬停效果 */
| |
| img:hover {
| |
| box-shadow:
| |
| 0 3px 8px rgba(0, 0, 0, 0.15),
| |
| 0 0 10px var(--crt-glow-color);
| |
| transform: scale(1.02) translateY(-2px);
| |
| border-color: rgba(0, 255, 100, 0.3);
| |
| filter: contrast(1.05) brightness(1.02);
| |
| }
| |
|
| |
| /* 图片装饰层 - 模拟CRT显示图片的效果 */
| |
| img::after {
| |
| content: "";
| |
| position: absolute;
| |
| top: 0;
| |
| left: 0;
| |
| width: 100%;
| |
| height: 100%;
| |
| background:
| |
| repeating-linear-gradient(
| |
| to bottom,
| |
| transparent 0px,
| |
| transparent 3px,
| |
| rgba(0, 0, 0, 0.03) 4px,
| |
| rgba(0, 0, 0, 0.03) 4px
| |
| );
| |
| pointer-events: none;
| |
| z-index: 1;
| |
| }
| |
|
| |
| /* 图片标题 */
| |
| figcaption {
| |
| margin-top: 0.5em;
| |
| color: #555;
| |
| font-style: italic;
| |
| text-align: center;
| |
| max-width: 100%;
| |
| }
| |
|
| |
| /* 滚动条样式 - 更精致的复古科幻风格 */
| |
| ::-webkit-scrollbar {
| |
| width: 14px;
| |
| height: 14px;
| |
| }
| |
|
| |
| ::-webkit-scrollbar-track {
| |
| background: rgba(0, 0, 0, 0.04);
| |
| border-radius: 0;
| |
| box-shadow: inset 0 0 4px rgba(0,0,0,0.1);
| |
| }
| |
|
| |
| ::-webkit-scrollbar-thumb {
| |
| background: repeating-linear-gradient(
| |
| to bottom,
| |
| #aaa 0px,
| |
| #aaa 2px,
| |
| #999 3px,
| |
| #999 5px
| |
| );
| |
| border-radius: 0;
| |
| border: 1px solid rgba(0, 0, 0, 0.2);
| |
| box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.3);
| |
| }
| |
|
| |
| ::-webkit-scrollbar-thumb:hover {
| |
| background: repeating-linear-gradient(
| |
| to bottom,
| |
| #bbb 0px,
| |
| #bbb 2px,
| |
| #aaa 3px,
| |
| #aaa 5px
| |
| );
| |
| }
| |
|
| |
| ::-webkit-scrollbar-button {
| |
| background-color: #ddd;
| |
| border: 1px solid #aaa;
| |
| border-radius: 0;
| |
| box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.5);
| |
| width: 14px;
| |
| height: 14px;
| |
| background-position: center;
| |
| background-repeat: no-repeat;
| |
| background-size: 6px;
| |
| }
| |
|
| |
| ::-webkit-scrollbar-button:vertical:decrement {
| |
| background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 10 10'%3E%3Cpolygon points='5,3 8,7 2,7' fill='%23666'/%3E%3C/svg%3E");
| |
| }
| |
|
| |
| ::-webkit-scrollbar-button:vertical:increment {
| |
| background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 10 10'%3E%3Cpolygon points='5,7 8,3 2,3' fill='%23666'/%3E%3C/svg%3E");
| |
| }
| |
|
| |
| ::-webkit-scrollbar-button:horizontal:decrement {
| |
| background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 10 10'%3E%3Cpolygon points='3,5 7,2 7,8' fill='%23666'/%3E%3C/svg%3E");
| |
| }
| |
|
| |
| ::-webkit-scrollbar-button:horizontal:increment {
| |
| background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 10 10'%3E%3Cpolygon points='7,5 3,2 3,8' fill='%23666'/%3E%3C/svg%3E");
| |
| }
| |
|
| |
| /* 滚动条拐角 */
| |
| ::-webkit-scrollbar-corner {
| |
| background-color: #eee;
| |
| border: 1px solid #ccc;
| |
| }
| |
|
| |
| /* 引用块样式 - 更精致的复古科幻风格 */
| |
| blockquote {
| |
| border-left: 3px solid var(--crt-glow-color);
| |
| margin: 1.2em 0;
| |
| padding: 0.8em 1.2em;
| |
| background: rgba(240, 240, 240, 0.5);
| |
| position: relative;
| |
| font-family: var(--body-font);
| |
| box-shadow:
| |
| inset 0 0 15px rgba(0, 255, 100, 0.03),
| |
| 1px 1px 3px rgba(0, 0, 0, 0.05);
| |
| border-radius: 0 3px 3px 0;
| |
| }
| |
|
| |
| blockquote::before {
| |
| content: """;
| |
| position: absolute;
| |
| top: 0;
| |
| left: 10px;
| |
| font-size: 2em;
| |
| color: rgba(0, 0, 0, 0.1);
| |
| font-family: serif;
| |
| }
| |
|
| |
| blockquote p:first-child {
| |
| margin-top: 0;
| |
| }
| |
|
| |
| blockquote p:last-child {
| |
| margin-bottom: 0;
| |
| }
| |
|
| |
| /* 引用源 */
| |
| cite {
| |
| display: block;
| |
| margin-top: 0.5em;
| |
| color: #666;
| |
| font-size: 0.9em;
| |
| font-style: italic;
| |
| }
| |
|
| |
| cite::before {
| |
| content: "— ";
| |
| }
| |
|
| |
| /* 按钮样式 - 更精致的复古科幻风格 */
| |
| .collapseButton, button, .mw-ui-button, input[type="button"], input[type="submit"] {
| |
| font-family: var(--UI-font);
| |
| font-size: calc(var(--base-font-size) * 0.85);
| |
| padding: 6px 12px;
| |
| border: 2px solid #666;
| |
| border-bottom: 4px solid #444;
| |
| border-right: 4px solid #444;
| |
| border-radius: 0;
| |
| background: linear-gradient(to bottom, #eee, #ddd);
| |
| color: #333;
| |
| text-transform: uppercase;
| |
| cursor: pointer;
| |
| transition: all 0.15s ease;
| |
| text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5);
| |
| margin: 2px 4px;
| |
| position: relative;
| |
| text-align: center;
| |
| letter-spacing: 0.05em;
| |
| box-shadow: 0 2px 5px rgba(0, 0, 0, 0.05);
| |
| }
| |
|
| |
| /* 按钮悬停效果 */
| |
| .collapseButton:hover, button:hover, .mw-ui-button:hover, input[type="button"]:hover, input[type="submit"]:hover {
| |
| background: linear-gradient(to bottom, #f5f5f5, #eee);
| |
| border-color: #777;
| |
| border-bottom-color: #555;
| |
| border-right-color: #555;
| |
| transform: translateY(-1px);
| |
| box-shadow: 0 3px 8px rgba(0, 0, 0, 0.1);
| |
| }
| |
|
| |
| /* 按钮点击效果 */
| |
| .collapseButton:active, button:active, .mw-ui-button:active, input[type="button"]:active, input[type="submit"]:active {
| |
| background: linear-gradient(to bottom, #ccc, #ddd);
| |
| border: 2px solid #444;
| |
| border-top: 4px solid #666;
| |
| border-left: 4px solid #666;
| |
| transform: translateY(1px);
| |
| text-shadow: none;
| |
| box-shadow: inset 0 2px 5px rgba(0, 0, 0, 0.1);
| |
| }
| |
|
| |
| /* 按钮装饰效果 */
| |
| .collapseButton::after, button::after, .mw-ui-button::after, input[type="button"]::after, input[type="submit"]::after {
| |
| content: "";
| |
| position: absolute;
| |
| top: 2px;
| |
| left: 2px;
| |
| width: calc(100% - 4px);
| |
| height: 8px;
| |
| background: linear-gradient(to bottom, rgba(255, 255, 255, 0.8), transparent);
| |
| pointer-events: none;
| |
| border-radius: 0;
| |
| }
| |
|
| |
| .navbox .collapseButton {
| |
| width: 6em;
| |
| }
| |
|
| |
| /* 主按钮样式 - 重要操作 */
| |
| .mw-ui-button.mw-ui-primary, button.primary, input[type="submit"].primary {
| |
| background: linear-gradient(to bottom, #6af, #39f);
| |
| border-color: #27e;
| |
| border-bottom-color: #05c;
| |
| border-right-color: #05c;
| |
| color: white;
| |
| text-shadow: 0 1px 1px rgba(0, 0, 0, 0.3);
| |
| }
| |
|
| |
| .mw-ui-button.mw-ui-primary:hover, button.primary:hover, input[type="submit"].primary:hover {
| |
| background: linear-gradient(to bottom, #7bf, #49f);
| |
| border-color: #38f;
| |
| border-bottom-color: #16d;
| |
| border-right-color: #16d;
| |
| }
| |
|
| |
| /* 继续22222.txt中断部分的CSS */
| |
|
| |
| .mw-ui-button.mw-ui-primary:active, button.primary:active, input[type="submit"].primary:active {
| |
| background: linear-gradient(to bottom, #28e, #39f);
| |
| border: 2px solid #05c;
| |
| border-top: 4px solid #16d;
| |
| border-left: 4px solid #16d;
| |
| transform: translateY(1px);
| |
| text-shadow: none;
| |
| box-shadow: inset 0 2px 5px rgba(0, 0, 0, 0.1);
| |
| }
| |
|
| |
| /* 导航容器 - 更精致的复古科幻风格 */
| |
| .navbox {
| |
| background-color: rgba(255, 255, 255, 0.95);
| |
| border: 1px solid var(--custom-navbox-top);
| |
| border-radius: 3px;
| |
| color: #222;
| |
| margin: 1.5em 0;
| |
| padding: 4px;
| |
| font-family: var(--small-font);
| |
| font-size: var(--small-font-size);
| |
| box-shadow:
| |
| var(--box-depth),
| |
| inset 0 0 20px rgba(0, 255, 100, 0.02);
| |
| position: relative;
| |
| overflow: hidden;
| |
| }
| |
|
| |
| /* 导航标题 */
| |
| .navbox-title {
| |
| background: linear-gradient(to bottom, #f8f9fa, var(--custom-navbox-top));
| |
| border: 1px solid var(--custom-navbox-top);
| |
| border-radius: 2px;
| |
| color: #222;
| |
| padding: 8px 12px;
| |
| font-family: var(--title-font);
| |
| font-weight: normal;
| |
| text-align: center;
| |
| text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5), var(--crt-text-shadow);
| |
| position: relative;
| |
| }
| |
|
| |
| /* 导航组 */
| |
| .navbox-group {
| |
| background-color: var(--custom-navbox-middle);
| |
| border: 1px solid var(--custom-navbox-top);
| |
| color: #444;
| |
| font-weight: normal;
| |
| padding: 6px 10px;
| |
| text-align: right;
| |
| white-space: nowrap;
| |
| letter-spacing: 0.03em;
| |
| border-right: 2px solid rgba(0, 0, 0, 0.1);
| |
| }
| |
|
| |
| /* 导航列表 */
| |
| .navbox-list {
| |
| background-color: var(--custom-navbox-thru);
| |
| border: 1px solid var(--custom-navbox-middle);
| |
| padding: 6px 10px;
| |
| text-align: left;
| |
| line-height: 1.5;
| |
| }
| |
|
| |
| /* 导航行悬停效果 */
| |
| .navbox tr:hover td.navbox-list {
| |
| background-color: rgba(0, 255, 100, 0.05);
| |
| }
| |
|
| |
| /* 导航装饰 */
| |
| .navbox::before {
| |
| content: "";
| |
| position: absolute;
| |
| top: 0;
| |
| left: 0;
| |
| width: 100%;
| |
| height: 1px;
| |
| background: linear-gradient(
| |
| to right,
| |
| transparent,
| |
| rgba(255, 255, 255, 0.8),
| |
| transparent
| |
| );
| |
| }
| |
|
| |
| /* 提示框和消息样式 - 像素化科幻风格 */
| |
| .notice {
| |
| position: relative;
| |
| margin: 1.5em 0;
| |
| padding: 1em 1em 1em 4em;
| |
| border-radius: 3px;
| |
| border-left: 4px solid transparent;
| |
| box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
| |
| font-family: var(--small-font);
| |
| animation: micro-flicker 2s infinite alternate ease-in-out;
| |
| }
| |
|
| |
| .notice::before {
| |
| font-family: var(--UI-font);
| |
| position: absolute;
| |
| left: 1em;
| |
| top: 50%;
| |
| transform: translateY(-50%);
| |
| font-size: 1.8em;
| |
| opacity: 0.8;
| |
| }
| |
|
| |
| /* 成功消息 */
| |
| .notice-success {
| |
| background-color: rgba(230, 250, 230, 0.4);
| |
| border-color: #6c6;
| |
| }
| |
|
| |
| .notice-success::before {
| |
| content: "✓";
| |
| color: #6c6;
| |
| }
| |
|
| |
| /* 错误消息 */
| |
| .notice-error {
| |
| background-color: rgba(255, 230, 230, 0.4);
| |
| border-color: #c66;
| |
| }
| |
|
| |
| .notice-error::before {
| |
| content: "✗";
| |
| color: #c66;
| |
| }
| |
|
| |
| /* 警告消息 */
| |
| .notice-warning {
| |
| background-color: rgba(255, 240, 230, 0.4);
| |
| border-color: #f93;
| |
| }
| |
|
| |
| .notice-warning::before {
| |
| content: "⚠";
| |
| color: #f93;
| |
| }
| |
|
| |
| /* 信息消息 */
| |
| .notice-info {
| |
| background-color: rgba(220, 237, 255, 0.4);
| |
| border-color: #69c;
| |
| }
| |
|
| |
| .notice-info::before {
| |
| content: "ℹ";
| |
| color: #69c;
| |
| }
| |
|
| |
| /* 表单元素 - 复古科幻风格 */
| |
| input[type="text"],
| |
| input[type="password"],
| |
| input[type="email"],
| |
| input[type="number"],
| |
| input[type="search"],
| |
| textarea,
| |
| select {
| |
| font-family: var(--pixel-font-12);
| |
| font-size: calc(var(--base-font-size) * 0.9);
| |
| color: #333;
| |
| background-color: rgba(240, 245, 250, 0.95);
| |
| border: 2px solid #aaa;
| |
| border-radius: 0;
| |
| padding: 6px 10px;
| |
| margin: 4px 0;
| |
| box-shadow:
| |
| inset 0 1px 3px rgba(0, 0, 0, 0.1),
| |
| 0 1px 0 rgba(255, 255, 255, 0.7);
| |
| transition: all 0.2s ease;
| |
| }
| |
|
| |
| /* 输入元素悬停状态 */
| |
| input[type="text"]:hover,
| |
| input[type="password"]:hover,
| |
| input[type="email"]:hover,
| |
| input[type="number"]:hover,
| |
| input[type="search"]:hover,
| |
| textarea:hover,
| |
| select:hover {
| |
| border-color: #999;
| |
| background-color: rgba(245, 248, 250, 0.98);
| |
| }
| |
|
| |
| /* 输入元素焦点状态 */
| |
| input[type="text"]:focus,
| |
| input[type="password"]:focus,
| |
| input[type="email"]:focus,
| |
| input[type="number"]:focus,
| |
| input[type="search"]:focus,
| |
| textarea:focus,
| |
| select:focus {
| |
| outline: none;
| |
| border-color: rgba(0, 150, 255, 0.6);
| |
| box-shadow:
| |
| inset 0 1px 3px rgba(0, 0, 0, 0.05),
| |
| 0 0 8px rgba(0, 150, 255, 0.3);
| |
| background-color: #fff;
| |
| }
| |
|
| |
| /* 文本区域 */
| |
| textarea {
| |
| resize: vertical;
| |
| min-height: 80px;
| |
| line-height: 1.5;
| |
| }
| |
|
| |
| /* 复选框和单选按钮 - 复古科幻风格 */
| |
| input[type="checkbox"],
| |
| input[type="radio"] {
| |
| position: relative;
| |
| width: 16px;
| |
| height: 16px;
| |
| margin: 3px 5px 3px 0;
| |
| vertical-align: middle;
| |
| cursor: pointer;
| |
| appearance: none;
| |
| -webkit-appearance: none;
| |
| border: 1px solid #999;
| |
| background-color: rgba(240, 245, 250, 0.9);
| |
| transition: all 0.2s ease;
| |
| }
| |
|
| |
| input[type="checkbox"] {
| |
| border-radius: 2px;
| |
| }
| |
|
| |
| input[type="radio"] {
| |
| border-radius: 50%;
| |
| }
| |
|
| |
| /* 复选框和单选按钮悬停状态 */
| |
| input[type="checkbox"]:hover,
| |
| input[type="radio"]:hover {
| |
| border-color: #666;
| |
| background-color: rgba(245, 248, 250, 0.95);
| |
| }
| |
|
| |
| /* 复选框和单选按钮选中状态 */
| |
| input[type="checkbox"]:checked,
| |
| input[type="radio"]:checked {
| |
| border-color: #0078d7;
| |
| background-color: rgba(0, 120, 215, 0.1);
| |
| }
| |
|
| |
| /* 复选框选中状态图标 */
| |
| input[type="checkbox"]:checked::after {
| |
| content: "";
| |
| position: absolute;
| |
| left: 4px;
| |
| top: 1px;
| |
| width: 5px;
| |
| height: 10px;
| |
| border: solid #0078d7;
| |
| border-width: 0 2px 2px 0;
| |
| transform: rotate(45deg);
| |
| }
| |
|
| |
| /* 单选按钮选中状态图标 */
| |
| input[type="radio"]:checked::after {
| |
| content: "";
| |
| position: absolute;
| |
| left: 3px;
| |
| top: 3px;
| |
| width: 8px;
| |
| height: 8px;
| |
| border-radius: 50%;
| |
| background-color: #0078d7;
| |
| }
| |
|
| |
| /* 标签样式 */
| |
| label {
| |
| font-family: var(--pixel-font-12);
| |
| font-size: calc(var(--base-font-size) * 0.9);
| |
| margin: 0 10px 0 2px;
| |
| vertical-align: middle;
| |
| cursor: pointer;
| |
| }
| |
|
| |
| /* 分页导航 - 复古科幻风格 */
| |
| .pagination {
| |
| display: flex;
| |
| justify-content: center;
| |
| align-items: center;
| |
| margin: 2em 0;
| |
| font-family: var(--UI-font);
| |
| font-size: calc(var(--base-font-size) * 0.85);
| |
| }
| |
|
| |
| .pagination a,
| |
| .pagination span {
| |
| display: inline-flex;
| |
| justify-content: center;
| |
| align-items: center;
| |
| min-width: 32px;
| |
| height: 32px;
| |
| margin: 0 3px;
| |
| padding: 0 10px;
| |
| text-align: center;
| |
| line-height: 1;
| |
| border: 1px solid #ccc;
| |
| border-radius: 0;
| |
| background-color: rgba(240, 245, 250, 0.8);
| |
| color: #444;
| |
| text-decoration: none;
| |
| transition: all 0.2s ease;
| |
| position: relative;
| |
| overflow: hidden;
| |
| }
| |
|
| |
| /* 分页导航悬停效果 */
| |
| .pagination a:hover {
| |
| border-color: #999;
| |
| background-color: rgba(0, 150, 255, 0.1);
| |
| color: var(--link-color-active);
| |
| transform: translateY(-1px);
| |
| box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
| |
| }
| |
|
| |
| /* 当前页面 */
| |
| .pagination .current {
| |
| border-color: #666;
| |
| background-color: rgba(30, 30, 30, 0.8);
| |
| color: #fff;
| |
| font-weight: normal;
| |
| box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.2);
| |
| text-shadow: 0 1px 1px rgba(0, 0, 0, 0.5);
| |
| }
| |
|
| |
| /* 下拉菜单 - 复古科幻风格 */
| |
| .dropdown {
| |
| position: relative;
| |
| display: inline-block;
| |
| font-family: var(--UI-font);
| |
| font-size: calc(var(--base-font-size) * 0.9);
| |
| }
| |
|
| |
| .dropdown-toggle {
| |
| display: inline-flex;
| |
| align-items: center;
| |
| padding: 6px 12px;
| |
| background-color: rgba(240, 245, 250, 0.9);
| |
| border: 1px solid #ccc;
| |
| border-radius: 0;
| |
| cursor: pointer;
| |
| transition: all 0.2s ease;
| |
| }
| |
|
| |
| .dropdown-toggle::after {
| |
| content: "▼";
| |
| font-size: 0.7em;
| |
| margin-left: 8px;
| |
| transition: transform 0.2s ease;
| |
| }
| |
|
| |
| .dropdown-toggle:hover {
| |
| background-color: rgba(245, 248, 250, 0.95);
| |
| border-color: #999;
| |
| }
| |
|
| |
| .dropdown-toggle:hover::after {
| |
| transform: translateY(2px);
| |
| }
| |
|
| |
| .dropdown-menu {
| |
| position: absolute;
| |
| top: 100%;
| |
| left: 0;
| |
| z-index: 1000;
| |
| display: none;
| |
| min-width: 160px;
| |
| padding: 5px 0;
| |
| margin: 2px 0 0;
| |
| background-color: rgba(250, 252, 255, 0.95);
| |
| border: 1px solid #ccc;
| |
| border-radius: 0;
| |
| box-shadow: 0 6px 12px rgba(0, 0, 0, 0.15);
| |
| }
| |
|
| |
| .dropdown-menu.show {
| |
| display: block;
| |
| animation: dropdown-fade 0.2s ease-in-out;
| |
| }
| |
|
| |
| @keyframes dropdown-fade {
| |
| from {
| |
| opacity: 0;
| |
| transform: translateY(-10px);
| |
| }
| |
| to {
| |
| opacity: 1;
| |
| transform: translateY(0);
| |
| }
| |
| }
| |
|
| |
| .dropdown-item {
| |
| display: block;
| |
| padding: 6px 15px;
| |
| clear: both;
| |
| text-decoration: none;
| |
| color: #333;
| |
| white-space: nowrap;
| |
| transition: all 0.15s ease;
| |
| position: relative;
| |
| }
| |
|
| |
| .dropdown-item:hover {
| |
| background-color: rgba(0, 150, 255, 0.1);
| |
| color: var(--link-color-active);
| |
| padding-left: 18px;
| |
| }
| |
|
| |
| .dropdown-divider {
| |
| height: 1px;
| |
| margin: 6px 0;
| |
| background-color: #eee;
| |
| }
| |
|
| |
| /* 终端窗口 - 复古科幻风格 */
| |
| .terminal {
| |
| background-color: var(--terminal-bg);
| |
| color: var(--console-text-color);
| |
| font-family: var(--pixel-font-12);
| |
| padding: 15px;
| |
| margin: 1.5em 0;
| |
| border-radius: 3px;
| |
| border: 1px solid rgba(0, 0, 0, 0.3);
| |
| box-shadow:
| |
| inset 0 0 15px rgba(0, 0, 0, 0.3),
| |
| 0 2px 5px rgba(0, 0, 0, 0.1);
| |
| position: relative;
| |
| overflow: hidden;
| |
| }
| |
|
| |
| /* 终端窗口标题栏 */
| |
| .terminal::before {
| |
| content: "TERMINAL";
| |
| display: block;
| |
| position: absolute;
| |
| top: 0;
| |
| left: 0;
| |
| width: 100%;
| |
| padding: 4px 10px;
| |
| background: linear-gradient(to bottom, #444, #333);
| |
| color: #ddd;
| |
| font-size: 0.8em;
| |
| text-align: center;
| |
| border-bottom: 1px solid #222;
| |
| text-shadow: 0 1px 1px rgba(0, 0, 0, 0.5);
| |
| }
| |
|
| |
| /* 终端内容 */
| |
| .terminal-content {
| |
| margin-top: 25px;
| |
| line-height: 1.4;
| |
| overflow-x: auto;
| |
| white-space: pre-wrap;
| |
| }
| |
|
| |
| /* 终端命令提示符 */
| |
| .terminal-prompt {
| |
| color: #0f0;
| |
| margin-right: 5px;
| |
| }
| |
|
| |
| /* 终端命令行 */
| |
| .terminal-line {
| |
| margin: 5px 0;
| |
| word-break: break-all;
| |
| }
| |
|
| |
| /* 终端光标闪烁 */
| |
| .terminal-cursor {
| |
| display: inline-block;
| |
| width: 0.5em;
| |
| height: 1em;
| |
| background-color: var(--console-indicator-color);
| |
| vertical-align: middle;
| |
| animation: console-blink 1s infinite;
| |
| }
| |
|
| |
| /* 加载指示器 - 复古科幻风格 */
| |
| .loading {
| |
| display: inline-block;
| |
| position: relative;
| |
| width: 80px;
| |
| height: 20px;
| |
| margin: 1em auto;
| |
| text-align: center;
| |
| }
| |
|
| |
| .loading div {
| |
| display: inline-block;
| |
| width: 8px;
| |
| height: 8px;
| |
| margin: 0 3px;
| |
| background-color: rgba(0, 200, 100, 0.8);
| |
| border-radius: 0;
| |
| animation: loading 1.2s cubic-bezier(0, 0.5, 0.5, 1) infinite;
| |
| }
| |
|
| |
| .loading div:nth-child(1) {
| |
| animation-delay: -0.24s;
| |
| }
| |
|
| |
| .loading div:nth-child(2) {
| |
| animation-delay: -0.12s;
| |
| }
| |
|
| |
| .loading div:nth-child(3) {
| |
| animation-delay: 0;
| |
| }
| |
|
| |
| @keyframes loading {
| |
| 0% {
| |
| transform: scaleY(1);
| |
| background-color: rgba(0, 200, 100, 0.8);
| |
| }
| |
| 50% {
| |
| transform: scaleY(2);
| |
| background-color: rgba(0, 255, 100, 0.8);
| |
| }
| |
| 100% {
| |
| transform: scaleY(1);
| |
| background-color: rgba(0, 200, 100, 0.8);
| |
| }
| |
| }
| |
|
| |
| /* 工具提示 - 复古科幻风格 */
| |
| .tooltip {
| |
| position: relative;
| |
| display: inline-block;
| |
| cursor: help;
| |
| }
| |
|
| |
| .tooltip .tooltip-text {
| |
| visibility: hidden;
| |
| width: 200px;
| |
| background-color: rgba(20, 20, 20, 0.9);
| |
| color: #fff;
| |
| text-align: center;
| |
| border-radius: 0;
| |
| padding: 8px 12px;
| |
| position: absolute;
| |
| z-index: 1001;
| |
| bottom: 125%;
| |
| left: 50%;
| |
| margin-left: -100px;
| |
| font-family: var(--small-font);
| |
| font-size: var(--small-font-size);
| |
| line-height: 1.4;
| |
| opacity: 0;
| |
| transition: opacity 0.2s, transform 0.2s;
| |
| transform: translateY(10px);
| |
| box-shadow: 0 5px 15px rgba(0, 0, 0, 0.2);
| |
| border: 1px solid #444;
| |
| text-shadow: none;
| |
| }
| |
|
| |
| /* 工具提示箭头 */
| |
| .tooltip .tooltip-text::after {
| |
| content: "";
| |
| position: absolute;
| |
| top: 100%;
| |
| left: 50%;
| |
| margin-left: -5px;
| |
| border-width: 5px;
| |
| border-style: solid;
| |
| border-color: rgba(20, 20, 20, 0.9) transparent transparent transparent;
| |
| }
| |
|
| |
| /* 显示工具提示 */
| |
| .tooltip:hover .tooltip-text {
| |
| visibility: visible;
| |
| opacity: 1;
| |
| transform: translateY(0);
| |
| }
| |
|
| |
| /* 徽章 - 复古科幻风格 */
| |
| .badge {
| |
| display: inline-block;
| |
| padding: 2px 6px;
| |
| font-size: 0.8em;
| |
| font-family: var(--UI-font);
| |
| line-height: 1;
| |
| text-align: center;
| |
| white-space: nowrap;
| |
| vertical-align: middle;
| |
| background-color: #777;
| |
| color: #fff;
| |
| border-radius: 0;
| |
| margin: 0 3px;
| |
| border: 1px solid rgba(0, 0, 0, 0.2);
| |
| box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2);
| |
| text-shadow: 0 1px 0 rgba(0, 0, 0, 0.5);
| |
| }
| |
|
| |
| .badge-primary {
| |
| background-color: #0078d7;
| |
| }
| |
|
| |
| .badge-success {
| |
| background-color: #5cb85c;
| |
| }
| |
|
| |
| .badge-info {
| |
| background-color: #5bc0de;
| |
| }
| |
|
| |
| .badge-warning {
| |
| background-color: #f0ad4e;
| |
| }
| |
|
| |
| .badge-danger {
| |
| background-color: #d9534f;
| |
| }
| |
|
| |
| /* 进度条 - 复古科幻风格 */
| |
| .progress {
| |
| height: 20px;
| |
| margin: 1em 0;
| |
| background-color: rgba(220, 225, 230, 0.8);
| |
| border-radius: 0;
| |
| box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.1);
| |
| overflow: hidden;
| |
| border: 1px solid #ccc;
| |
| position: relative;
| |
| }
| |
|
| |
| .progress-bar {
| |
| height: 100%;
| |
| background: repeating-linear-gradient(
| |
| 45deg,
| |
| rgba(0, 200, 100, 0.8),
| |
| rgba(0, 200, 100, 0.8) 10px,
| |
| rgba(0, 220, 110, 0.9) 10px,
| |
| rgba(0, 220, 110, 0.9) 20px
| |
| );
| |
| box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);
| |
| transition: width 0.6s ease;
| |
| position: relative;
| |
| animation: progress-animation 2s linear infinite;
| |
| }
| |
|
| |
| @keyframes progress-animation {
| |
| 0% {
| |
| background-position: 0 0;
| |
| }
| |
| 100% {
| |
| background-position: 40px 0;
| |
| }
| |
| }
| |
|
| |
| .progress-text {
| |
| position: absolute;
| |
| top: 0;
| |
| left: 0;
| |
| width: 100%;
| |
| height: 100%;
| |
| display: flex;
| |
| align-items: center;
| |
| justify-content: center;
| |
| color: #333;
| |
| font-family: var(--UI-font);
| |
| font-size: 0.8em;
| |
| text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5);
| |
| }
| |
|
| |
| /* 标签页 - 复古科幻风格 */
| |
| .tabs {
| |
| margin: 1.5em 0;
| |
| border-radius: 0;
| |
| background-color: rgba(255, 255, 255, 0.9);
| |
| border: 1px solid #ccc;
| |
| box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
| |
| }
| |
|
| |
| .tabs-nav {
| |
| display: flex;
| |
| list-style: none;
| |
| padding: 0;
| |
| margin: 0;
| |
| background-color: rgba(240, 245, 250, 0.8);
| |
| border-bottom: 1px solid #ccc;
| |
| }
| |
|
| |
| .tabs-nav li {
| |
| margin: 0;
| |
| }
| |
|
| |
| .tabs-nav a {
| |
| display: block;
| |
| padding: 8px 15px;
| |
| text-decoration: none;
| |
| color: #555;
| |
| border-right: 1px solid #ddd;
| |
| font-family: var(--UI-font);
| |
| font-size: calc(var(--base-font-size) * 0.9);
| |
| transition: all 0.2s ease;
| |
| background: linear-gradient(to bottom, #f5f5f5, #e5e5e5);
| |
| border-bottom: 3px solid transparent;
| |
| }
| |
|
| |
| .tabs-nav a:hover {
| |
| background: linear-gradient(to bottom, #fff, #f0f0f0);
| |
| color: #333;
| |
| transform: none;
| |
| box-shadow: none;
| |
| }
| |
|
| |
| .tabs-nav a.active {
| |
| background: #fff;
| |
| color: #333;
| |
| border-bottom: 3px solid var(--crt-glow-color);
| |
| box-shadow: inset 0 1px 0 rgba(255, 255, 255, 1);
| |
| }
| |
|
| |
| .tabs-content {
| |
| padding: 15px;
| |
| border-radius: 0 0 3px 3px;
| |
| }
| |
|
| |
| .tab-pane {
| |
| display: none;
| |
| }
| |
|
| |
| .tab-pane.active {
| |
| display: block;
| |
| animation: fade-in 0.3s ease-in-out;
| |
| }
| |
|
| |
| @keyframes fade-in {
| |
| from {
| |
| opacity: 0;
| |
| }
| |
| to {
| |
| opacity: 1;
| |
| }
| |
| }
| |
|
| |
| /* 卡片 - 复古科幻风格 */
| |
| .card {
| |
| background-color: rgba(255, 255, 255, 0.95);
| |
| border: 1px solid rgba(0, 0, 0, 0.15);
| |
| border-radius: 0;
| |
| margin: 1em 0;
| |
| box-shadow:
| |
| var(--box-depth),
| |
| inset 0 0 10px rgba(0, 255, 100, 0.02);
| |
| position: relative;
| |
| overflow: hidden;
| |
| transition: all 0.3s ease;
| |
| }
| |
|
| |
| .card:hover {
| |
| transform: translateY(-3px);
| |
| box-shadow:
| |
| 0 5px 15px rgba(0, 0, 0, 0.1),
| |
| inset 0 0 10px rgba(0, 255, 100, 0.04);
| |
| }
| |
|
| |
| .card::before {
| |
| content: "";
| |
| position: absolute;
| |
| top: 0;
| |
| left: 0;
| |
| width: 100%;
| |
| height: 2px;
| |
| background: linear-gradient(to right, transparent, var(--crt-glow-color), transparent);
| |
| }
| |
|
| |
| .card-header {
| |
| background: linear-gradient(to bottom, #f8f9fa, #e8eaec);
| |
| padding: 10px 15px;
| |
| border-bottom: 1px solid rgba(0, 0, 0, 0.1);
| |
| font-family: var(--title-font);
| |
| font-size: calc(var(--base-font-size) * 1.1);
| |
| color: #333;
| |
| text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5), var(--crt-text-shadow);
| |
| position: relative;
| |
| }
| |
|
| |
| .card-body {
| |
| padding: 15px;
| |
| font-family: var(--body-font);
| |
| }
| |
|
| |
| .card-footer {
| |
| background-color: rgba(245, 248, 250, 0.7);
| |
| padding: 10px 15px;
| |
| border-top: 1px solid rgba(0, 0, 0, 0.1);
| |
| }
| |
|
| |
| /* 侧边栏 - 复古科幻风格 */
| |
| .sidebar {
| |
| width: var(--sidebar-width);
| |
| max-height: var(--sidebar-max-height);
| |
| margin-top: var(--sidebar-top-offset);
| |
| background:
| |
| linear-gradient(135deg, rgba(0, 255, 100, 0.05) 0%, transparent 100%),
| |
| linear-gradient(to bottom, rgba(220, 230, 240, 0.9), rgba(190, 210, 225, 0.95));
| |
| border: 1px solid rgba(0, 0, 0, 0.2);
| |
| border-radius: 3px;
| |
| box-shadow:
| |
| var(--box-depth),
| |
| inset 0 0 20px rgba(0, 200, 255, 0.07);
| |
| overflow-y: auto;
| |
| position: sticky;
| |
| top: var(--sidebar-top-offset);
| |
| transition: all 0.3s ease;
| |
| }
| |
|
| |
| .sidebar-header {
| |
| background: linear-gradient(to bottom, #445, #334);
| |
| color: #fff;
| |
| padding: 12px 15px;
| |
| font-family: var(--title-font);
| |
| font-size: calc(var(--base-font-size) * 1.1);
| |
| text-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);
| |
| text-align: center;
| |
| border-bottom: 1px solid #223;
| |
| letter-spacing: 0.05em;
| |
| position: relative;
| |
| }
| |
|
| |
| .sidebar-header::after {
| |
| content: "";
| |
| position: absolute;
| |
| bottom: 0;
| |
| left: 0;
| |
| width: 100%;
| |
| height: 1px;
| |
| background: linear-gradient(to right, transparent, rgba(255, 255, 255, 0.2), transparent);
| |
| }
| |
|
| |
| .sidebar-section {
| |
| padding: 10px 15px;
| |
| border-bottom: 1px solid rgba(0, 0, 0, 0.1);
| |
| }
| |
|
| |
| .sidebar-section:last-child {
| |
| border-bottom: none;
| |
| }
| |
|
| |
| .sidebar-title {
| |
| font-family: var(--UI-font);
| |
| font-size: calc(var(--base-font-size) * 0.95);
| |
| color: #333;
| |
| margin: 0 0 8px 0;
| |
| padding-bottom: 5px;
| |
| border-bottom: 1px dashed rgba(0, 0, 0, 0.1);
| |
| text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5);
| |
| }
| |
|
| |
| .sidebar-list {
| |
| list-style: none;
| |
| margin: 0;
| |
| padding: 0;
| |
| }
| |
|
| |
| .sidebar-list li {
| |
| margin: 5px 0;
| |
| padding: 0;
| |
| }
| |
|
| |
| .sidebar-list a {
| |
| display: block;
| |
| padding: 5px 8px;
| |
| color: var(--link-color);
| |
| text-decoration: none;
| |
| font-size: calc(var(--base-font-size) * 0.9);
| |
| transition: all 0.2s ease;
| |
| text-shadow: 0 0 2px rgba(0, 100, 255, 0.1);
| |
| border-left: 2px solid transparent;
| |
| }
| |
|
| |
| .sidebar-list a:hover {
| |
| background-color: rgba(0, 150, 255, 0.1);
| |
| color: var(--link-color-active);
| |
| text-shadow: 0 0 5px rgba(0, 150, 255, 0.3);
| |
| transform: translateX(2px);
| |
| border-left: 2px solid var(--crt-glow-color);
| |
| }
| |
|
| |
| .sidebar-list a.active {
| |
| background-color: rgba(0, 200, 100, 0.1);
| |
| color: #008851;
| |
| border-left: 2px solid #008851;
| |
| font-weight: normal;
| |
| }
| |
|
| |
| /* 弹窗对话框 - 复古科幻风格 */
| |
| .modal {
| |
| position: fixed;
| |
| top: 0;
| |
| left: 0;
| |
| width: 100%;
| |
| height: 100%;
| |
| background-color: rgba(0, 0, 0, 0.5);
| |
| display: flex;
| |
| justify-content: center;
| |
| align-items: center;
| |
| z-index: 1050;
| |
| opacity: 0;
| |
| visibility: hidden;
| |
| transition: all 0.3s ease;
| |
| }
| |
|
| |
| .modal.show {
| |
| opacity: 1;
| |
| visibility: visible;
| |
| }
| |
|
| |
| .modal-dialog {
| |
| width: 100%;
| |
| max-width: 500px;
| |
| margin: 1.75rem;
| |
| background-color: rgba(245, 250, 255, 0.95);
| |
| border: 1px solid rgba(0, 0, 0, 0.2);
| |
| border-radius: 0;
| |
| box-shadow:
| |
| 0 10px 25px rgba(0, 0, 0, 0.3),
| |
| inset 0 0 30px rgba(0, 255, 100, 0.05);
| |
| transform: translateY(-50px);
| |
| transition: transform 0.3s ease;
| |
| position: relative;
| |
| overflow: hidden;
| |
| }
| |
|
| |
| .modal.show .modal-dialog {
| |
| transform: translateY(0);
| |
| }
| |
|
| |
| .modal-header {
| |
| display: flex;
| |
| align-items: center;
| |
| justify-content: space-between;
| |
| padding: 12px 15px;
| |
| border-bottom: 1px solid #e9ecef;
| |
| background: linear-gradient(to bottom, #f8f9fa, #e8eaec);
| |
| }
| |
|
| |
| .modal-title {
| |
| margin: 0;
| |
| font-family: var(--title-font);
| |
| font-size: calc(var(--base-font-size) * 1.1);
| |
| color: #333;
| |
| text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5), var(--crt-text-shadow);
| |
| }
| |
|
| |
| .modal-close {
| |
| padding: 0;
| |
| background-color: transparent;
| |
| border: 0;
| |
| float: right;
| |
| font-size: 1.5rem;
| |
| font-weight: 700;
| |
| line-height: 1;
| |
| color: #000;
| |
| text-shadow: 0 1px 0 #fff;
| |
| opacity: 0.5;
| |
| cursor: pointer;
| |
| }
| |
|
| |
| .modal-close:hover {
| |
| opacity: 0.75;
| |
| text-shadow: 0 0 5px rgba(0, 0, 0, 0.2);
| |
| }
| |
|
| |
| .modal-body {
| |
| padding: 15px;
| |
| font-family: var(--body-font);
| |
| }
| |
|
| |
| .modal-footer {
| |
| display: flex;
| |
| align-items: center;
| |
| justify-content: flex-end;
| |
| padding: 12px 15px;
| |
| border-top: 1px solid #e9ecef;
| |
| background-color: rgba(245, 248, 250, 0.7);
| |
| }
| |
|
| |
| .modal-footer > button {
| |
| margin-left: 5px;
| |
| }
| |
|
| |
| /* 自定义滚动条 */
| |
| .custom-scrollbar {
| |
| scrollbar-width: thin;
| |
| scrollbar-color: #999 #f5f5f5;
| |
| }
| |
|
| |
| .custom-scrollbar::-webkit-scrollbar {
| |
| width: 8px;
| |
| height: 8px;
| |
| }
| |
|
| |
| .custom-scrollbar::-webkit-scrollbar-track {
| |
| background: rgba(0, 0, 0, 0.03);
| |
| border-radius: 0;
| |
| }
| |
|
| |
| .custom-scrollbar::-webkit-scrollbar-thumb {
| |
| background: repeating-linear-gradient(
| |
| to bottom,
| |
| #aaa 0px,
| |
| #aaa 2px,
| |
| #999 3px,
| |
| #999 5px
| |
| );
| |
| border-radius: 0;
| |
| border: 1px solid rgba(0, 0, 0, 0.1);
| |
| }
| |
|
| |
| /* 打字机效果文本 */
| |
| .typewriter {
| |
| overflow: hidden;
| |
| white-space: nowrap;
| |
| border-right: 2px solid var(--console-text-color);
| |
| animation: typing 3.5s steps(40, end), blink-caret 0.75s step-end infinite;
| |
| display: inline-block;
| |
| }
| |
|
| |
| @keyframes typing {
| |
| from { width: 0 }
| |
| to { width: 100% }
| |
| }
| |
|
| |
| @keyframes blink-caret {
| |
| from, to { border-color: transparent }
| |
| 50% { border-color: var(--console-text-color) }
| |
| }
| |
|
| |
| /* 折叠面板 - 复古科幻风格 */
| |
| .accordion {
| |
| margin: 1.5em 0;
| |
| border: 1px solid #ccc;
| |
| border-radius: 0;
| |
| background-color: rgba(255, 255, 255, 0.9);
| |
| box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
| |
| }
| |
|
| |
| .accordion-item {
| |
| border-bottom: 1px solid #ddd;
| |
| }
| |
|
| |
| .accordion-item:last-child {
| |
| border-bottom: none;
| |
| }
| |
|
| |
| .accordion-header {
| |
| padding: 0;
| |
| margin: 0;
| |
| }
| |
|
| |
| .accordion-button {
| |
| display: block;
| |
| width: 100%;
| |
| padding: 12px 15px;
| |
| background: linear-gradient(to bottom, #f8f9fa, #e8eaec);
| |
| color: #333;
| |
| text-align: left;
| |
| border: none;
| |
| cursor: pointer;
| |
| font-family: var(--title-font);
| |
| font-size: calc(var(--base-font-size) * 1);
| |
| font-weight: normal;
| |
| text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5);
| |
| position: relative;
| |
| transition: all 0.3s ease;
| |
| }
| |
|
| |
| .accordion-button::after {
| |
| content: "▼";
| |
| position: absolute;
| |
| right: 15px;
| |
| top: 50%;
| |
| transform: translateY(-50%);
| |
| font-size: 0.7em;
| |
| transition: transform 0.3s ease;
| |
| }
| |
|
| |
| .accordion-button.collapsed::after {
| |
| transform: translateY(-50%) rotate(-90deg);
| |
| }
| |
|
| |
| .accordion-button:hover {
| |
| background: linear-gradient(to bottom, #fff, #f0f0f0);
| |
| }
| |
|
| |
| .accordion-body {
| |
| padding: 15px;
| |
| display: none;
| |
| font-family: var(--body-font);
| |
| }
| |
|
| |
| .accordion-body.show {
| |
| display: block;
| |
| }
| |
|
| |
| /* 文章卡片 - 复古科幻风格 */
| |
| .article-card {
| |
| display: flex;
| |
| flex-direction: column;
| |
| margin: 1.5em 0;
| |
| background-color: rgba(255, 255, 255, 0.95);
| |
| border: 1px solid rgba(0, 0, 0, 0.15);
| |
| border-radius: 0;
| |
| box-shadow:
| |
| var(--box-depth),
| |
| inset 0 0 10px rgba(0, 255, 100, 0.02);
| |
| overflow: hidden;
| |
| transition: all 0.3s ease;
| |
| position: relative;
| |
| }
| |
|
| |
| .article-card::before {
| |
| content: "";
| |
| position: absolute;
| |
| top: 0;
| |
| left: 0;
| |
| width: 100%;
| |
| height: 2px;
| |
| background: linear-gradient(to right, transparent, var(--crt-glow-color), transparent);
| |
| }
| |
|
| |
| .article-card:hover {
| |
| transform: translateY(-3px);
| |
| box-shadow:
| |
| 0 5px 15px rgba(0, 0, 0, 0.1),
| |
| inset 0 0 10px rgba(0, 255, 100, 0.04);
| |
| }
| |
|
| |
| .article-header {
| |
| padding: 15px;
| |
| border-bottom: 1px solid rgba(0, 0, 0, 0.1);
| |
| }
| |
|
| |
| .article-title {
| |
| margin: 0 0 10px 0;
| |
| font-family: var(--title-font);
| |
| font-size: calc(var(--base-font-size) * 1.3);
| |
| color: #333;
| |
| text-shadow: var(--crt-text-shadow);
| |
| }
| |
|
| |
| .article-meta {
| |
| display: flex;
| |
| align-items: center;
| |
| font-family: var(--small-font);
| |
| font-size: var(--small-font-size);
| |
| color: #777;
| |
| }
| |
|
| |
| .article-author {
| |
| margin-right: 15px;
| |
| }
| |
|
| |
| .article-date {
| |
| margin-right: 15px;
| |
| }
| |
|
| |
| .article-thumbnail {
| |
| width: 100%;
| |
| height: 200px;
| |
| object-fit: cover;
| |
| border-bottom: 1px solid rgba(0, 0, 0, 0.1);
| |
| }
| |
|
| |
| .article-content {
| |
| padding: 15px;
| |
| flex: 1;
| |
| font-family: var(--body-font);
| |
| }
| |
|
| |
| .article-footer {
| |
| display: flex;
| |
| align-items: center;
| |
| justify-content: space-between;
| |
| padding: 10px 15px;
| |
| background-color: rgba(245, 248, 250, 0.7);
| |
| border-top: 1px solid rgba(0, 0, 0, 0.1);
| |
| }
| |
|
| |
| .article-tags {
| |
| display: flex;
| |
| flex-wrap: wrap;
| |
| gap: 5px;
| |
| }
| |
|
| |
| .article-tag {
| |
| display: inline-block;
| |
| padding: 2px 6px;
| |
| font-size: 0.8em;
| |
| font-family: var(--UI-font);
| |
| background-color: rgba(0, 150, 255, 0.1);
| |
| color: var(--link-color);
| |
| border-radius: 0;
| |
| border: 1px solid rgba(0, 150, 255, 0.2);
| |
| transition: all 0.2s ease;
| |
| }
| |
|
| |
| .article-tag:hover {
| |
| background-color: rgba(0, 150, 255, 0.2);
| |
| color: var(--link-color-active);
| |
| transform: translateY(-1px);
| |
| }
| |
|
| |
| /* 网格布局 - 复古科幻风格 */
| |
| .grid {
| |
| display: grid;
| |
| grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
| |
| gap: 20px;
| |
| margin: 1.5em 0;
| |
| }
| |
|
| |
| .grid-item {
| |
| background-color: rgba(255, 255, 255, 0.95);
| |
| border: 1px solid rgba(0, 0, 0, 0.15);
| |
| border-radius: 0;
| |
| padding: 15px;
| |
| box-shadow: var(--box-depth);
| |
| transition: all 0.3s ease;
| |
| position: relative;
| |
| overflow: hidden;
| |
| }
| |
|
| |
| .grid-item::before {
| |
| content: "";
| |
| position: absolute;
| |
| top: 0;
| |
| left: 0;
| |
| width: 100%;
| |
| height: 2px;
| |
| background: linear-gradient(to right, transparent, var(--crt-glow-color), transparent);
| |
| opacity: 0;
| |
| transition: opacity 0.3s ease;
| |
| }
| |
|
| |
| .grid-item:hover {
| |
| transform: translateY(-3px);
| |
| box-shadow: 0 5px 15px rgba(0, 0, 0, 0.1);
| |
| }
| |
|
| |
| .grid-item:hover::before {
| |
| opacity: 1;
| |
| }
| |
|
| |
| /* 按钮组 - 复古科幻风格 */
| |
| .btn-group {
| |
| display: inline-flex;
| |
| vertical-align: middle;
| |
| }
| |
|
| |
| .btn-group button {
| |
| margin: 0;
| |
| border-radius: 0;
| |
| }
| |
|
| |
| .btn-group button:not(:first-child) {
| |
| border-left: none;
| |
| }
| |
|
| |
| .btn-group button:first-child {
| |
| border-top-left-radius: 0;
| |
| border-bottom-left-radius: 0;
| |
| }
| |
|
| |
| .btn-group button:last-child {
| |
| border-top-right-radius: 0;
| |
| border-bottom-right-radius: 0;
| |
| }
| |
|
| |
| /* 通知横幅 - 复古科幻风格 */
| |
| .banner {
| |
| display: flex;
| |
| align-items: center;
| |
| margin: 1.5em 0;
| |
| padding: 12px 15px;
| |
| background-color: rgba(245, 248, 250, 0.9);
| |
| border: 1px solid rgba(0, 0, 0, 0.15);
| |
| border-radius: 0;
| |
| box-shadow: var(--box-depth);
| |
| position: relative;
| |
| overflow: hidden;
| |
| }
| |
|
| |
| .banner::before {
| |
| content: "";
| |
| position: absolute;
| |
| top: 0;
| |
| left: 0;
| |
| width: 100%;
| |
| height: 2px;
| |
| background: linear-gradient(to right, transparent, var(--crt-glow-color), transparent);
| |
| }
| |
|
| |
| .banner-icon {
| |
| margin-right: 15px;
| |
| font-size: 1.5em;
| |
| color: #777;
| |
| }
| |
|
| |
| .banner-content {
| |
| flex: 1;
| |
| font-family: var(--body-font);
| |
| }
| |
|
| |
| .banner-title {
| |
| font-family: var(--title-font);
| |
| font-size: calc(var(--base-font-size) * 1.1);
| |
| margin: 0 0 5px 0;
| |
| color: #333;
| |
| }
| |
|
| |
| .banner-text {
| |
| margin: 0;
| |
| color: #555;
| |
| }
| |
|
| |
| .banner-close {
| |
| margin-left: 15px;
| |
| cursor: pointer;
| |
| color: #777;
| |
| font-size: 1.2em;
| |
| transition: all 0.2s ease;
| |
| }
| |
|
| |
| .banner-close:hover {
| |
| color: #333;
| |
| transform: scale(1.1);
| |
| }
| |
|
| |
| /* 主题变换按钮 - 复古科幻风格 */
| |
| .theme-switch {
| |
| position: fixed;
| |
| bottom: 20px;
| |
| right: 20px;
| |
| z-index: 1000;
| |
| background-color: rgba(20, 20, 20, 0.8);
| |
| color: #fff;
| |
| border: none;
| |
| border-radius: 0;
| |
| padding: 8px 12px;
| |
| font-family: var(--UI-font);
| |
| font-size: calc(var(--base-font-size) * 0.8);
| |
| cursor: pointer;
| |
| box-shadow: 0 2px 5px rgba(0, 0, 0, 0.2);
| |
| transition: all 0.2s ease;
| |
| display: flex;
| |
| align-items: center;
| |
| gap: 5px;
| |
| }
| |
|
| |
| .theme-switch-icon {
| |
| font-size: 1.2em;
| |
| }
| |
|
| |
| .theme-switch:hover {
| |
| background-color: rgba(30, 30, 30, 0.9);
| |
| transform: translateY(-2px);
| |
| box-shadow: 0 4px 8px rgba(0, 0, 0, 0.3);
| |
| }
| |
|
| |
| /* 页脚 - 复古科幻风格 */
| |
| .footer {
| |
| margin-top: 3rem;
| |
| padding: 2rem 0;
| |
| background-color: rgba(240, 245, 250, 0.9);
| |
| border-top: 1px solid rgba(0, 0, 0, 0.1);
| |
| font-family: var(--small-font);
| |
| font-size: var(--small-font-size);
| |
| text-align: center;
| |
| position: relative;
| |
| }
| |
|
| |
| .footer::before {
| |
| content: "";
| |
| position: absolute;
| |
| top: 0;
| |
| left: 0;
| |
| width: 100%;
| |
| height: 1px;
| |
| background: linear-gradient(to right, transparent, rgba(255, 255, 255, 0.8), transparent);
| |
| }
| |
|
| |
| .footer-links {
| |
| display: flex;
| |
| justify-content: center;
| |
| flex-wrap: wrap;
| |
| gap: 20px;
| |
| margin-bottom: 1rem;
| |
| }
| |
|
| |
| .footer-link {
| |
| color: var(--link-color);
| |
| text-decoration: none;
| |
| transition: all 0.2s ease;
| |
| }
| |
|
| |
| .footer-link:hover {
| |
| color: var(--link-color-active);
| |
| text-shadow: 0 0 3px rgba(0, 150, 255, 0.3);
| |
| }
| |
|
| |
| .footer-copyright {
| |
| color: #777;
| |
| margin: 0;
| |
| }
| |
|
| |
| /* 媒体查询 - 响应式布局 */
| |
| @media screen and (max-width: 768px) {
| |
| :root {
| |
| --base-font-size: 14px;
| |
| --small-font-size: 12px;
| |
| }
| |
|
| |
| body {
| |
| padding: 1rem;
| |
| margin: 0.5rem;
| |
| }
| |
|
| |
| .sidebar {
| |
| width: 100%;
| |
| max-height: none;
| |
| margin-top: 1rem;
| |
| position: static;
| |
| }
| |
|
| |
| .grid {
| |
| grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
| |
| }
| |
|
| |
| .notaninfobox {
| |
| float: none;
| |
| width: 100%;
| |
| margin: 1em 0;
| |
| }
| |
|
| |
| .modal-dialog {
| |
| margin: 1rem;
| |
| max-width: 100%;
| |
| }
| |
| }
| |
|
| |
| @media screen and (min-width: 1440px) {
| |
| :root {
| |
| --base-font-size: 16px;
| |
| --small-font-size: 14px;
| |
| }
| |
|
| |
| body {
| |
| width: 80%;
| |
| max-width: 1400px;
| |
| }
| |
| }
| |
|
| |
| /* 打印样式优化 */
| |
| @media print {
| |
| :root {
| |
| --crt-effects-display: none;
| |
| }
| |
|
| |
| html, body {
| |
| background: #fff !important;
| |
| color: #000 !important;
| |
| }
| |
|
| |
| body::before,
| |
| body::after,
| |
| .crt-primary-scanline,
| |
| .crt-secondary-scanline,
| |
| .crt-fast-scanline,
| |
| .crt-scanline-shadow,
| |
| .crt-curve-effect,
| |
| .crt-monitor-frame,
| |
| .crt-reflection,
| |
| .theme-switch {
| |
| display: none !important;
| |
| }
| |
|
| |
| * {
| |
| text-shadow: none !important;
| |
| box-shadow: none !important;
| |
| animation: none !important;
| |
| border-color: #ddd !important;
| |
| }
| |
|
| |
| a {
| |
| color: #000 !important;
| |
| text-decoration: underline !important;
| |
| }
| |
|
| |
| a::before {
| |
| display: none !important;
| |
| }
| |
|
| |
| pre, code {
| |
| border: 1px solid #ddd;
| |
| background: #f8f8f8 !important;
| |
| }
| |
|
| |
| .notaninfobox,
| |
| .card,
| |
| .article-card,
| |
| .sidebar,
| |
| .banner,
| |
| .modal {
| |
| box-shadow: none !important;
| |
| border: 1px solid #ddd !important;
| |
| }
| |
| }
| |
|
| |
| /* 为JS操作预留的类 */
| |
| .hidden {
| |
| display: none !important;
| |
| }
| |
|
| |
| .visible {
| |
| display: block !important;
| |
| }
| |
|
| |
| .invisible {
| |
| visibility: hidden !important;
| |
| }
| |
|
| |
| .transparent {
| |
| opacity: 0 !important;
| |
| }
| |
|
| |
| .no-transitions {
| |
| transition: none !important;
| |
| }
| |
|
| |
| /* 页面加载后自动添加CRT效果元素和功能性JS */
| |
| document.addEventListener('DOMContentLoaded', function() {
| |
| // 创建一个隐藏/显示CRT效果的按钮
| |
| var toggleButton = document.createElement('button');
| |
| toggleButton.innerHTML = '切换CRT效果';
| |
| toggleButton.className = 'theme-switch';
| |
| toggleButton.innerHTML = '<span class="theme-switch-icon">📺</span> CRT效果';
| |
|
| |
| // 添加事件监听
| |
| toggleButton.addEventListener('click', function() {
| |
| var root = document.documentElement;
| |
| var currentDisplay = getComputedStyle(root).getPropertyValue('--crt-effects-display').trim();
| |
|
| |
| if (currentDisplay === 'block' || currentDisplay === '') {
| |
| root.style.setProperty('--crt-effects-display', 'none');
| |
| toggleButton.innerHTML = '<span class="theme-switch-icon">📺</span> 显示CRT';
| |
| } else {
| |
| root.style.setProperty('--crt-effects-display', 'block');
| |
| toggleButton.innerHTML = '<span class="theme-switch-icon">📺</span> 隐藏CRT';
| |
| }
| |
| });
| |
|
| |
| document.body.appendChild(toggleButton);
| |
|
| |
| // 添加CRT效果元素
| |
| var body = document.querySelector('body');
| |
|
| |
| // CRT曲面效果
| |
| var crtCurveEffect = document.createElement('div');
| |
| crtCurveEffect.className = 'crt-curve-effect';
| |
| body.appendChild(crtCurveEffect);
| |
|
| |
| // CRT显示器边框
| |
| var crtMonitorFrame = document.createElement('div');
| |
| crtMonitorFrame.className = 'crt-monitor-frame';
| |
| body.appendChild(crtMonitorFrame);
| |
|
| |
| // CRT反光效果
| |
| var crtReflection = document.createElement('div');
| |
| crtReflection.className = 'crt-reflection';
| |
| body.appendChild(crtReflection);
| |
|
| |
| // 主扫描线
| |
| var primaryScanline = document.createElement('div');
| |
| primaryScanline.className = 'crt-primary-scanline';
| |
| body.appendChild(primaryScanline);
| |
|
| |
| // 副扫描线
| |
| var secondaryScanline = document.createElement('div');
| |
| secondaryScanline.className = 'crt-secondary-scanline';
| |
| body.appendChild(secondaryScanline);
| |
|
| |
| // 快速扫描线
| |
| var fastScanline = document.createElement('div');
| |
| fastScanline.className = 'crt-fast-scanline';
| |
| body.appendChild(fastScanline);
| |
|
| |
| // 扫描线阴影
| |
| var scanlineShadow = document.createElement('div');
| |
| scanlineShadow.className = 'crt-scanline-shadow';
| |
| body.appendChild(scanlineShadow);
| |
|
| |
| // 标签页功能
| |
| var tabLinks = document.querySelectorAll('.tabs-nav a');
| |
|
| |
| tabLinks.forEach(function(link) {
| |
| link.addEventListener('click', function(e) {
| |
| e.preventDefault();
| |
|
| |
| // 移除所有活动类
| |
| tabLinks.forEach(function(l) {
| |
| l.classList.remove('active');
| |
| });
| |
|
| |
| // 添加活动类到当前链接
| |
| this.classList.add('active');
| |
|
| |
| // 获取目标面板ID
| |
| var targetId = this.getAttribute('href').substring(1);
| |
|
| |
| // 隐藏所有面板
| |
| var tabPanes = document.querySelectorAll('.tab-pane');
| |
| tabPanes.forEach(function(pane) {
| |
| pane.classList.remove('active');
| |
| });
| |
|
| |
| // 显示目标面板
| |
| document.getElementById(targetId).classList.add('active');
| |
| });
| |
| });
| |
|
| |
| // 折叠面板功能
| |
| var accordionButtons = document.querySelectorAll('.accordion-button');
| |
|
| |
| accordionButtons.forEach(function(button) {
| |
| button.addEventListener('click', function() {
| |
| this.classList.toggle('collapsed');
| |
|
| |
| var target = this.getAttribute('data-target');
| |
| var body = document.querySelector(target);
| |
|
| |
| if (body.classList.contains('show')) {
| |
| body.classList.remove('show');
| |
| } else {
| |
| body.classList.add('show');
| |
| }
| |
| });
| |
| });
| |
|
| |
| // 实现打字机效果
| |
| var typewriterElements = document.querySelectorAll('.typewriter');
| |
|
| |
| typewriterElements.forEach(function(element) {
| |
| var text = element.textContent;
| |
| element.innerHTML = "";
| |
| element.style.width = "0";
| |
|
| |
| var i = 0;
| |
| var speed = 50; // 打字速度,毫秒每字符
| |
|
| |
| function typeWriter() {
| |
| if (i < text.length) {
| |
| element.innerHTML += text.charAt(i);
| |
| i++;
| |
| setTimeout(typeWriter, speed);
| |
| }
| |
| }
| |
|
| |
| // 文本可见后开始打字效果
| |
| var observer = new IntersectionObserver(function(entries) {
| |
| entries.forEach(function(entry) {
| |
| if (entry.isIntersecting) {
| |
| typeWriter();
| |
| observer.unobserve(element);
| |
| }
| |
| });
| |
| });
| |
|
| |
| observer.observe(element);
| |
| });
| |
| });
| |