首页
最近更改
MediaWiki帮助
中文社区
模组
人物
团体
群聊
历史
外网社区
模组
发帖交流
论坛
聊天
博客
快捷访问
分类
文件列表
上传文件
用户列表
用户通知
礼物列表
随机页面
聊天中的在线用户
系统消息
讨论
查看源代码
查看历史
刷新
创建账号
登录
查看“︁MediaWiki:Common.css”︁的源代码
来自Age Of History 2 Chinese Wiki
←
Common.css
跳转至:
导航
、
搜索
因为以下原因,您没有权限编辑该页面:
您请求的操作仅限属于该用户组的用户执行:
用户
此页面为本wiki上的软件提供界面文本,并受到保护以防止滥用。 如欲修改所有wiki的翻译,请访问
translatewiki.net
上的MediaWiki本地化项目。
您无权编辑此CSS页面,因为编辑此页面可能会影响所有访问者。
您可以查看和复制此页面的源代码。
/* 这里放置的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.12; /* 主扫描线透明度 */ --crt-secondary-scanline-alpha: 0.08; /* 副扫描线透明度 */ --crt-fast-scanline-alpha: 0.25; /* 快速扫描线透明度 */ --crt-flicker-alpha: 0.04; /* 屏幕闪烁强度 */ --crt-noise-alpha: 0.03; /* 噪点强度 */ --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.12; /* 暗角效果强度 */ /* 网格背景相关变量 */ --grid-color: rgba(0, 0, 0, 0.08); --grid-size: 40px; --grid-line-width: 1px; /* 字体设置 - 只使用VonwaonBitmap */ --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); } /* 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; } } /* 主扫描线动画 - 更慢、更明显 */ @keyframes primary-scanline { 0% { transform: translateY(-20px); } 100% { transform: translateY(100vh); } } /* 副扫描线动画 - 中速移动 */ @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); } 35% { opacity: 0; } 100% { opacity: 0; transform: translateY(100vh); } } @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); } } /* 全局和背景样式 - 增强质感 */ html { min-height: 100%; background-color: #ffffff; 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; overflow-x: hidden; /* 防止水平滚动条出现 */ } body { font-family: var(--body-font); font-size: var(--base-font-size); line-height: 1.65; color: #222; position: relative; min-height: calc(100vh - 2rem); margin: 1rem; padding: 1.5rem; background-color: rgba(255, 255, 255, var(--glass-opacity)); border-radius: 4px; 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)); } /* 添加暗角效果 - 增强CRT显示器质感 */ body::before { content: ""; display: var(--crt-effects-display); position: fixed; top: 0; left: 0; width: 100%; height: 100%; pointer-events: none; z-index: 9998; background: radial-gradient( circle at center, transparent 40%, rgba(0, 0, 0, var(--crt-vignette-opacity)) 140% ); mix-blend-mode: multiply; } /* CRT扫描线效果 - 使用新的三种不同类型的扫描线 */ /* 1. 主扫描线 - 较宽的水平线 */ .crt-primary-scanline { content: ""; display: var(--crt-effects-display); position: fixed; top: 0; left: 0; width: 100%; height: 8px; /* 主扫描线较宽 */ 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 12s 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; animation: secondary-scanline 18s linear infinite; } /* 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 2.5s cubic-bezier(0.15, 0.85, 0.5, 1) infinite; } /* 标题样式 - 只使用VonwaonBitmap 16px字体 */ 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; } 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% ); } body h1 { font-size: calc(var(--base-font-size) * 1.7); text-transform: uppercase; padding-left: 10px; border-left: 3px solid var(--crt-glow-color); } h2 { font-size: calc(var(--base-font-size) * 1.5); } h3 { font-size: calc(var(--base-font-size) * 1.3); } h4 { font-size: calc(var(--base-font-size) * 1.2); } h5, h6 { font-size: calc(var(--base-font-size) * 1.1); } /* 链接样式 - 增强质感 */ 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); } 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); } /* 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; } .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: 8px 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; } @keyframes shine { 0% { left: -150%; } 30% { left: -150%; } 60% { left: 150%; } 100% { left: 150%; } } .notaninfobox .infobox-row .infobox-row-label { font-family: var(--UI-font); font-weight: 600; color: #444; text-shadow: none; letter-spacing: 0.03em; } /* 表格样式 - 增强质感 */ 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); } table caption { font-family: var(--title-font); font-size: calc(var(--base-font-size) * 1.05); padding: 8px; font-weight: normal; text-shadow: var(--crt-text-shadow); } 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: 10px 14px; border-bottom: 2px solid rgba(0, 0, 0, 0.1); } 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); } /* 代码样式 - 增强科技感 */ 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; 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; } /* 添加代码行号 */ 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: 1.5em; margin-right: 1em; color: #888; text-align: right; user-select: none; } /* 确保文本内容清晰可读 */ 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); } /* 图片效果 - 增强质感 */ 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); /* 轻微增强对比度 */ } 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); } /* 滚动条样式 - 像素风格 */ ::-webkit-scrollbar { width: 12px; height: 12px; } ::-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 ); } /* 引用块样式 */ blockquote { border-left: 3px solid var(--crt-glow-color); margin: 1em 0; padding: 0.5em 1em; background: rgba(240, 240, 240, 0.5); position: relative; font-family: var(--body-font); } blockquote::before { content: """; position: absolute; top: 0; left: 10px; font-size: 2em; color: rgba(0, 0, 0, 0.1); font-family: serif; } /* 按钮样式 - 像素风格 */ .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: 4px 10px; border: 2px solid #666; border-bottom: 4px solid #444; border-right: 4px solid #444; border-radius: 0; background: #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; } .collapseButton:hover, button:hover, .mw-ui-button:hover, input[type="button"]:hover, input[type="submit"]:hover { background: #eee; border-color: #777; border-bottom-color: #555; border-right-color: #555; transform: translateY(-1px); } .collapseButton:active, button:active, .mw-ui-button:active, input[type="button"]:active, input[type="submit"]:active { background: #ccc; border: 2px solid #444; border-top: 4px solid #666; border-left: 4px solid #666; transform: translateY(1px); text-shadow: none; } .navbox .collapseButton { width: 6em; } /* 边栏样式 - 复古科幻风格 */ .side-block { background: linear-gradient(135deg, rgba(0, 255, 100, 0.05) 0%, transparent 100%), linear-gradient(to bottom, rgba(220, 230, 240, 0.85), rgba(190, 210, 225, 0.95)); border: 1px solid rgba(0, 0, 0, 0.15); border-radius: 0; margin: 0.5rem 0.5rem 1rem 0; padding: 0; box-shadow: var(--box-depth), inset 0 0 20px rgba(0, 200, 255, 0.07); font-family: var(--UI-font); position: relative; overflow: hidden; } .side-block::before { content: ""; position: absolute; top: 0; left: 0; width: 100%; height: 2px; background: linear-gradient(to right, transparent, var(--crt-glow-color), transparent); } .side-block::after { content: ""; position: absolute; bottom: 0; left: 0; width: 100%; height: 1px; background: linear-gradient(to right, transparent, rgba(0, 0, 0, 0.1), transparent); } .side-block .heading { font-family: var(--title-font); font-size: calc(var(--base-font-size) * 0.95); color: #222; text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5), var(--crt-text-shadow); padding: 0.5rem 0.7rem; border-bottom: 1px solid rgba(0, 0, 0, 0.15); background: linear-gradient(to bottom, #e8f0f8, #c8d8e8); letter-spacing: 0.05em; position: relative; text-transform: uppercase; } .side-block .heading::after { content: ""; position: absolute; bottom: 0; left: 0; width: 100%; height: 1px; background: linear-gradient(to right, rgba(255, 255, 255, 0.7), rgba(255, 255, 255, 0)); } .side-block .heading p { margin: 0; padding: 0; } .side-block div.menu-item { border-bottom: 1px solid rgba(0, 0, 0, 0.07); border-top: 1px solid rgba(255, 255, 255, 0.7); position: relative; } .side-block div.menu-item:last-child { border-bottom: none; } .side-block div.menu-item a { display: block; padding: 0.5rem 0.7rem; 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); position: relative; overflow: hidden; } .side-block div.menu-item 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); } .side-block div.menu-item a::before { content: '►'; display: inline-block; margin-right: 5px; font-size: 0.8em; opacity: 0; transition: all 0.2s ease; transform: translateX(-5px); } .side-block div.menu-item a:hover::before { opacity: 0.7; transform: translateX(0); } /* CRT页面启动效果 - 暗角、闪烁和亮线 */ .crt-startup-effect { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background-color: #000; z-index: 10000; opacity: 1; pointer-events: none; animation: crt-startup-fade 2.5s forwards; } @keyframes crt-startup-fade { 0% { opacity: 1; } 15% { opacity: 0.7; } 20% { opacity: 0.9; } 25% { opacity: 0.6; } 30% { opacity: 0.9; } 35% { opacity: 0.2; } 40% { opacity: 0; } 100% { opacity: 0; visibility: hidden; } } /* 页面加载后自动添加CRT效果元素 */ document.addEventListener('DOMContentLoaded', function() { // 创建一个隐藏/显示扫描线效果的按钮 var toggleButton = document.createElement('button'); toggleButton.innerHTML = '切换扫描线'; toggleButton.style.position = 'fixed'; toggleButton.style.bottom = '10px'; toggleButton.style.right = '10px'; toggleButton.style.zIndex = '10000'; toggleButton.style.fontSize = '12px'; toggleButton.style.padding = '4px 8px'; toggleButton.style.opacity = '0.7'; // 添加事件监听 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 = '显示扫描线'; } else { root.style.setProperty('--crt-effects-display', 'block'); toggleButton.innerHTML = '隐藏扫描线'; } }); document.body.appendChild(toggleButton); // 添加扫描线和启动效果元素 var body = document.querySelector('body'); // 主扫描线 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 startupEffect = document.createElement('div'); startupEffect.className = 'crt-startup-effect'; body.appendChild(startupEffect); }); /* 媒体查询 */ @media screen and (max-width: 768px) { :root { --base-font-size: 14px; --small-font-size: 12px; } body { padding: 1rem; margin: 0.5rem; } } @media screen and (min-width: 1440px) { :root { --base-font-size: 16px; --small-font-size: 14px; } } /* 打印样式优化 */ @media print { :root { --crt-effects-display: none; } html, body { background: #fff !important; color: #000 !important; } body::before, .crt-primary-scanline, .crt-secondary-scanline, .crt-fast-scanline, .crt-startup-effect { 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; } } /* 继续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; } /* 继续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); }); });
返回
Common.css
。
工具
链入页面
相关更改
特殊页面
页面信息
Cargo数据