MediaWiki:Common.css
来自Age Of History 2 Chinese Wiki
注意:在发布之后,您可能需要清除浏览器缓存才能看到所作出的更改的影响。
- Firefox或Safari:按住Shift的同时单击刷新,或按Ctrl-F5或Ctrl-R(Mac为⌘-R)
- Google Chrome:按Ctrl-Shift-R(Mac为⌘-Shift-R)
- Edge:按住Ctrl的同时单击刷新,或按Ctrl-F5。
/* 这里放置的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; } }
Loading comments...