MediaWiki:Common.css:修订间差异
来自Age Of History 2 Chinese Wiki
无编辑摘要 |
无编辑摘要 |
||
第1行: | 第1行: | ||
/* | /* 基础变量和字体设置 */ | ||
:root { | :root { | ||
/* 从Wikidot Database New主题迁移的变量 */ | /* 从Wikidot Database New主题迁移的变量 */ | ||
--fade-in-delay: 0.1s; | --fade-in-delay: 0.1s; | ||
--theme-base: "black-highlighter"; | --theme-base: "black-highlighter"; | ||
--theme-id: " | --theme-id: "windows-xp"; | ||
--theme-name: " | --theme-name: "Windows XP"; | ||
/* 字体设置 - | /* 字体设置 - 使用Database主题的字体和Windows XP字体 */ | ||
--body-font: "VonwaonBitmap 16px", VT323, monospace; | --body-font: "VonwaonBitmap 16px", VT323, monospace; | ||
--header-font: "VonwaonBitmap 16px", VT323, monospace; | --header-font: "VonwaonBitmap 16px", VT323, monospace; | ||
第22行: | 第17行: | ||
--text-shadow: 2px 2px #C9781E; | --text-shadow: 2px 2px #C9781E; | ||
/* 颜色方案 - | /* 颜色方案 - Windows XP主题颜色 */ | ||
--white-monochrome: | --white-monochrome: 255, 255, 255; | ||
--pale-gray-monochrome: | --pale-gray-monochrome: 240, 240, 240; | ||
--light-gray-monochrome: | --light-gray-monochrome: 192, 192, 192; | ||
--gray-monochrome: | --gray-monochrome: 128, 128, 128; | ||
--black-monochrome: | --black-monochrome: 0, 0, 0; | ||
/* XP系统蓝色 */ | |||
--xp-blue: 53, 165, 225; | |||
--xp-darker-blue: 0, 85, 170; | |||
/* XP系统绿色 */ | |||
--xp-green: 48, 131, 51; | |||
--xp-bright-green: 76, 169, 28; | |||
/* XP系统橙色 - 保留原主题色 */ | |||
--bright-accent: 229, 140, 36; | --bright-accent: 229, 140, 36; | ||
--medium-accent: | --medium-accent: 180, 110, 28; | ||
--dark-accent: 140, 85, 22; | |||
--dark-accent: 140, | --pale-accent: 229, 170, 112; | ||
--pale-accent: | |||
/* 主题颜色 */ | /* 主题颜色 */ | ||
第39行: | 第43行: | ||
--swatch-primary-darker: var(--medium-accent); | --swatch-primary-darker: var(--medium-accent); | ||
--swatch-primary-darkest: var(--black-monochrome); | --swatch-primary-darkest: var(--black-monochrome); | ||
--swatch-text-dark: var(-- | --swatch-text-dark: var(--bright-accent); | ||
--swatch-text-light: var(-- | --swatch-text-light: var(--white-monochrome); | ||
--swatch-important-text: var(--bright-accent); | --swatch-important-text: var(--bright-accent); | ||
--swatch-menubg-color: var(--black-monochrome); | --swatch-menubg-color: var(--black-monochrome); | ||
第58行: | 第62行: | ||
/* 链接颜色 */ | /* 链接颜色 */ | ||
--link-color: rgb( | --link-color: rgb(var(--xp-blue)); | ||
--visited-link-color: rgb( | --visited-link-color: rgb(var(--xp-darker-blue)); | ||
--hover-link-color: rgb( | --hover-link-color: rgb(var(--bright-accent)); | ||
--sidebar-links-text: var(--swatch-menutxt-dark-color); | --sidebar-links-text: var(--swatch-menutxt-dark-color); | ||
--link-color-bright: var(--medium-accent); | --link-color-bright: var(--medium-accent); | ||
第68行: | 第72行: | ||
--rating-module-text-color: var(--white-monochrome); | --rating-module-text-color: var(--white-monochrome); | ||
--rating-module-text-hover-color: var(--swatch-menutxt-light-color); | --rating-module-text-hover-color: var(--swatch-menutxt-light-color); | ||
/* XP风格窗口属性 */ | |||
--xp-window-border: 1px solid rgb(var(--bright-accent)); | |||
--xp-window-header: linear-gradient(to bottom, rgb(0, 132, 198), rgb(0, 102, 170)); | |||
--xp-window-shadow: 2px 2px 5px rgba(0, 0, 0, 0.3); | |||
/* 其他 */ | /* 其他 */ | ||
--gradient-header: | --gradient-header: var(--xp-window-header); | ||
--diagonal-stripes: none; | --diagonal-stripes: none; | ||
} | } | ||
/* | /* 应用全局字体和背景 */ | ||
body { | body { | ||
font-family: var(--body-font) | font-family: var(--body-font) !important; | ||
font-size: var(--base-font-size) | font-size: var(--base-font-size) !important; | ||
line-height: 1.5 !important; | line-height: 1.5 !important; | ||
background-color: rgb(var(--black-monochrome)); | background-color: rgb(var(--black-monochrome)); | ||
color: rgb(var(--swatch-text-dark)); | color: rgb(var(--swatch-text-dark)); | ||
background-image: url(""); | |||
background-size: cover; | |||
background-position: center; | |||
background-repeat: no-repeat; | |||
background-attachment: fixed !important; | |||
} | } | ||
第87行: | 第101行: | ||
font-family: var(--title-font); | font-family: var(--title-font); | ||
color: rgb(var(--swatch-headerh1-color)); | color: rgb(var(--swatch-headerh1-color)); | ||
text-shadow: | text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.8); | ||
} | } | ||
/* 链接样式 */ | /* 链接样式 - 保留 > 符号 */ | ||
a { | a { | ||
color: rgb(var(-- | color: rgb(var(--xp-blue)); | ||
text-decoration: none; | text-decoration: none; | ||
} | } | ||
a:visited { | a:visited { | ||
color: rgb(var(-- | color: rgb(var(--xp-darker-blue)); | ||
} | } | ||
第108行: | 第122行: | ||
content: "> "; | content: "> "; | ||
} | } | ||
background-color: | /* 主内容区背景 */ | ||
#content { | |||
background-color: rgba(var(--white-monochrome), 0.9); | |||
position: relative; | |||
border-radius: 8px; | |||
border: var(--xp-window-border); | |||
box-shadow: var(--xp-window-shadow); | |||
margin: 10px; | |||
padding: 20px; | |||
border: | |||
} | } | ||
/* 修改扫描线动画 - 改为半透明灰色 */ | |||
.scan-animation { | |||
. | position: absolute; | ||
width: 100%; | |||
height: 100%; | |||
top: 0; | |||
left: 0; | |||
pointer-events: none; | |||
} | } | ||
/* | /* 主扫描线 - 较宽较慢 - 修改为半透明灰色 */ | ||
.scan-animation::before { | |||
. | content: ""; | ||
background- | position: absolute; | ||
width: 100%; | |||
height: 6px; | |||
top: 0; | |||
background: linear-gradient( | |||
to bottom, | |||
rgba(128, 128, 128, 0) 0%, | |||
rgba(128, 128, 128, 0.1) 20%, | |||
rgba(128, 128, 128, 0.2) 50%, | |||
rgba(128, 128, 128, 0.1) 80%, | |||
rgba(128, 128, 128, 0) 100% | |||
); | |||
box-shadow: | |||
0 0 8px rgba(128, 128, 128, 0.15), | |||
0 0 15px rgba(128, 128, 128, 0.1); | |||
animation: scanMain 12s linear infinite; | |||
opacity: 0.4; | |||
} | } | ||
/* 副扫描线 - 中等速度 - 修改为半透明灰色 */ | |||
. | .scan-animation::after { | ||
content: ""; | |||
position: absolute; | |||
width: 100%; | |||
height: 3px; | |||
top: 0; | |||
background: linear-gradient( | |||
to bottom, | |||
rgba(128, 128, 128, 0) 0%, | |||
rgba(128, 128, 128, 0.3) 50%, | |||
rgba(128, 128, 128, 0) 100% | |||
); | |||
box-shadow: 0 0 6px rgba(128, 128, 128, 0.2); | |||
animation: scanSecondary 7s linear infinite; | |||
animation-delay: -3s; | |||
opacity: 0.25; | |||
} | } | ||
/* 快速扫描线 - 细小快速 - 修改为半透明灰色 */ | |||
.scan-animation .fast-scan { | |||
position: absolute; | |||
width: 100%; | |||
height: 1px; | |||
top: 0; | |||
background: rgba(128, 128, 128, 0.6); | |||
box-shadow: 0 0 3px rgba(128, 128, 128, 0.3); | |||
animation: scanFast 3s linear infinite; | |||
animation-delay: -1.5s; | |||
opacity: 0.15; | |||
} | } | ||
/* | /* 各个扫描线的动画 - 保持不变 */ | ||
@keyframes scanMain { | |||
0% { | |||
top: -2rem; | |||
opacity: 0.6; | |||
} | |||
50% { | |||
opacity: 0.3; | |||
} | |||
100% { | |||
} | top: 100vh; | ||
opacity: 0.6; | |||
} | |||
} | } | ||
@keyframes scanSecondary { | |||
0% { | |||
top: -1rem; | |||
} | opacity: 0.4; | ||
} | |||
35% { | |||
opacity: 0.2; | |||
} | |||
70% { | |||
opacity: 0.5; | |||
} | |||
100% { | |||
top: 100vh; | |||
opacity: 0.4; | |||
} | |||
} | } | ||
. | @keyframes scanFast { | ||
. | 0% { | ||
top: -0.3rem; | |||
opacity: 0.3; | |||
} | |||
50% { | |||
opacity: 0.6; | |||
} | |||
100% { | |||
top: 100vh; | |||
opacity: 0.3; | |||
} | |||
} | } | ||
/* Windows XP风格窗口和控件 */ | |||
. | /* XP风格窗口标题栏通用样式 */ | ||
.xp-window { | |||
border: 1px solid #0055AA; | |||
border-radius: 8px 8px 0 0; | |||
box-shadow: 2px 2px 5px rgba(0, 0, 0, 0.3); | |||
margin-bottom: 15px; | |||
overflow: hidden; | |||
position: relative; | |||
} | } | ||
. | /* XP风格窗口标题栏 */ | ||
.xp-window-title { | |||
background: linear-gradient(to bottom, #0084C6, #0066AA); | |||
color: white; | |||
padding: 5px 10px; | |||
font-weight: bold; | |||
height: 25px; | |||
display: flex; | |||
align-items: center; | |||
justify-content: space-between; | |||
border-bottom: 1px solid #0044AA; | |||
} | } | ||
/* | /* XP风格窗口标题文本 */ | ||
. | .xp-window-title-text { | ||
margin: 0; | |||
padding: 0; | |||
font-family: var(--title-font); | |||
font-size: 12px; | |||
overflow: hidden; | |||
text-overflow: ellipsis; | |||
white-space: nowrap; | |||
flex-grow: 1; | |||
} | } | ||
. | /* XP风格窗口内容 */ | ||
color: | .xp-window-content { | ||
font-family: var(--body-font) | background-color: #F1F1F1; | ||
padding: 10px; | |||
color: #000000; | |||
font-family: var(--body-font); | |||
} | } | ||
. | /* XP风格窗口控制按钮容器 */ | ||
.xp-window-controls { | |||
display: flex; | |||
gap: 4px; | |||
} | |||
/* XP风格窗口按钮基础样式 */ | |||
.xp-window-button { | |||
width: 21px; | |||
height: 21px; | |||
display: flex; | |||
align-items: center; | |||
justify-content: center; | |||
border-radius: 3px; | |||
cursor: pointer; | |||
transition: background-color 0.1s; | |||
} | } | ||
/* | /* XP风格窗口按钮 - 悬停状态 */ | ||
.xp-window-button:hover { | |||
background-color: | background-color: rgba(255, 255, 255, 0.2); | ||
} | } | ||
/* XP风格窗口按钮 - 按下状态 */ | |||
.xp-window-button:active { | |||
background-color: rgba(0, 0, 0, 0.2); | |||
} | } | ||
/* | /* XP风格窗口按钮图标 */ | ||
.xp-minimize::before, | |||
background-color: | .xp-maximize::before, | ||
.xp-close::before { | |||
content: ""; | |||
display: block; | |||
width: 11px; | |||
height: 2px; | |||
background-color: white; | |||
} | } | ||
/* | /* XP风格最小化按钮 */ | ||
.xp-minimize::before { | |||
transform: translateY(5px); | |||
} | } | ||
/* | /* XP风格最大化按钮 */ | ||
.xp-maximize::before { | |||
width: 9px; | |||
border | height: 9px; | ||
color: | border: 1px solid white; | ||
background-color: transparent; | |||
} | } | ||
/* | /* XP风格关闭按钮 */ | ||
.xp-close { | |||
margin-left: 2px; | |||
} | } | ||
.xp-close::before { | |||
. | content: "×"; | ||
font-size: 16px; | |||
line-height: 1; | |||
font-weight: bold; | |||
width: auto; | |||
height: auto; | |||
background-color: transparent; | |||
} | } | ||
. | .xp-close:hover { | ||
background-color: | background-color: #E81123; | ||
} | } | ||
/* | /* 应用XP窗口样式到各种内容容器 */ | ||
. | /* 信息框样式 */ | ||
background-color: | .infobox, | ||
border: 1px solid | .notaninfobox { | ||
background-color: #F1F1F1 !important; | |||
color: #000000 !important; | |||
border: 1px solid #0055AA !important; | |||
border-radius: 8px 8px 0 0 !important; | |||
box-shadow: 2px 2px 5px rgba(0, 0, 0, 0.3) !important; | |||
padding: 0 !important; | |||
margin: 1em 0 !important; | |||
font-family: var(--body-font) !important; | |||
overflow: hidden !important; | |||
position: relative !important; | |||
} | } | ||
. | .infobox th, | ||
background-color: | .notaninfobox .infobox-title { | ||
background: linear-gradient(to bottom, #0084C6, #0066AA) !important; | |||
color: white !important; | |||
padding: 5px 10px !important; | |||
text-align: left !important; | |||
font-weight: bold !important; | |||
height: 25px !important; | |||
display: flex !important; | |||
align-items: center !important; | |||
justify-content: space-between !important; | |||
border-bottom: 1px solid #0044AA !important; | |||
} | |||
/* 信息框标题文本 */ | |||
.infobox th span, | |||
.notaninfobox .infobox-title span { | |||
flex-grow: 1 !important; | |||
} | |||
/* 添加XP窗口控制按钮到信息框 */ | |||
.infobox th::after, | |||
.notaninfobox .infobox-title::after { | |||
content: ""; | |||
display: flex; | |||
gap: 4px; | |||
align-items: center; | |||
} | |||
/* 信息框内容区域 */ | |||
.infobox td, | |||
.notaninfobox .infobox-content { | |||
background-color: #F1F1F1 !important; | |||
padding: 8px !important; | |||
color: #000000 !important; | |||
} | } | ||
. | /* 信息框内部行分隔 */ | ||
border: 1px solid | .infobox tr:not(:first-child) td { | ||
border-top: 1px solid #D1D1D1 !important; | |||
} | } | ||
/* | /* 信息框内链接 */ | ||
.infobox a, | |||
.notaninfobox a { | |||
color: rgb(var(--xp-blue)) !important; | |||
color: rgb(var(-- | |||
} | } | ||
.infobox a:hover, | |||
a { | .notaninfobox a:hover { | ||
color: rgb(var(--bright-accent)) !important; | color: rgb(var(--bright-accent)) !important; | ||
} | } | ||
/* 信息框的最小化和最大化状态 */ | |||
.infobox.minimized td, | |||
.notaninfobox.minimized .infobox-content, | |||
.infobox.minimized tbody, | |||
.notaninfobox.minimized .infobox-rows { | |||
display: none !important; | |||
} | } | ||
.infobox.maximized, | |||
.notaninfobox.maximized { | |||
position: fixed !important; | |||
top: 10% !important; | |||
left: 10% !important; | |||
width: 80% !important; | |||
height: 80% !important; | |||
z-index: 1000 !important; | |||
} | } | ||
/* | /* 表格样式 - Windows XP风格 */ | ||
. | table.wiki-content-table { | ||
border-collapse: collapse !important; | |||
border: 1px solid #003C74 !important; | |||
margin: 1em 0 !important; | |||
background-color: #FFFFFF !important; | |||
box-shadow: 2px 2px 5px rgba(0, 0, 0, 0.3) !important; | |||
} | } | ||
table.wiki-content-table th { | |||
background: linear-gradient(to bottom, #E3EFFF, #CDE2FE) !important; | |||
color: #000000 !important; | |||
border: 1px solid #97B9E8 !important; | |||
padding: 5px 8px !important; | |||
font-weight: bold !important; | |||
text-align: left !important; | |||
} | |||
table.wiki-content-table td { | |||
border: 1px solid #D3DCE3 !important; | |||
padding: 5px 8px !important; | |||
background-color: #FFFFFF !important; | |||
} | } | ||
table.wiki-content-table tr:nth-child(even) td { | |||
. | background-color: #F0F6FF !important; | ||
} | } | ||
table.wiki-content-table tr:hover td { | |||
. | background-color: #E8F1FF !important; | ||
background | |||
} | } | ||
/* | /* 按钮样式 - Windows XP风格 */ | ||
.button, | |||
button, | |||
input[type="button"], | |||
input[type="submit"], | |||
input[type="reset"] { | |||
background: linear-gradient(to bottom, #F5F5F5, #E5E5E5) !important; | |||
border: 1px solid #999999 !important; | |||
border-radius: 3px !important; | |||
padding: 4px 10px !important; | |||
color: #000000 !important; | |||
font-family: var(--body-font) !important; | |||
font-size: 12px !important; | |||
cursor: pointer !important; | |||
box-shadow: 1px 1px 2px rgba(0, 0, 0, 0.1) !important; | |||
} | } | ||
.button:hover, | |||
button:hover, | |||
input[type="button"]:hover, | |||
input[type="submit"]:hover, | |||
input[type="reset"]:hover { | |||
background: linear-gradient(to bottom, #FEFEFE, #ECECEC) !important; | |||
border-color: #666666 !important; | |||
} | } | ||
.button:active, | |||
button:active, | |||
input[type="button"]:active, | |||
input[type="submit"]:active, | |||
input[type="reset"]:active { | |||
background: #E0E0E0 !important; | |||
box-shadow: inset 1px 1px 2px rgba(0, 0, 0, 0.2) !important; | |||
} | |||
/* 导航框(查论编)样式迁移 - Windows XP风格 */ | |||
.navbox { | |||
background-color: #F1F1F1 !important; | |||
border: 1px solid #0055AA !important; | |||
border-radius: 8px 8px 0 0 !important; | |||
font-family: var(--body-font) !important; | |||
margin: 1em 0 !important; | |||
box-shadow: 2px 2px 5px rgba(0, 0, 0, 0.3) !important; | |||
overflow: hidden !important; | |||
position: relative !important; | |||
} | } | ||
.navbox-title, | |||
.navbox th { | |||
background: linear-gradient(to bottom, #0084C6, #0066AA) !important; | |||
color: white !important; | |||
padding: 5px 10px !important; | |||
text-align: center !important; | |||
height: 25px !important; | |||
display: flex !important; | |||
align-items: center !important; | |||
justify-content: space-between !important; | |||
border-bottom: 1px solid #0044AA !important; | |||
} | } | ||
/* | /* 导航框标题文本 */ | ||
. | .navbox-title span { | ||
flex-grow: 1 !important; | |||
text-align: center !important; | |||
} | } | ||
/* | /* 添加XP窗口控制按钮占位 */ | ||
. | .navbox-title::after { | ||
content: ""; | |||
display: inline-block; | |||
width: 63px; /* 3个按钮的宽度 */ | |||
} | |||
.navbox-group { | |||
. | background: linear-gradient(to bottom, #E3EFFF, #CDE2FE) !important; | ||
background-color: | color: #000000 !important; | ||
border: 1px solid | font-weight: bold !important; | ||
padding: 4px 8px !important; | |||
border-right: 1px solid #97B9E8 !important; | |||
border-bottom: 1px solid #97B9E8 !important; | |||
text-align: right !important; | |||
} | } | ||
.navbox-list { | |||
. | background-color: #FFFFFF !important; | ||
color: #000000 !important; | |||
padding: 4px 8px !important; | |||
border-bottom: 1px solid #D3DCE3 !important; | |||
} | |||
.navbox-even { | |||
. | background-color: #F0F6FF !important; | ||
background-color: | |||
} | } | ||
. | .navbox a { | ||
color: rgb(var(--xp-blue)) !important; | |||
text-decoration: none !important; | |||
color: rgb(var(-- | } | ||
.navbox a:hover { | |||
color: rgb(var(--bright-accent)) !important; | |||
text-decoration: underline !important; | |||
} | } | ||
. | .navbox a:hover::before { | ||
content: "> " !important; | |||
} | } | ||
. | /* 导航栏样式 - Windows XP风格 */ | ||
background- | .navbar, | ||
.navbar.navbar-default, | |||
padding: 0 | .navbar-light { | ||
background: linear-gradient(to bottom, #1F69DE, #015EEB) !important; | |||
box-shadow: 0 | border-bottom: 1px solid #123AA0 !important; | ||
padding: 0 !important; | |||
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2) !important; | |||
} | } | ||
.navbar .navbar-brand, | |||
. | .navbar .nav-link, | ||
. | .navbar-light .navbar-nav .nav-link { | ||
color: white !important; | |||
font-family: var(--header-font) !important; | |||
padding: 8px 15px !important; | |||
position: relative !important; | |||
- | |||
} | } | ||
. | .navbar .nav-link:hover, | ||
. | .navbar-light .navbar-nav .nav-link:hover { | ||
background-color: rgba(255, 255, 255, 0.2) !important; | |||
color: white !important; | |||
text-decoration: none !important; | |||
color: | |||
text- | |||
} | } | ||
/* 下拉菜单 */ | |||
.dropdown-menu { | |||
color: | background-color: #FFFFFF !important; | ||
border: 1px solid #7B9EBD !important; | |||
border-radius: 3px !important; | |||
box-shadow: 2px 2px 5px rgba(0, 0, 0, 0.3) !important; | |||
padding: 2px !important; | |||
} | } | ||
.dropdown-item { | |||
color: #000000 !important; | |||
font-family: var(--body-font) !important; | |||
padding: 4px 8px !important; | |||
border-radius: 2px !important; | |||
} | } | ||
.dropdown-item:hover { | |||
background-color: #316AC5 !important; | |||
color: white !important; | |||
} | } | ||
. | /* 搜索框样式 - Windows XP风格 */ | ||
border | #searchInput, | ||
.form-control { | |||
background-color: white !important; | |||
border: 1px solid #7B9EBD !important; | |||
color: #000000 !important; | |||
font-family: var(--body-font) !important; | |||
padding: 4px 8px !important; | |||
border-radius: 2px !important; | |||
} | } | ||
#searchInput:focus, | |||
.form-control:focus { | |||
border-color: #5690D2 !important; | |||
box-shadow: 0 0 4px rgba(86, 144, 210, 0.5) !important; | |||
. | |||
} | } | ||
. | /* 搜索按钮 */ | ||
#searchButton, | |||
.searchButton, | |||
input[type="submit"], | |||
input[type="button"], | |||
.mw-ui-button, | |||
button[name="go"], | |||
button[name="fulltext"], | |||
.mw-ui-button.mw-ui-progressive { | |||
background: linear-gradient(to bottom, #F5F5F5, #E5E5E5) !important; | |||
border: 1px solid #999999 !important; | |||
color: #000000 !important; | |||
font-family: var(--body-font) !important; | |||
padding: 4px 10px !important; | |||
cursor: pointer !important; | |||
border-radius: 3px !important; | |||
box-shadow: 1px 1px 2px rgba(0, 0, 0, 0.1) !important; | |||
} | } | ||
. | |||
color: # | #searchButton:hover, | ||
.searchButton:hover, | |||
input[type="submit"]:hover, | |||
input[type="button"]:hover, | |||
.mw-ui-button:hover, | |||
button[name="go"]:hover, | |||
button[name="fulltext"]:hover, | |||
.mw-ui-button.mw-ui-progressive:hover { | |||
background: linear-gradient(to bottom, #FEFEFE, #ECECEC) !important; | |||
border-color: #666666 !important; | |||
color: #000000 !important; | |||
} | } | ||
. | |||
#searchButton:active, | |||
.searchButton:active, | |||
input[type="submit"]:active, | |||
input[type="button"]:active, | |||
.mw-ui-button:active, | |||
button[name="go"]:active, | |||
button[name="fulltext"]:active, | |||
.mw-ui-button.mw-ui-progressive:active { | |||
background: #E0E0E0 !important; | |||
box-shadow: inset 1px 1px 2px rgba(0, 0, 0, 0.2) !important; | |||
} | } | ||
/* 目录框样式 - Windows XP风格 */ | |||
#toc, .toc { | |||
background-color: #F1F1F1 !important; | |||
border: 1px solid #0055AA !important; | |||
border-radius: 8px 8px 0 0 !important; | |||
padding: 0 !important; | |||
font-family: var(--body-font) !important; | |||
box-shadow: 2px 2px 5px rgba(0, 0, 0, 0.3) !important; | |||
margin: 1em 0 !important; | |||
position: relative !important; | |||
overflow: hidden !important; | |||
} | } | ||
. | .toc .toctitle, #toc .toctitle { | ||
background: linear-gradient(to bottom, #0084C6, #0066AA) !important; | |||
color: white !important; | |||
text-align: left !important; | |||
padding: 5px 10px !important; | |||
margin: 0 !important; | |||
font-weight: bold !important; | |||
height: 25px !important; | |||
display: flex !important; | |||
align-items: center !important; | |||
justify-content: space-between !important; | |||
border-bottom: 1px solid #0044AA !important; | |||
} | } | ||
. | |||
.toc .toctitle h2, #toc .toctitle h2 { | |||
color: white !important; | |||
font-size: 12px !important; | |||
margin: 0 !important; | |||
padding: 0 !important; | |||
text-shadow: none !important; | |||
flex-grow: 1 !important; | |||
} | } | ||
/* 添加XP窗口控制按钮占位 */ | |||
.toc .toctitle::after, #toc .toctitle::after { | |||
content: ""; | |||
display: inline-block; | |||
width: 63px; /* 3个按钮的宽度 */ | |||
} | } | ||
.toc ul, #toc ul { | |||
margin: 0 !important; | |||
padding: 10px 10px 10px 30px !important; | |||
} | } | ||
. | .toc a, #toc a { | ||
color: rgb(var(--xp-blue)) !important; | |||
text-decoration: none !important; | |||
} | } | ||
. | .toc a:hover, #toc a:hover { | ||
color: rgb(var(--bright-accent)) !important; | |||
text-decoration: underline !important; | |||
} | } | ||
. | .tocnumber { | ||
color: #666666 !important; | |||
} | } | ||
. | /* 主页样式修改 - Windows XP风格 */ | ||
/* 主页横幅样式 */ | |||
.main-page-banner { | |||
position: relative; | |||
display: grid; | |||
grid-template-areas: | |||
"welcome welcome welcome" | |||
"discord faq join"; | |||
grid-template-columns: 1fr 1fr 1fr; | |||
grid-column-gap: 3%; | |||
margin-bottom: 4rem; | |||
width: 100%; | |||
box-sizing: border-box; | |||
border: 1px solid #0055AA; | |||
border-radius: 8px 8px 0 0; | |||
box-shadow: 2px 2px 5px rgba(0, 0, 0, 0.3); | |||
background-color: #F1F1F1; | |||
overflow: hidden; | |||
} | } | ||
. | |||
background: linear-gradient(to bottom | /* 欢迎文本区域 */ | ||
.main-page-banner .welcome-text { | |||
grid-area: welcome; | |||
background: linear-gradient(to bottom, #0084C6, #0066AA); | |||
color: white; | |||
padding: 1.5rem 2rem; | |||
margin: 0; | |||
width: 100%; | |||
position: relative; | |||
overflow: hidden; | |||
border-bottom: 1px solid #0044AA; | |||
z-index: 2; | |||
} | } | ||
. | /* 背景图片支持 */ | ||
.main-page-banner .welcome-text::before { | |||
content: ""; | |||
position: absolute; | |||
top: 0; | |||
left: 0; | |||
width: 100%; | |||
height: 100%; | |||
background-size: cover; | |||
background-position: center; | |||
opacity: 0.15; | |||
z-index: 1; | |||
} | } | ||
. | /* 添加水平扫描线 */ | ||
.main-page-banner .welcome-text .scan-line { | |||
position: absolute; | |||
width: 100%; | |||
. | height: 3px; | ||
background: linear-gradient( | |||
to right, | |||
transparent 0%, | |||
rgba(255, 255, 255, 0.08) 30%, | |||
rgba(255, 255, 255, 0.15) 50%, | |||
rgba(255, 255, 255, 0.08) 70%, | |||
transparent 100% | |||
); | |||
z-index: 4; | |||
animation: horizScanLine 7s linear infinite; | |||
opacity: 0.3; | |||
pointer-events: none; | |||
box-shadow: 0 0 5px rgba(255, 255, 255, 0.1); | |||
} | } | ||
/* | /* 欢迎文本 */ | ||
.main-page-banner .welcome-text p { | |||
position: relative; | |||
z-index: 2; | |||
margin: 0; | |||
font-size: 1.1em; | |||
. | text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.8); | ||
} | } | ||
/* 水平扫描线动画 */ | |||
@keyframes horizScanLine { | |||
0% { top: -10px; } | |||
100% { top: 100%; } | |||
} | } | ||
. | /* 导航按钮美化 */ | ||
.main-page-banner .navigation-links { | |||
display: grid; | |||
grid-template-columns: 1fr 1fr 1fr; | |||
grid-column-gap: 3%; | |||
grid-area: discord / discord / join / join; | |||
width: 100%; | |||
padding: 1rem; | |||
background-color: #F1F1F1; | |||
} | } | ||
. | .main-page-banner .nav-button { | ||
background: linear-gradient(to bottom, #F5F5F5, #E5E5E5); | |||
border: 1px solid #999999; | |||
border-radius: 3px; | |||
} | margin: 0; | ||
transition: all 0.3s ease; | |||
height: min-content; | |||
position: relative; | |||
overflow: hidden; | |||
box-shadow: 1px 1px 2px rgba(0, 0, 0, 0.1); | |||
} | |||
. | /* 按钮光效 */ | ||
.main-page-banner .nav-button::before { | |||
content: ""; | |||
position: absolute; | |||
top: 0; | |||
left: -100%; | |||
width: 100%; | |||
height: 100%; | |||
background: linear-gradient( | |||
90deg, | |||
transparent, | |||
rgba(255, 255, 255, 0.5), | |||
transparent | |||
); | |||
transition: left 0.5s; | |||
} | } | ||
.main-page-banner .nav-button:hover::before { | |||
left: 100%; | |||
. | |||
} | } | ||
. | .main-page-banner .nav-button:hover { | ||
transform: translateY(-5px); | |||
box-shadow: 0 5px 15px rgba(0, 0, 0, 0.1); | |||
background: linear-gradient(to bottom, #FEFEFE, #ECECEC); | |||
border-color: #666666; | |||
} | } | ||
. | .main-page-banner .nav-button a { | ||
display: block; | |||
padding: 10px 15px; | |||
width: 100%; | |||
text-align: center; | |||
color: #000000; | |||
font-size: 1rem; | |||
font-weight: bold; | |||
text-decoration: none !important; | |||
font-family: var(--body-font); | |||
position: relative; | |||
z-index: 1; | |||
} | } | ||
.main-page-banner .nav-button:hover a { | |||
color: #000000; | |||
} | } | ||
.main-page-banner .nav-button:active { | |||
background: #E0E0E0; | |||
box-shadow: inset 1px 1px 2px rgba(0, 0, 0, 0.2); | |||
} | } | ||
. | /* 公告容器 */ | ||
.announcement-container { | |||
background-color: #F1F1F1; | |||
border: 1px solid #0055AA; | |||
border-radius: 8px 8px 0 0; | |||
box-shadow: 2px 2px 5px rgba(0, 0, 0, 0.3); | |||
margin-bottom: 2rem; | |||
display: flex; | |||
flex-wrap: wrap; | |||
align-content: space-between; | |||
overflow: hidden; | |||
position: relative; | |||
} | } | ||
. | .announcement-container .section-title { | ||
font-weight: | background: linear-gradient(to bottom, #0084C6, #0066AA); | ||
color: white; | |||
padding: 5px 10px; | |||
font-family: var(--title-font); | |||
font-size: 1rem; | |||
font-weight: bold; | |||
text-align: left; | |||
width: 100%; | |||
height: 25px; | |||
display: flex; | |||
align-items: center; | |||
justify-content: space-between; | |||
border-bottom: 1px solid #0044AA; | |||
} | } | ||
. | /* 标题文本 */ | ||
. | .announcement-container .section-title span { | ||
flex-grow: 1; | |||
} | } | ||
. | /* 添加XP窗口控制按钮占位 */ | ||
.announcement-container .section-title::after { | |||
content: ""; | |||
display: inline-block; | |||
width: 63px; /* 3个按钮的宽度 */ | |||
} | } | ||
. | .announcement-container .announcement-content { | ||
background-color: #FFFFFF; | |||
background: | color: #000000; | ||
padding: 10px; | |||
font-family: var(--body-font); | |||
width: 100%; | |||
border-bottom: 1px solid #D3DCE3; | |||
} | } | ||
. | .announcement-content span { | ||
display: inline-block; | |||
white-space: nowrap; | |||
animation: marquee 15s linear infinite; | |||
} | } | ||
@keyframes marquee { | |||
0% { transform: translate(100%, 0); } | |||
100% { transform: translate(-100%, 0); } | |||
} | } | ||
/* 近期页面容器 */ | |||
. | .recent-pages-container { | ||
display: flex; | |||
flex-wrap: wrap; | |||
justify-content: space-between; | |||
width: 100%; | |||
margin-bottom: 1rem; | |||
} | } | ||
. | .recent-pages-container .page-section { | ||
background: | flex-basis: 48%; | ||
background-color: #F1F1F1; | |||
border: 1px solid #0055AA; | |||
border-radius: 8px 8px 0 0; | |||
box-shadow: 2px 2px 5px rgba(0, 0, 0, 0.3); | |||
margin-bottom: 1rem; | |||
overflow: hidden; | |||
position: relative; | position: relative; | ||
} | } | ||
. | |||
.recent-pages-container .section-title { | |||
background: linear-gradient(to bottom, #0084C6, #0066AA); | |||
color: white; | |||
padding: 5px 10px; | |||
font-family: var(--title-font); | |||
font-size: 1rem; | |||
font-weight: bold; | |||
height: 25px; | |||
display: flex; | |||
align-items: center; | |||
justify-content: space-between; | |||
border-bottom: 1px solid #0044AA; | |||
} | } | ||
/* 标题文本 */ | |||
.recent-pages-container .section-title span { | |||
flex-grow: 1; | |||
} | } | ||
/* | /* 添加XP窗口控制按钮占位 */ | ||
.recent-pages-container .section-title::after { | |||
content: ""; | |||
display: inline-block; | |||
width: 63px; /* 3个按钮的宽度 */ | |||
} | } | ||
.recent-pages-container .page-list { | |||
background-color: #FFFFFF; | |||
padding: 8px; | |||
max-height: 15rem; | |||
overflow-y: auto; | |||
border: 1px solid #D1D1D1; | |||
margin: 5px; | |||
} | |||
.recent-pages-container .page-list a { | |||
color: #0055AA; | |||
display: block; | |||
padding: 4px; | |||
border-bottom: 1px solid #EFEFEF; | |||
font-family: var(--body-font); | |||
transition: all 0.2s ease; | |||
} | |||
. | .recent-pages-container .page-list a:hover { | ||
color: #CC6600; | |||
background-color: #E8F1FF; | |||
padding-left: 8px; | |||
} | |||
- | |||
background-color: | .recent-pages-container .see-more { | ||
background-color: #F0F0F0; | |||
border-top: 1px solid #CCCCCC; | |||
padding: 4px 8px; | |||
text-align: right; | |||
font-size: 0.9em; | |||
} | } | ||
. | .recent-pages-container .see-more a { | ||
color: #0055AA; | |||
font-family: var(--body-font); | |||
} | |||
.recent-pages-container .see-more a:hover { | |||
color: #CC6600; | |||
} | } | ||
/* 特色内容容器 */ | |||
.featured-content-container { | |||
display: flex; | |||
flex-wrap: wrap; | |||
justify-content: space-between; | |||
width: 100%; | |||
} | } | ||
.featured-content-container .feature-item { | |||
flex-basis: 48%; | |||
background-color: #F1F1F1; | |||
border: 1px solid #0055AA; | |||
border-radius: 8px 8px 0 0; | |||
box-shadow: 2px 2px 5px rgba(0, 0, 0, 0.3); | |||
margin-bottom: 1rem; | |||
overflow: hidden; | |||
position: relative; | |||
} | } | ||
.featured-content-container .section-title { | |||
background: linear-gradient(to bottom, #0084C6, #0066AA); | |||
color: white; | |||
padding: 5px 10px; | |||
font-family: var(--title-font); | |||
font-size: 1rem; | |||
font-weight: bold; | |||
height: 25px; | |||
display: flex; | |||
align-items: center; | |||
justify-content: space-between; | |||
border-bottom: 1px solid #0044AA; | |||
} | } | ||
/* 标题文本 */ | |||
.featured-content-container .section-title span { | |||
flex-grow: 1; | |||
} | |||
/* 添加XP窗口控制按钮占位 */ | |||
.featured-content-container .section-title::after { | |||
content: ""; | |||
display: inline-block; | |||
width: 63px; /* 3个按钮的宽度 */ | |||
} | } | ||
.featured-content-container .feature-content { | |||
background-color: #FFFFFF; | |||
color: #000000; | |||
padding: 10px; | |||
font-family: var(--body-font); | |||
border: 1px solid #D1D1D1; | |||
margin: 5px; | |||
} | } | ||
.featured-content-container .feature-content .featured-title { | |||
color: #0055AA; | |||
font-size: 1.1rem; | |||
font-weight: bold; | |||
margin-bottom: 0.5rem; | |||
font-family: var(--title-font); | |||
} | } | ||
.featured-content-container .feature-content .featured-author { | |||
- | font-size: 0.9rem; | ||
color: #666666; | |||
margin-bottom: 0.5rem; | |||
} | } | ||
.featured-content-container .feature-content .featured-description { | |||
font-style: italic; | |||
color: #333333; | |||
. | |||
. | |||
} | } | ||
. | .featured-content-container .see-more { | ||
. | background-color: #F0F0F0; | ||
border-top: 1px solid #CCCCCC; | |||
padding: 4px 8px; | |||
text-align: right; | |||
font-size: 0.9em; | |||
} | } | ||
/* 工具和资源容器 */ | |||
. | .tools-and-resources { | ||
margin-bottom: 2rem; | |||
} | } | ||
. | .tools-container { | ||
display: grid; | |||
grid-template-columns: 1fr 1fr; | |||
grid-gap: 1rem; | |||
} | } | ||
. | .tools-container .tool-item { | ||
. | background-color: #F1F1F1; | ||
color: #000000; | |||
. | padding: 10px; | ||
border: 1px solid #0055AA; | |||
border-radius: 8px 8px 0 0; | |||
box-shadow: 2px 2px 5px rgba(0, 0, 0, 0.3); | |||
font-family: var(--body-font); | |||
transition: all 0.3s ease; | |||
display: grid; | |||
grid-template-areas: | |||
"icon content" | |||
"title content"; | |||
grid-template-columns: max-content 1fr; | |||
grid-template-rows: 0.6fr 0.4fr; | |||
grid-gap: 0.5rem 1rem; | |||
position: relative; | |||
overflow: hidden; | |||
} | } | ||
. | .tools-container .tool-item::before { | ||
content: ""; | |||
position: absolute; | |||
top: 0; | |||
left: 0; | |||
right: 0; | |||
height: 25px; | |||
background: linear-gradient(to bottom, #0084C6, #0066AA); | |||
z-index: 0; | |||
} | } | ||
.tools-container .tool-item:hover { | |||
. | transform: translateY(-5px); | ||
box-shadow: 0 5px 15px rgba(0, 0, 0, 0.2); | |||
} | } | ||
.tools-container .tool-item .tool-icon { | |||
. | grid-area: icon; | ||
justify-self: center; | |||
align-self: end; | |||
position: relative; | |||
z-index: 1; | |||
width: 32px; | |||
height: 32px; | |||
margin-top: 30px; | |||
} | } | ||
. | .tools-container .tool-item .tool-title { | ||
grid-area: title; | |||
text-align: center; | |||
position: relative; | |||
z-index: 1; | |||
} | } | ||
. | .tools-container .tool-item .tool-title a { | ||
color: #0055AA; | |||
font-weight: bold; | |||
font-family: var(--title-font); | |||
} | } | ||
.tools-container .tool-item .tool-title a:hover { | |||
color: #CC6600; | |||
} | } | ||
.tools-container .tool-item .tool-description { | |||
. | grid-area: content; | ||
align-self: center; | |||
position: relative; | |||
z-index: 1; | |||
padding: 5px; | |||
background-color: #FFFFFF; | |||
border: 1px solid #D1D1D1; | |||
border-radius: 3px; | |||
margin-top: 30px; | |||
} | } | ||
. | |||
/* 页码样式 */ | |||
.mw-page-numbers, | |||
.pageNumbers, | |||
.pagination { | |||
display: flex; | |||
justify-content: center; | |||
margin: 1rem 0; | |||
font-family: var(--body-font); | |||
} | } | ||
. | .mw-page-numbers li, | ||
.pageNumbers li, | |||
.pagination li { | |||
margin: 0 2px; | |||
list-style: none; | |||
} | } | ||
. | .mw-page-numbers a, | ||
.pageNumbers a, | |||
.pagination a { | |||
display: inline-block; | |||
padding: 5px 10px; | |||
background: linear-gradient(to bottom, #F5F5F5, #E5E5E5); | |||
border: 1px solid #999999; | |||
color: #000000; | |||
border-radius: 3px; | |||
text-decoration: none; | |||
transition: all 0.2s ease; | |||
box-shadow: 1px 1px 2px rgba(0, 0, 0, 0.1); | |||
} | } | ||
.mw-page-numbers a:hover, | |||
. | .pageNumbers a:hover, | ||
. | .pagination a:hover { | ||
background: linear-gradient(to bottom, #FEFEFE, #ECECEC); | |||
border-color: #666666; | |||
} | } | ||
. | .mw-page-numbers .current, | ||
. | .pageNumbers .current, | ||
.pagination .current { | |||
display: inline-block; | |||
padding: 5px 10px; | |||
background: linear-gradient(to bottom, #D1E5FE, #BBD8FB); | |||
border: 1px solid #4A8BF5; | |||
color: #000000; | |||
border-radius: 3px; | |||
font-weight: bold; | |||
} | } | ||
/* | /* 侧边栏样式 */ | ||
#mw-navigation, | |||
#mw-panel, | |||
. | .sidebar { | ||
background-color: #F1F1F1 !important; | |||
} | } | ||
. | |||
#mw-navigation h2, | |||
#mw-panel h3, | |||
.sidebar h3 { | |||
background: linear-gradient(to bottom, #0084C6, #0066AA) !important; | |||
color: white !important; | |||
padding: 5px 10px !important; | |||
font-family: var(--header-font) !important; | |||
font-size: 1rem !important; | |||
font-weight: bold !important; | |||
border-bottom: 1px solid #0044AA !important; | |||
margin: 0 !important; | |||
} | } | ||
. | |||
/* 引用样式 */ | |||
div.blockquote, blockquote { | |||
border: 1px solid #7B9EBD; | |||
background-color: #ECF4FD; | |||
color: #000000; | |||
border-radius: 3px; | |||
padding: 8px 12px; | |||
margin: 1em 1.5em; | |||
position: relative; | |||
box-shadow: 1px 1px 3px rgba(0, 0, 0, 0.1); | |||
} | } | ||
. | |||
/* 底部工具栏 */ | |||
#footer, .footer { | |||
background-color: #F1F1F1 !important; | |||
border-top: 1px solid #0055AA !important; | |||
color: #000000 !important; | |||
padding: 1em 0 !important; | |||
font-family: var(--body-font) !important; | |||
} | } | ||
#footer a, .footer a { | |||
. | color: #0055AA !important; | ||
} | } | ||
. | |||
#footer a:hover, .footer a:hover { | |||
color: #CC6600 !important; | |||
} | } | ||
. | |||
/* 轮播图 */ | |||
.mw-carousel { | |||
position: relative; | |||
width: 100%; | |||
max-width: 960px; | |||
margin: 2em auto; | |||
overflow: hidden; | |||
border: 1px solid #0055AA; | |||
border-radius: 8px 8px 0 0; | |||
box-shadow: 2px 2px 5px rgba(0, 0, 0, 0.3); | |||
aspect-ratio: 16 / 9; | |||
background-color: #F1F1F1; | |||
} | } | ||
. | .mw-carousel::before { | ||
content: "照片查看器"; | |||
position: absolute; | |||
top: 0; | |||
left: 0; | |||
right: 0; | |||
height: 25px; | |||
background: linear-gradient(to bottom, #0084C6, #0066AA); | |||
color: white; | |||
display: flex; | |||
align-items: center; | |||
padding: 0 10px; | |||
font-weight: bold; | |||
font-family: var(--title-font); | |||
z-index: 5; | |||
} | } | ||
.mw-carousel .carousel-image { | |||
. | width: 100%; | ||
height: 100%; | |||
position: relative; | |||
margin-top: 25px; /* 为标题栏留出空间 */ | |||
} | } | ||
. | |||
.mw-carousel .carousel-image img { | |||
width: 100%; | |||
height: 100%; | |||
object-fit: cover; | |||
display: block; | |||
} | } | ||
. | |||
. | .mw-carousel .carousel-caption { | ||
position: absolute; | |||
bottom: 0; | |||
left: 0; | |||
width: 100%; | |||
background: rgba(0, 0, 0, 0.7); | |||
color: white; | |||
padding: 10px; | |||
text-align: left; | |||
z-index: 2; | |||
} | } | ||
.mw-carousel .carousel-navigation { | |||
. | position: absolute; | ||
top: 50%; | |||
left: 0; | |||
. | width: 100%; | ||
. | display: flex; | ||
justify-content: space-between; | |||
transform: translateY(-50%); | |||
z-index: 3; | |||
padding: 0 10px; | |||
} | |||
.mw-carousel .carousel-prev, | |||
.mw-carousel .carousel-next { | |||
background: linear-gradient(to bottom, #F5F5F5, #E5E5E5); | |||
border: 1px solid #999999; | |||
border-radius: 50%; | |||
width: 32px; | |||
height: 32px; | |||
cursor: pointer; | |||
display: flex; | |||
justify-content: center; | |||
align-items: center; | |||
transition: all 0.3s; | |||
box-shadow: 1px 1px 2px rgba(0, 0, 0, 0.1); | |||
color: #000000; | |||
} | } | ||
. | |||
.mw-carousel .carousel-prev:hover, | |||
.mw-carousel .carousel-next:hover { | |||
background: linear-gradient(to bottom, #FEFEFE, #ECECEC); | |||
border-color: #666666; | |||
} | } | ||
. | |||
.mw-carousel .carousel-indicators { | |||
position: absolute; | |||
bottom: 40px; | |||
left: 50%; | |||
transform: translateX(-50%); | |||
display: flex; | |||
gap: 5px; | |||
z-index: 4; | |||
} | } | ||
. | |||
.mw-carousel .carousel-indicators .indicator { | |||
width: 10px; | |||
height: 10px; | |||
background-color: #CCCCCC; | |||
border: 1px solid #999999; | |||
border-radius: 50%; | |||
cursor: pointer; | |||
transition: all 0.3s; | |||
} | } | ||
.mw-carousel .carousel-indicators .indicator.active { | |||
background-color: #0084C6; | |||
border-color: #0055AA; | |||
} | } | ||
. | /* 黑幕效果改为橙色半透明(符合XP主题) */ | ||
.heimu, | |||
.heimu rt, | |||
.blackmu, | |||
.blackmu rt { | |||
--blackmu-color: 229, 140, 36; | |||
--blackmu-text-color: 0, 0, 0; | |||
--blackmu-link-color: 0, 85, 170; | |||
--blackmu-visited-link-color: 0, 64, 128; | |||
--blackmu-new-link-color: 204, 102, 0; | |||
--blackmu-new-visited-link-color: 153, 76, 0; | |||
background-color: rgba(var(--blackmu-color), 0.8); | |||
} | } | ||
.heimu, | |||
.heimu a, | |||
a .heimu, | |||
a.new .heimu, | |||
span.heimu a:visited, | |||
span.heimu a.new, | |||
span.heimu a.external, | |||
span.heimu a.external:visited, | |||
span.heimu a.extiw, | |||
span.heimu a.extiw:visited, | |||
span.heimu a.mw-disambig, | |||
span.heimu a.mw-redirect, | |||
.blackmu, | |||
.blackmu a, | |||
a .blackmu, | |||
a.new .blackmu, | |||
span.blackmu a:visited, | |||
span.blackmu a.new, | |||
span.blackmu a.external, | |||
span.blackmu a.external:visited, | |||
span.blackmu a.extiw, | |||
span.blackmu a.extiw:visited, | |||
span.blackmu a.mw-disambig, | |||
span.blackmu a.mw-redirect { | |||
transition: color 0.13s linear; | |||
color: rgba(var(--blackmu-color), 0.8); | |||
text-shadow: none; | |||
} | |||
span.heimu:hover, | |||
span.heimu:active, | |||
span.blackmu:hover, | |||
span.blackmu:active { | |||
color: rgb(var(--blackmu-text-color)); | |||
} | } | ||
. | span.heimu:hover a, | ||
. | a:hover span.heimu, | ||
span.blackmu:hover a, | |||
a:hover span.blackmu { | |||
color: rgb(var(--blackmu-link-color)); | |||
} | } | ||
/* | /* 颜色幕 */ | ||
.colormu-drk { | |||
color: #FFFFFF; | |||
} | |||
.colormu-bri { | |||
color: #000000; | |||
} | |||
.colormu-drk:not(.colormu_toggle_on) a { | |||
color: #add8e6; | |||
} | } | ||
. | .colormu-drk:not(.colormu_toggle_on) a.new { | ||
. | color: #FCC; | ||
} | } | ||
.colormu>span, | |||
.colormu a, | |||
.colormu a>span { | |||
transition: color 0.2s; | |||
} | |||
.colormu:not(:hover):not(:active):not(.colormu_toggle_on)>span, | |||
.colormu:not(:hover):not(:active):not(.colormu_toggle_on) a { | |||
color: transparent; | |||
} | } | ||
. | .colormu:not(:hover):not(:active):not(.colormu_toggle_on) a>span { | ||
. | color: transparent !important; | ||
} | } | ||
a .colormu-bri { | |||
color: inherit; | |||
} | |||
a:hover .colormu>span, | |||
a:active .colormu>span, | |||
.colormu-drk.colormu_toggle_on, | |||
.colormu_toggle_on>span, | |||
.colormu-drk.colormu_toggle_on a>span { | |||
color: inherit !important; | |||
} | |||
/* Windows XP样式的提示框(替代hovertip) */ | |||
.hovertip { | |||
background-color: #FFFFCC !important; | |||
border: 1px solid #999999 !important; | |||
border-radius: 3px !important; | |||
box-shadow: 2px 2px 5px rgba(0, 0, 0, 0.3) !important; | |||
padding: 6px !important; | |||
color: #000000 !important; | |||
font-family: var(--body-font) !important; | |||
font-size: 0.9rem !important; | |||
max-width: 300px !important; | |||
} | |||
/* Windows XP风格的选项卡 */ | |||
.yui-navset .yui-nav, | |||
.yui-navset .yui-navset-top .yui-nav { | |||
border-color: #7B9EBD !important; | |||
border-width: 0 0 1px 0 !important; | |||
zoom: 1 !important; | |||
position: relative !important; | |||
} | |||
.yui-navset .yui-nav li, | |||
.yui-navset .yui-navset-top .yui-nav li { | |||
margin: 0 0.16em 0 0 !important; | |||
padding: 1px 0 0 !important; | |||
list-style: none !important; | |||
display: inline-block !important; | |||
} | |||
.yui-navset .yui-nav a, | |||
.yui-navset .yui-nav a:focus, | |||
.yui-navset .yui-nav a:hover, | |||
.yui-navset .yui-navset-top .yui-nav a, | |||
.yui-navset .yui-navset-top .yui-nav a:focus, | |||
.yui-navset .yui-navset-top .yui-nav a:hover { | |||
background: linear-gradient(to bottom, #F5F5F5, #E5E5E5) !important; | |||
border: 1px solid #7B9EBD !important; | |||
color: #000000 !important; | |||
cursor: pointer !important; | |||
text-decoration: none !important; | |||
padding: 0.25em 0.5em !important; | |||
border-radius: 2px 2px 0 0 !important; | |||
} | } | ||
. | .yui-navset .yui-nav .selected a, | ||
.yui-navset .yui-nav .selected a:focus, | |||
.yui-navset .yui-nav .selected a:hover { | |||
background: linear-gradient(to bottom, #E3EFFF, #CDE2FE) !important; | |||
color: #000000 !important; | |||
border-color: #4A8BF5 !important; | |||
} | } | ||
. | |||
. | .yui-navset .yui-content { | ||
background: #FFFFFF !important; | |||
border: 1px solid #7B9EBD !important; | |||
border-top: none !important; | |||
padding: 10px !important; | |||
} | } | ||
/* | /* Windows XP风格的代码块 */ | ||
pre, code, .mw-code { | |||
background-color: #FFFFFF !important; | |||
border: 1px solid #7B9EBD !important; | |||
color: #000000 !important; | |||
font-family: var(--mono-font) !important; | |||
padding: 5px !important; | |||
border-radius: 3px !important; | |||
} | } | ||
/* Windows XP风格的分隔线 */ | |||
hr { | |||
margin: 1em 2em; | |||
padding: 0; | |||
height: 0; | |||
border: none; | |||
border-top: 1px solid #7B9EBD; | |||
} | } | ||
/* | /* Windows XP风格块 - 原database主题块 */ | ||
.lightstyled-quote { | |||
background-color: #ECF4FD; | |||
color: #000000; | |||
border-left: 3px solid #0055AA; | |||
padding: 0.1rem 1rem; | |||
margin: 0.5rem 0 0.5rem 0.25rem; | |||
box-shadow: 2px 2px 5px rgba(0, 0, 0, 0.1); | |||
} | } | ||
. | .darkstyled-quote { | ||
background-color: #D6E9FF; | |||
border-left: 3px solid #0055AA; | |||
color: #000000; | |||
padding: 0.1rem 1rem; | |||
margin: 0.5rem 0 0.5rem 0.25rem; | |||
box-shadow: 2px 2px 5px rgba(0, 0, 0, 0.1); | |||
} | } | ||
.lightblock { | |||
background-color: #ECF4FD; | |||
color: #000000; | |||
padding: 0.01rem 1rem; | |||
margin: 0.5rem 0 0.5rem 0.25rem; | |||
box-shadow: 2px 2px 5px rgba(0, 0, 0, 0.1); | |||
border: 1px solid #7B9EBD; | |||
border-radius: 3px; | |||
} | } | ||
. | .darkblock { | ||
. | background-color: #D6E9FF; | ||
color: #000000; | |||
padding: 0.01rem 1rem; | |||
margin: 0.5rem 0 0.5rem 0.25rem; | |||
box-shadow: 2px 2px 5px rgba(0, 0, 0, 0.1); | |||
border: 1px solid #7B9EBD; | |||
border-radius: 3px; | |||
} | } | ||
/* | /* Windows XP风格的错误屏幕块 */ | ||
.bluescreen { | |||
background-color: #0000AA; | |||
color: #FFFFFF; | |||
padding: 1.5rem; | |||
margin: 0.5rem 0 0.5rem 0.25rem; | |||
box-shadow: 2px 2px 5px rgba(0, 0, 0, 0.3); | |||
font-family: "Courier New", monospace; | |||
border: 2px solid #FFFFFF; | |||
position: relative; | |||
} | } | ||
. | .bluescreen::before { | ||
content: "Windows"; | |||
position: absolute; | |||
top: 0.5rem; | |||
left: 1rem; | |||
font-weight: bold; | |||
} | } | ||
/* | /* Windows XP Logo块 */ | ||
. | .logoblock { | ||
padding: 0.5rem 1rem; | |||
color: #000000; | |||
box-shadow: 2px 2px 5px rgba(0, 0, 0, 0.3); | |||
margin: 0.5rem 0 0.5rem 0.25rem; | |||
display: block; | |||
position: relative; | |||
background-color: #FFFFFF; | |||
border: 1px solid #7B9EBD; | |||
border-radius: 3px; | |||
min-height: 80px; | |||
} | } | ||
.logoblock::after { | |||
content: ""; | |||
float: center; | |||
border: solid 2px transparent; | |||
background: url() center/70% no-repeat; | |||
opacity: 0.7; | |||
top: 0; | |||
left: 0; | |||
bottom: 0; | |||
right: 0; | |||
position: absolute; | |||
z-index: 1; | |||
} | } | ||
/* | /* Windows XP风格的标题块 */ | ||
. | .titlebox { | ||
. | color: #FFFFFF; | ||
position: relative; | |||
top: -1.6rem; | |||
background: linear-gradient(to bottom, #0084C6, #0066AA); | |||
padding: 0.5rem 2rem; | |||
line-height: 0.1rem; | |||
border-radius: 3px 3px 0 0; | |||
border: 1px solid #0055AA; | |||
border-bottom: none; | |||
} | } | ||
/* | /* Windows XP风格警告消息 */ | ||
. | .mw-warning, .warning { | ||
. | background-color: #FFEFD5; | ||
color: #000000; | |||
padding: 0.7rem 1rem; | |||
margin: 1rem 0; | |||
border: 1px solid #FF8C00; | |||
border-radius: 3px; | |||
box-shadow: 2px 2px 5px rgba(0, 0, 0, 0.1); | |||
} | } | ||
.mw-warning:before, .warning:before { | |||
. | content: "⚠️ "; | ||
. | font-size: 1.2rem; | ||
vertical-align: middle; | |||
margin-right: 0.5rem; | |||
} | } | ||
/* | /* Windows XP风格的提示消息 */ | ||
. | .mw-info, .info { | ||
background-color: #E6F3FF; | |||
color: #000000; | |||
padding: 0.7rem 1rem; | |||
margin: 1rem 0; | |||
border: 1px solid #4A8BF5; | |||
border-radius: 3px; | |||
box-shadow: 2px 2px 5px rgba(0, 0, 0, 0.1); | |||
} | } | ||
.mw-info:before, .info:before { | |||
content: "ℹ️ "; | |||
font-size: 1.2rem; | |||
vertical-align: middle; | |||
margin-right: 0.5rem; | |||
} | } | ||
/* 窗口最小化和最大化状态的样式 */ | |||
.minimized .page-list, | |||
.minimized .feature-content, | |||
.minimized .tool-description, | |||
.minimized .announcement-content, | |||
.minimized .mw-parser-output, | |||
.minimized .toc { | |||
display: none !important; | |||
} | |||
.maximized { | |||
position: fixed !important; | |||
top: 5% !important; | |||
left: 5% !important; | |||
width: 90% !important; | |||
height: 90% !important; | |||
z-index: 9999 !important; | |||
} | } | ||
. | .maximized .page-list, | ||
. | .maximized .feature-content, | ||
.maximized .tool-description, | |||
.maximized .announcement-content, | |||
.maximized .mw-parser-output { | |||
max-height: calc(90vh - 40px) !important; | |||
overflow-y: auto !important; | |||
} | } | ||
/* | /* Windows XP风格的图片浏览器 */ | ||
.scp-image-block { | |||
box-shadow: 2px 2px 5px rgba(0, 0, 0, 0.3); | |||
border-radius: 3px; | |||
border: 1px solid #7B9EBD; | |||
margin: 0 2em 1em; | |||
background-color: #FFFFFF; | |||
} | } | ||
.scp-image-block.block-right { | |||
float: right; | |||
margin: 0 0 1em 2em; | |||
} | } | ||
. | .scp-image-block .scp-image-caption { | ||
. | background: linear-gradient(to bottom, #E3EFFF, #CDE2FE); | ||
color: #000000; | |||
padding: 5px; | |||
text-align: center; | |||
border-top: 1px solid #7B9EBD; | |||
} | } | ||
.scp-image-block img { | |||
. | padding: 5px; | ||
display: block; | |||
margin: 0 auto; | |||
} | } | ||
/* | /* 响应式布局调整 */ | ||
. | @media (max-width: 767px) { | ||
.main-page-banner { | |||
} | grid-template-areas: | ||
. | "welcome" | ||
. | "navigation"; | ||
grid-template-columns: 1fr; | |||
} | |||
.main-page-banner .welcome-text { | |||
width: 100%; | |||
margin-bottom: 0; | |||
box-sizing: border-box; | |||
} | |||
.main-page-banner .navigation-links { | |||
grid-area: navigation; | |||
display: flex; | |||
width: 100%; | |||
overflow: visible; | |||
} | |||
.recent-pages-container .page-section, | |||
.featured-content-container .feature-item { | |||
flex-basis: 100%; | |||
} | |||
.tools-container { | |||
grid-template-columns: 1fr; | |||
} | |||
.xp-window-controls { | |||
display: none !important; | |||
} | |||
} | } | ||
/* | /* 打印样式(续) */ | ||
. | @media print { | ||
body { | |||
background: #FFFFFF !important; | |||
color: #000000 !important; | |||
} | |||
#content { | |||
background: #FFFFFF !important; | |||
border: none !important; | |||
box-shadow: none !important; | |||
} | |||
.scan-animation, | |||
.xp-window-controls, | |||
.main-page-banner .navigation-links, | |||
.mw-carousel .carousel-navigation, | |||
.mw-carousel .carousel-indicators { | |||
display: none !important; | |||
} | |||
a { | |||
color: #000000 !important; | |||
text-decoration: underline !important; | |||
} | |||
a::before { | |||
content: none !important; | |||
} | |||
.infobox, | |||
.notaninfobox, | |||
.navbox, | |||
#toc, | |||
.toc, | |||
.announcement-container, | |||
.recent-pages-container .page-section, | |||
.featured-content-container .feature-item, | |||
.tools-container .tool-item { | |||
border: 1px solid #000000 !important; | |||
box-shadow: none !important; | |||
} | |||
.infobox th, | |||
.notaninfobox .infobox-title, | |||
.navbox-title, | |||
.toc .toctitle, | |||
#toc .toctitle, | |||
.announcement-container .section-title, | |||
.recent-pages-container .section-title, | |||
.featured-content-container .section-title, | |||
.tools-container .tool-item::before { | |||
background: #CCCCCC !important; | |||
color: #000000 !important; | |||
} | |||
} | } | ||
/* 滚动条样式 - Windows XP经典风格 */ | |||
::-webkit-scrollbar { | |||
width: 16px; | |||
height: 16px; | |||
} | } | ||
::-webkit-scrollbar-track { | |||
background-color: #F1F1F1; | |||
border-left: 1px solid #DFDFDF; | |||
} | } | ||
::-webkit-scrollbar-thumb { | |||
background: #C2D2E3; | |||
border: 1px solid #7B9EBD; | |||
border-radius: 3px; | |||
} | |||
::-webkit-scrollbar-thumb:hover { | |||
background: #9CB6D3; | |||
} | } | ||
::-webkit-scrollbar-button { | |||
background-color: #F1F1F1; | |||
border: 1px solid #7B9EBD; | |||
height: 16px; | |||
width: 16px; | |||
} | } | ||
::-webkit-scrollbar-button:vertical:increment { | |||
background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8"><path fill="%237B9EBD" d="M4 0l-4 4h8z" transform="translate(0 2)"/></svg>'); | |||
background-repeat: no-repeat; | |||
background-position: center; | |||
} | } | ||
::-webkit-scrollbar-button:vertical:decrement { | |||
background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8"><path fill="%237B9EBD" d="M0 0l4 4 4-4h-8z" transform="translate(0 2)"/></svg>'); | |||
background-repeat: no-repeat; | |||
background-position: center; | |||
} | |||
::-webkit-scrollbar-button:horizontal:increment { | |||
background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8"><path fill="%237B9EBD" d="M0 0l4 4-4 4v-8z" transform="translate(2 0)"/></svg>'); | |||
background-repeat: no-repeat; | |||
background-position: center; | |||
} | } | ||
::-webkit-scrollbar-button:horizontal:decrement { | |||
. | background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8"><path fill="%237B9EBD" d="M4 0l-4 4 4 4v-8z" transform="translate(2 0)"/></svg>'); | ||
background-repeat: no-repeat; | |||
background-position: center; | |||
} | } | ||
/* | /* 表单元素样式 - Windows XP风格 */ | ||
input[type="text"], | |||
input[type="password"], | |||
input[type="email"], | |||
input[type="url"], | |||
input[type="search"], | |||
textarea, | |||
select { | |||
background-color: #FFFFFF; | |||
border: 1px solid #7B9EBD; | |||
color: #000000; | |||
font-family: var(--body-font); | |||
padding: 4px 8px; | |||
border-radius: 2px; | |||
transition: border-color 0.2s, box-shadow 0.2s; | |||
} | |||
input[type="text"]:focus, | |||
input[type="password"]:focus, | |||
input[type="email"]:focus, | |||
input[type="url"]:focus, | |||
input[type="search"]:focus, | |||
textarea:focus, | |||
select:focus { | |||
border-color: #5690D2; | |||
box-shadow: 0 0 4px rgba(86, 144, 210, 0.5); | |||
outline: none; | |||
} | |||
select { | |||
padding: 3px 4px; | |||
background: linear-gradient(to bottom, #FEFEFE, #E5E5E5); | |||
border: 1px solid #7B9EBD; | |||
} | |||
input[type="checkbox"], | |||
input[type="radio"] { | |||
accent-color: #316AC5; | |||
} | |||
/* 按钮悬停时为Win XP鼠标悬停样式 */ | |||
button:hover, | |||
.button:hover, | |||
input[type="button"]:hover, | |||
input[type="submit"]:hover, | |||
input[type="reset"]:hover { | |||
background-color: #316AC5 !important; | |||
color: #FFFFFF !important; | |||
border-color: #215091 !important; | |||
background-image: none !important; | |||
} | } | ||
/* Windows XP风格窗口的工具栏 */ | |||
. | .xp-window-toolbar { | ||
background: linear-gradient(to bottom, #F5F5F5, #E5E5E5); | |||
border-bottom: 1px solid #CCCCCC; | |||
padding: 2px 5px; | |||
display: flex; | |||
align-items: center; | |||
} | } | ||
.xp-window-toolbar button { | |||
background: transparent; | |||
border: 1px solid transparent; | |||
border-radius: 2px; | |||
padding: 2px 5px; | |||
margin: 0 2px; | |||
cursor: pointer; | |||
} | |||
.xp-window-toolbar button:hover { | |||
background-color: #E0E0E0; | |||
border-color: #999999; | |||
} | } | ||
.xp-window-toolbar button:active { | |||
. | background-color: #D0D0D0; | ||
border-color: #999999; | |||
border-style: inset; | |||
} | } | ||
. | /* Windows XP风格的状态栏 */ | ||
.xp-window-statusbar { | |||
background-color: #F1F1F1; | |||
border-top: 1px solid #CCCCCC; | |||
padding: 2px 8px; | |||
font-size: 0.9em; | |||
color: #666666; | |||
display: flex; | |||
justify-content: space-between; | |||
} | } | ||
/* 菜单项 */ | |||
.xp-window-menu { | |||
background-color: #F1F1F1; | |||
border-bottom: 1px solid #CCCCCC; | |||
display: flex; | |||
padding: 0 5px; | |||
} | |||
.xp-window-menu-item { | |||
padding: 3px 10px; | |||
cursor: pointer; | |||
color: #000000; | |||
border: 1px solid transparent; | |||
border-radius: 2px; | |||
margin-right: 1px; | |||
} | |||
.xp-window-menu-item:hover { | |||
background-color: #E0E0E0; | |||
border-color: #999999; | |||
} | |||
.xp-window-menu-item.active { | |||
background-color: #D0D0D0; | |||
border-color: #999999; | |||
} | } | ||
. | /* 页码样式增强 - 确保更符合XP风格 */ | ||
.mw-pagination { | |||
display: flex; | |||
align-items: center; | |||
justify-content: center; | |||
margin: 1.5em 0; | |||
padding: 0; | |||
list-style: none; | |||
} | } | ||
. | .mw-pagination li { | ||
margin: 0 2px; | |||
} | } | ||
.mw-pagination a, | |||
.mw-pagination span { | |||
display: inline-block; | |||
min-width: 30px; | |||
height: 30px; | |||
line-height: 30px; | |||
border: 1px solid #7B9EBD; | |||
background: linear-gradient(to bottom, #F5F5F5, #E5E5E5); | |||
color: #000000; | |||
border-radius: 3px; | |||
text-align: center; | |||
text-decoration: none; | |||
box-shadow: 1px 1px 2px rgba(0, 0, 0, 0.1); | |||
} | |||
.mw-pagination a:hover { | |||
background: linear-gradient(to bottom, #FEFEFE, #ECECEC); | |||
border-color: #666666; | |||
} | } | ||
. | .mw-pagination .active span { | ||
background: linear-gradient(to bottom, #D1E5FE, #BBD8FB); | |||
border-color: #4A8BF5; | |||
color: #000000; | |||
font-weight: bold; | |||
} | } | ||
.mw-pagination .disabled span { | |||
color: #AAAAAA; | |||
background: #F8F8F8; | |||
border-color: #DDDDDD; | |||
cursor: not-allowed; | |||
} | } | ||
/* 进度条样式 - Windows XP风格 */ | |||
. | progress { | ||
-webkit-appearance: none; | |||
-moz-appearance: none; | |||
appearance: none; | |||
height: 20px; | |||
width: 100%; | |||
border: 1px solid #7B9EBD; | |||
border-radius: 2px; | |||
background-color: #FFFFFF; | |||
} | |||
progress::-webkit-progress-bar { | |||
background-color: #FFFFFF; | |||
border-radius: 1px; | |||
} | |||
progress::-webkit-progress-value { | |||
background: linear-gradient(to bottom, #0084C6, #0066AA); | |||
border-radius: 1px; | |||
} | |||
progress::-moz-progress-bar { | |||
background: linear-gradient(to bottom, #0084C6, #0066AA); | |||
border-radius: 1px; | |||
} | |||
/* XP风格的开始菜单(可用于站点导航等) */ | |||
.xp-start-menu { | |||
position: fixed; | |||
bottom: 30px; | |||
left: 0; | |||
width: 320px; | |||
background-color: #F1F1F1; | |||
border: 1px solid #0055AA; | |||
border-radius: 0 8px 8px 0; | |||
box-shadow: 2px 2px 5px rgba(0, 0, 0, 0.3); | |||
z-index: 10000; | |||
display: none; | |||
} | |||
.xp-start-menu.visible { | |||
display: block; | |||
} | |||
.xp-start-menu-header { | |||
background: linear-gradient(to right, #0084C6, #0066AA); | |||
height: 60px; | |||
padding: 10px; | |||
color: white; | |||
display: flex; | |||
align-items: center; | |||
border-radius: 0 8px 0 0; | |||
} | } | ||
.xp-start-menu-header img { | |||
width: 40px; | |||
height: 40px; | |||
margin-right: 10px; | |||
} | } | ||
. | .xp-start-menu-header .user-name { | ||
font-weight: bold; | |||
font-size: 1.2em; | |||
} | } | ||
.xp-start-menu-body { | |||
. | display: flex; | ||
} | } | ||
.xp-start-menu-left { | |||
. | width: 200px; | ||
padding: 8px; | |||
background-color: white; | |||
border-right: 1px solid #CCCCCC; | |||
} | } | ||
.xp-start-menu-right { | |||
. | width: 120px; | ||
padding: 8px; | |||
background-color: #F1F1F1; | |||
. | } | ||
.xp-start-menu-item { | |||
padding: 8px; | |||
margin: 2px 0; | |||
display: flex; | |||
align-items: center; | |||
cursor: pointer; | |||
border-radius: 2px; | |||
} | |||
.xp-start-menu-item:hover { | |||
background-color: #316AC5; | |||
color: white; | |||
} | } | ||
. | .xp-start-menu-item img { | ||
width: 24px; | |||
height: 24px; | |||
margin-right: 8px; | |||
} | } | ||
. | .xp-start-menu-footer { | ||
height: 30px; | |||
background: linear-gradient(to right, #0084C6, #0066AA); | |||
display: flex; | |||
align-items: center; | |||
justify-content: flex-end; | |||
padding: 0 10px; | |||
} | } | ||
. | .xp-start-button { | ||
background: linear-gradient(to bottom, #63B34C, #4E9C3D); | |||
color: white; | |||
border: 1px solid #4E9C3D; | |||
border-radius: 3px; | |||
padding: 2px 8px; | |||
font-weight: bold; | |||
cursor: pointer; | |||
} | } | ||
. | .xp-start-button:hover { | ||
background: linear-gradient(to bottom, #74C25D, #5FAD4E); | |||
} | } | ||
/* | /* 任务栏 */ | ||
. | .xp-taskbar { | ||
position: fixed; | |||
bottom: 0; | |||
left: 0; | |||
width: 100%; | |||
height: 30px; | |||
background: linear-gradient(to top, #0084C6, #0066AA); | |||
display: flex; | |||
align-items: center; | |||
padding: 0 2px; | |||
z-index: 9999; | |||
box-shadow: 0 -2px 5px rgba(0, 0, 0, 0.2); | |||
. | } | ||
.xp-start-button-container { | |||
. | display: flex; | ||
align-items: center; | |||
margin-right: 5px; | |||
} | } | ||
. | .xp-taskbar-items { | ||
display: flex; | |||
flex-grow: 1; | |||
height: 100%; | |||
align-items: center; | |||
overflow-x: auto; | |||
} | } | ||
. | .xp-taskbar-item { | ||
background: linear-gradient(to bottom, #F5F5F5, #E5E5E5); | |||
border: 1px solid #999999; | |||
height: 22px; | |||
padding: 0 8px; | |||
margin: 0 2px; | |||
border-radius: 2px; | |||
display: flex; | |||
align-items: center; | |||
min-width: 100px; | |||
max-width: 200px; | |||
cursor: pointer; | |||
box-shadow: 1px 1px 2px rgba(0, 0, 0, 0.1); | |||
} | } | ||
. | .xp-taskbar-item:hover { | ||
background: linear-gradient(to bottom, #FEFEFE, #ECECEC); | |||
} | } | ||
. | .xp-taskbar-item.active { | ||
background: linear-gradient(to bottom, #D1E5FE, #BBD8FB); | |||
border-color: #4A8BF5; | |||
} | } | ||
. | .xp-taskbar-item img { | ||
width: 16px; | |||
height: 16px; | |||
margin-right: 5px; | |||
} | } | ||
. | .xp-taskbar-item span { | ||
white-space: nowrap; | |||
overflow: hidden; | |||
text-overflow: ellipsis; | |||
} | } | ||
. | .xp-system-tray { | ||
display: flex; | |||
align-items: center; | |||
height: 100%; | |||
padding: 0 5px; | |||
border-left: 1px solid rgba(255, 255, 255, 0.2); | |||
} | } | ||
. | .xp-system-tray-item { | ||
width: 16px; | |||
height: 16px; | |||
margin: 0 3px; | |||
cursor: pointer; | |||
} | } | ||
. | /* XP风格的系统图标 */ | ||
.xp-icon { | |||
display: inline-block; | |||
width: 32px; | |||
height: 32px; | |||
margin: 0 5px; | |||
cursor: pointer; | |||
position: relative; | |||
text-align: center; | |||
} | } | ||
. | .xp-icon img { | ||
width: 32px; | |||
height: 32px; | |||
display: block; | |||
margin: 0 auto; | |||
} | } | ||
. | .xp-icon span { | ||
display: block; | |||
font-size: 0.8em; | |||
margin-top: 2px; | |||
color: #000000; | |||
background-color: rgba(255, 255, 255, 0.7); | |||
border-radius: 2px; | |||
padding: 0 2px; | |||
width: 100%; | |||
overflow: hidden; | |||
text-overflow: ellipsis; | |||
white-space: nowrap; | |||
} | } | ||
. | .xp-icon:hover span { | ||
background-color: #316AC5; | |||
color: white; | |||
} | |||
.xp-shortcut::before { | |||
content: ""; | |||
position: absolute; | |||
bottom: 0; | |||
left: 0; | |||
width: 8px; | |||
height: 8px; | |||
background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8"><path fill="%23000000" d="M0 0v6l6-3z" transform="translate(1 1)"/></svg>'); | |||
background-repeat: no-repeat; | |||
} | } | ||
/* 通用辅助类 */ | |||
. | .xp-shadow { | ||
box-shadow: 2px 2px 5px rgba(0, 0, 0, 0.3); | |||
} | } | ||
. | .xp-border { | ||
border: 1px solid #7B9EBD; | |||
border-radius: 3px; | |||
} | } | ||
. | .xp-header-gradient { | ||
background: linear-gradient(to bottom, #0084C6, #0066AA); | |||
color: white; | |||
} | } | ||
. | .xp-button-gradient { | ||
background: linear-gradient(to bottom, #F5F5F5, #E5E5E5); | |||
} | } | ||
. | .xp-panel-gradient { | ||
background: linear-gradient(to bottom, #E3EFFF, #CDE2FE); | |||
} | } | ||
/* | /* 确保风格一致性 */ | ||
* { | |||
box-sizing: border-box; | |||
} | } | ||
/* 淡入动画修改 - 使用XP风格的淡入效果 */ | |||
@keyframes fadeIn { | |||
from { | |||
opacity: 0; | |||
transform: translateY(10px); | |||
} | |||
to { | |||
opacity: 1; | |||
transform: translateY(0); | |||
} | |||
} | } | ||
. | .mw-parser-output > * { | ||
animation: fadeIn 0.3s ease-out forwards; | |||
opacity: 0; | |||
. | |||
} | } | ||
. | /* 延迟动画 */ | ||
.mw-parser-output > *:nth-child(1) { animation-delay: 0.05s; } | |||
.mw-parser-output > *:nth-child(2) { animation-delay: 0.1s; } | |||
.mw-parser-output > *:nth-child(3) { animation-delay: 0.15s; } | |||
.mw-parser-output > *:nth-child(4) { animation-delay: 0.2s; } | |||
.mw-parser-output > *:nth-child(5) { animation-delay: 0.25s; } | |||
.mw-parser-output > *:nth-child(n+6) { animation-delay: 0.3s; } | |||
/* Windows XP启动动画 - 仅在页面加载时出现 */ | |||
.xp-startup-screen { | |||
position: fixed; | |||
top: 0; | |||
left: 0; | |||
width: 100%; | |||
height: 100%; | |||
background-color: #000000; | |||
z-index: 10001; | |||
display: flex; | |||
flex-direction: column; | |||
justify-content: center; | |||
align-items: center; | |||
color: white; | |||
animation: fadeOut 3s forwards; | |||
animation-delay: 2s; | |||
} | } | ||
. | |||
.xp-startup-logo { | |||
width: 200px; | |||
height: 200px; | |||
margin-bottom: 30px; | |||
background: url() center/contain no-repeat; | |||
} | } | ||
. | |||
.xp-startup-progress { | |||
width: 300px; | |||
height: 20px; | |||
background-color: #333333; | |||
border: 1px solid #555555; | |||
position: relative; | |||
overflow: hidden; | |||
} | } | ||
. | |||
.xp-startup-progress::after { | |||
content: ""; | |||
position: absolute; | |||
top: 0; | |||
left: -100%; | |||
width: 100%; | |||
height: 100%; | |||
background: linear-gradient(to right, | |||
transparent 0%, | |||
#0084C6 30%, | |||
#0084C6 70%, | |||
transparent 100% | |||
); | |||
animation: progressMove 1.5s linear infinite; | |||
} | } | ||
@keyframes progressMove { | |||
0% { left: -100%; } | |||
100% { left: 100%; } | |||
} | } | ||
@keyframes fadeOut { | |||
0% { opacity: 1; visibility: visible; } | |||
99% { opacity: 0; visibility: visible; } | |||
100% { opacity: 0; visibility: hidden; } | |||
} | } | ||
/* 页面错误消息 - 模拟XP错误弹窗 */ | |||
. | .xp-error-dialog { | ||
position: fixed; | |||
. | top: 50%; | ||
left: 50%; | |||
transform: translate(-50%, -50%); | |||
width: 300px; | |||
background-color: #F1F1F1; | |||
border: 1px solid #0055AA; | |||
border-radius: 8px 8px 0 0; | |||
box-shadow: 2px 2px 15px rgba(0, 0, 0, 0.5); | |||
z-index: 10000; | |||
} | |||
.xp-error-dialog-title { | |||
background: linear-gradient(to bottom, #0084C6, #0066AA); | |||
color: white; | |||
padding: 5px 10px; | |||
font-family: var(--title-font); | |||
font-size: 1rem; | |||
font-weight: bold; | |||
height: 25px; | |||
display: flex; | |||
align-items: center; | |||
justify-content: space-between; | |||
border-bottom: 1px solid #0044AA; | |||
} | |||
.xp-error-dialog-title span { | |||
flex-grow: 1; | |||
} | |||
.xp-error-dialog-content { | |||
padding: 15px; | |||
display: flex; | |||
align-items: flex-start; | |||
} | } | ||
. | .xp-error-dialog-icon { | ||
width: 32px; | |||
height: 32px; | |||
margin-right: 10px; | |||
background: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32"><circle cx="16" cy="16" r="16" fill="%23FF0000"/><text x="16" y="24" text-anchor="middle" font-family="Arial" font-weight="bold" font-size="24" fill="%23FFFFFF">!</text></svg>') no-repeat; | |||
. | |||
. | |||
} | } | ||
. | .xp-error-dialog-message { | ||
flex-grow: 1; | |||
color: #000000; | |||
} | } | ||
. | .xp-error-dialog-buttons { | ||
display: flex; | |||
justify-content: flex-end; | |||
padding: 10px 15px 15px; | |||
} | } | ||
. | .xp-error-dialog-ok { | ||
background: linear-gradient(to bottom, #F5F5F5, #E5E5E5); | |||
border: 1px solid #999999; | |||
border-radius: 3px; | |||
padding: 4px 15px; | |||
cursor: pointer; | |||
transition: all 0.2s; | |||
box-shadow: 1px 1px 2px rgba(0, 0, 0, 0.1); | |||
} | } | ||
. | .xp-error-dialog-ok:hover { | ||
background: linear-gradient(to bottom, #FEFEFE, #ECECEC); | |||
border-color: #666666; | |||
} | } | ||
. | .xp-error-dialog-ok:active { | ||
background: #E0E0E0; | |||
box-shadow: inset 1px 1px 2px rgba(0, 0, 0, 0.2); | |||
} | } | ||
. | /* 搜索框右侧按钮 - 更具体的选择器 */ | ||
#searchButton, | |||
#mw-searchButton, | |||
.searchButton, | |||
button[name="go"], | |||
button[name="fulltext"], | |||
.mw-ui-button.mw-ui-progressive { | |||
background-color: rgb(var(--gray-monochrome)) !important; | |||
border: 1px solid rgb(var(--bright-accent)) !important; | |||
color: rgb(var(--bright-accent)) !important; | |||
font-family: var(--body-font) !important; | |||
padding: 0.3em 0.6em !important; | |||
cursor: pointer !important; | |||
transition: all 0.2s ease !important; | |||
} | } | ||
#searchButton:hover, | |||
. | #mw-searchButton:hover, | ||
.searchButton:hover, | |||
button[name="go"]:hover, | |||
button[name="fulltext"]:hover, | |||
.mw-ui-button.mw-ui-progressive:hover { | |||
background-color: rgb(var(--bright-accent)) !important; | |||
color: rgb(var(--black-monochrome)) !important; | |||
box-shadow: 0 0 10px rgba(var(--bright-accent), 0.3) !important; | |||
} | } | ||
. | /* 变色龙皮肤特定搜索按钮 */ | ||
.chameleon-search-form .btn { | |||
background-color: rgb(var(--gray-monochrome)) !important; | |||
border: 1px solid rgb(var(--bright-accent)) !important; | |||
color: rgb(var(--bright-accent)) !important; | |||
font-family: var(--body-font) !important; | |||
} | } | ||
/* | .chameleon-search-form .btn:hover { | ||
. | background-color: rgb(var(--bright-accent)) !important; | ||
color: rgb(var(--black-monochrome)) !important; | |||
} | |||
/* 底部工具栏完整样式 */ | |||
. | #footer, | ||
. | .footer, | ||
. | #footer-places, | ||
#footer-info, | |||
#footer-info-lastmod, | |||
#footer-info-viewcount, | |||
#footer-places-privacy, | |||
#footer-places-about, | |||
#footer-places-disclaimer, | |||
#footer-icons, | |||
.footer-info, | |||
.footer-places, | |||
.footer-icons, | |||
.printfooter, | |||
.mw-footer, | |||
.mw-footer li { | |||
background-color: rgb(var(--black-monochrome)) !important; | |||
color: rgb(var(--bright-accent)) !important; | |||
font-family: var(--body-font) !important; | |||
border: none !important; | |||
} | } | ||
/* | /* 页脚主容器 */ | ||
. | .mw-footer, | ||
. | #footer, | ||
.footer { | |||
background-color: rgb(var(--black-monochrome)) !important; | |||
border-top: 2px solid rgb(var(--bright-accent)) !important; | |||
margin-top: 1em !important; | |||
padding: 1em 0 !important; | |||
} | } | ||
. | /* 页脚链接 */ | ||
#footer a, | |||
.footer a, | |||
.mw-footer a { | |||
color: rgb(var(--bright-accent)) !important; | |||
text-decoration: none !important; | |||
} | } | ||
. | #footer a:hover, | ||
. | .footer a:hover, | ||
.mw-footer a:hover { | |||
color: rgb(var(--white-monochrome)) !important; | |||
text-decoration: underline !important; | |||
} | } | ||
/* | /* 页脚列表项 */ | ||
. | #footer li, | ||
.footer li, | |||
.mw-footer li { | |||
color: rgb(var(--bright-accent)) !important; | |||
margin: 0.5em 0 !important; | |||
} | } | ||
/* 底部工具栏按钮区域 */ | |||
. | #footer-poweredbyico, | ||
#footer-copyrightico, | |||
.footer-icons { | |||
background-color: transparent !important; | |||
} | } | ||
/* | /* 变色龙皮肤特定的页脚 */ | ||
. | .p-tb, | ||
. | #p-tb, | ||
.tools-menu, | |||
#t-whatlinkshere, | |||
#t-recentchangeslinked, | |||
#t-specialpages, | |||
#t-print, | |||
#t-permalink, | |||
#t-info { | |||
background-color: rgb(var(--black-monochrome)) !important; | |||
color: rgb(var(--bright-accent)) !important; | |||
} | |||
/* 页脚的具体区域 */ | |||
.mw-footer-container { | |||
background-color: rgb(var(--black-monochrome)) !important; | |||
} | } | ||
/* 底部导航区域 */ | |||
#footer-navigation { | |||
background-color: rgb(var(--black-monochrome)) !important; | |||
border-top: 1px solid rgb(var(--bright-accent)) !important; | |||
} | } | ||
. | /* 变色龙皮肤特定修复 */ | ||
.chameleon-toc { | |||
background-color: rgb(var(--gray-monochrome)) !important; | |||
border: 2px solid rgb(var(--bright-accent)) !important; | |||
} | } | ||
. | |||
.chameleon-toc .toctitle { | |||
background-color: rgb(var(--bright-accent)) !important; | |||
color: rgb(var(--black-monochrome)) !important; | |||
} | } | ||
. | |||
/* 搜索按钮图标 */ | |||
.mw-ui-icon:before, | |||
.oo-ui-icon-search { | |||
filter: brightness(0) saturate(100%) invert(58%) sepia(78%) saturate(481%) hue-rotate(353deg) brightness(101%) contrast(91%); | |||
} | } | ||
/* 工具条完整修复 */ | |||
#mw-panel, | |||
#mw-head, | |||
#mw-head-base, | |||
#mw-page-base, | |||
#left-navigation, | |||
#right-navigation, | |||
#p-personal, | |||
#p-search, | |||
#p-tb, | |||
#p-cactions, | |||
#p-namespaces, | |||
#p-views, | |||
#p-variants, | |||
#p-coll-print_export, | |||
#p-wikibase-otherprojects, | |||
#p-lang { | |||
background-color: rgb(var(--black-monochrome)) !important; | |||
} | } | ||
. | |||
/* 工具条容器 */ | |||
.mw-portlet, | |||
.vector-menu { | |||
background-color: rgb(var(--black-monochrome)) !important; | |||
} | } | ||
/* 工具条标题 */ | |||
.mw-portlet h3, | |||
.vector-menu h3, | |||
.vector-menu-heading { | |||
background-color: rgb(var(--bright-accent)) !important; | |||
color: rgb(var(--black-monochrome)) !important; | |||
padding: 0.25em 0.5em !important; | |||
border: none !important; | |||
} | } | ||
. | /* Echo扩展通知图标修复 */ | ||
. | /* 通知图标基础样式 */ | ||
#pt-notifications-alert, | |||
#pt-notifications-notice, | |||
.mw-echo-notifications-badge, | |||
.mw-echo-notification-badge-nojs { | |||
background-color: transparent !important; | |||
border: none !important; | |||
} | } | ||
/* 修复图标颜色和可见性 */ | |||
#pt-notifications-alert .mw-echo-notifications-badge:before, | |||
opacity: 1; | #pt-notifications-notice .mw-echo-notifications-badge:before, | ||
.mw-echo-notifications-badge:before { | |||
color: rgb(var(--bright-accent)) !important; | |||
filter: none !important; | |||
opacity: 1 !important; | |||
} | |||
/* 未读通知计数器 */ | |||
.mw-echo-notifications-badge:after, | |||
.mw-echo-notification-badge-nojs:after { | |||
background-color: rgb(var(--bright-accent)) !important; | |||
color: rgb(var(--black-monochrome)) !important; | |||
opacity: | border: 1px solid rgb(var(--black-monochrome)) !important; | ||
opacity: 1 !important; | |||
} | } | ||
. | /* 图标悬停效果 */ | ||
#pt-notifications-alert:hover .mw-echo-notifications-badge:before, | |||
#pt-notifications-notice:hover .mw-echo-notifications-badge:before { | |||
color: rgb(var(--white-monochrome)) !important; | |||
} | } | ||
. | /* 修复SVG图标 */ | ||
. | .mw-echo-notifications-badge svg, | ||
. | .oo-ui-icon-bell svg, | ||
.oo-ui-icon-tray svg { | |||
fill: rgb(var(--bright-accent)) !important; | |||
stroke: rgb(var(--bright-accent)) !important; | |||
} | } | ||
/* 确保图标容器可见 */ | |||
#pt-notifications-alert, | |||
#pt-notifications-notice { | |||
opacity: 1 !important; | |||
visibility: visible !important; | |||
display: inline-block !important; | |||
} | } | ||
/* | /* 通知面板样式 */ | ||
. | .mw-echo-ui-overlay, | ||
.mw-echo-ui-notificationsWidget { | |||
background-color: rgb(var(--black-monochrome)) !important; | |||
border: 2px solid rgb(var(--bright-accent)) !important; | |||
color: rgb(var(--white-monochrome)) !important; | |||
} | } | ||
. | |||
/* 通知项目 */ | |||
.mw-echo-ui-notificationItemWidget { | |||
background-color: rgb(var(--gray-monochrome)) !important; | |||
border-bottom: 1px solid rgb(var(--bright-accent)) !important; | |||
color: rgb(var(--white-monochrome)) !important; | |||
} | } | ||
.mw-echo-ui-notificationItemWidget:hover { | |||
background-color: rgba(var(--bright-accent), 0.1) !important; | |||
.hover | |||
} | } | ||
. | /* 通知标题和内容 */ | ||
.mw-echo-ui-notificationItemWidget-content-message-header { | |||
color: rgb(var(--bright-accent)) !important; | |||
} | } | ||
.mw-echo-ui-notificationItemWidget-content-message-body { | |||
color: rgb(var(--white-monochrome)) !important; | |||
} | } | ||
. | #pt-notifications-alert .oo-ui-iconElement-icon, | ||
. | #pt-notifications-notice .oo-ui-iconElement-icon, | ||
.mw-echo-notification-badge .oo-ui-iconElement-icon { | |||
background-color: transparent !important; | |||
} | } | ||
. | /* 只修改通知图标的颜色 */ | ||
. | #pt-notifications-alert .oo-ui-icon-bell, | ||
#pt-notifications-notice .oo-ui-icon-tray { | |||
filter: invert(58%) sepia(58%) saturate(1008%) hue-rotate(351deg) brightness(97%) contrast(94%); | |||
} | |||
/* 强制显示通知图标 - 针对可能被隐藏的情况 */ | |||
#p-personal .vector-menu-content-list #pt-notifications-alert, | |||
#p-personal .vector-menu-content-list #pt-notifications-notice { | |||
display: list-item !important; | |||
visibility: visible !important; | |||
opacity: 1 !important; | |||
} | } | ||
/* | /* 如果使用Font Awesome或其他图标字体 */ | ||
. | .mw-echo-notifications-badge:before, | ||
. | .oo-ui-icon-bell:before, | ||
.oo-ui-icon-tray:before { | |||
color: rgb(var(--bright-accent)) !important; | |||
opacity: 1 !important; | |||
. | visibility: visible !important; | ||
} | } | ||
. | /* 在顶栏显示用户头像 - 针对变色龙皮肤 */ | ||
.navbar-userloggedin, | |||
#personal-inner, | |||
#p-personal .vector-menu-content-list > li:first-child, | |||
.navbar-personaltools > li:first-child { | |||
position: relative; | |||
padding-left: 30px !important; | |||
} | } | ||
. | |||
.navbar-userloggedin::before, | |||
#personal-inner::before, | |||
#p-personal .vector-menu-content-list > li:first-child > a::before, | |||
.navbar-personaltools > li:first-child > a::before { | |||
content: ""; | |||
position: absolute; | |||
left: 5px; | |||
top: 50%; | |||
transform: translateY(-50%); | |||
width: 24px; | |||
height: 24px; | |||
border-radius: 50%; | |||
background-size: cover; | |||
background-position: center; | |||
border: 1px solid rgb(var(--bright-accent)); | |||
z-index: 100; | |||
} | } | ||
. | |||
/* 头像悬停效果 */ | |||
.navbar-userloggedin::before, | |||
#personal-inner::before, | |||
#p-personal .vector-menu-content-list > li:first-child > a::before, | |||
.navbar-personaltools > li:first-child > a::before { | |||
transition: all 0.3s ease !important; | |||
} | } | ||
. | |||
.navbar-userloggedin:hover::before, | |||
#personal-inner:hover::before, | |||
#p-personal .vector-menu-content-list > li:first-child > a:hover::before, | |||
.navbar-personaltools > li:first-child > a:hover::before { | |||
transform: translateY(-50%) scale(1.2) !important; | |||
box-shadow: 0 0 10px rgba(var(--bright-accent), 0.6) !important; | |||
border-color: rgb(var(--white-monochrome)) !important; | |||
} | } | ||
/* 本段内容来自萌娘百科 https://zh.moegirl.org.cn/MediaWiki:Gadget-site-styles.css 感谢贡献!*/ | |||
. | /* 版权协定:知识共享 署名-非商业性使用-相同方式共享 3.0 */ | ||
. | |||
.heimu, | |||
.heimu rt{ | |||
--heimu-color:#252525; | |||
--heimu-text-color:#fff; | |||
--heimu-link-color:#add8e6; | |||
--heimu-visited-link-color:#c5cae9; | |||
--heimu-new-link-color:#fcc; | |||
--heimu-new-visited-link-color:#ef9a9a; | |||
--heimu-extiw-visited-link-color:#d1c4e9; | |||
background-color:var(--heimu-color); | |||
} | } | ||
.heimu, | |||
. | .heimu a, | ||
a .heimu, | |||
a.new .heimu, | |||
span.heimu a:visited, | |||
span.heimu a.new, | |||
a . | span.heimu a.external, | ||
span.heimu a.external:visited, | |||
span.heimu a.extiw, | |||
a | span.heimu a.extiw:visited, | ||
span.heimu a.mw-disambig, | |||
. | span.heimu a.mw-redirect{ | ||
transition:color 0.13s linear; | |||
color:var(--heimu-color); | |||
text-shadow:none; | |||
.mw- | |||
} | } | ||
span.heimu:hover, | |||
span.heimu:active{ | |||
color:var(--heimu-text-color); | |||
} | } | ||
. | span.heimu:hover a, | ||
a:hover span.heimu{ | |||
color:var(--heimu-link-color); | |||
} | } | ||
span.heimu:hover a:visited, | |||
a:visited:hover span.heimu{ | |||
color:var(--heimu-visited-link-color); | |||
} | |||
} | |||
span.heimu:hover a.new, | |||
. | a.new:hover span.heimu{ | ||
color:var(--heimu-new-link-color); | |||
} | } | ||
span.heimu a.new:hover:visited, | |||
. | a.new:hover:visited span.heimu{ | ||
color:var(--heimu-new-visited-link-color); | |||
} | } | ||
. | span.heimu:hover a.extiw:visited, | ||
a.extiw:visited:hover span.heimu{ | |||
color:var(--heimu-extiw-visited-link-color); | |||
} | } | ||
[color-mode="dark"] .heimu, | |||
[color-mode="dark"] .heimu rt{ | |||
--heimu-color:#5e6272; | |||
} | } | ||
. | /* | ||
该文档为一个hover特效库,由一些常用的效果以及GitHub上的开源项目“Hover.css”的一些部分构成。 | |||
请使用hovers在页面中进行载入。 | |||
*/ | |||
/* | /* hover状态切换 */ | ||
. | .hover-change, | ||
position: | .hover-remote { | ||
position: relative; | |||
display: inline-block; | |||
transition: opacity 0.5s linear; | |||
display: | |||
transition: opacity 0. | |||
} | } | ||
. | .hover-change-before, | ||
.hover-change-after, | |||
.hover-remote-target { | |||
transition: inherit; | |||
} | } | ||
. | .hover-change-after, | ||
. | .hover-remote-target { | ||
opacity: 0; | |||
position: absolute; | |||
top: 0; | |||
left: 0; | |||
} | } | ||
.hover-remote-target { | |||
left: 100%; | |||
} | } | ||
.hover-change-after[style^='right:'], | |||
. | .hover-change-after[style*=' right:'], | ||
.hover-remote-after[style^='right:'], | |||
.hover-remote-after[style*=' right:'] { | |||
left: initial; | |||
} | } | ||
. | .hover-change-after[style^='bottom:'], | ||
.hover-change-after[style*=' bottom:'], | |||
.hover-remote-after[style^='bottom:'], | |||
.hover-remote-after[style*=' bottom:'] { | |||
top: initial; | |||
} | } | ||
. | .hover-change-after:hover, | ||
.hover-remote-target { | |||
opacity: 0; | |||
margin-left: -9999px; | |||
} | } | ||
. | /* 主要用于制作hover形式的标签页(tab)切换 */ | ||
.hover-tab-mode { | |||
position: relative; | |||
transition: none; | |||
} | } | ||
.hover-tab-mode .hover-remote { | |||
transition: inherit; | |||
position: static; | |||
} | } | ||
/* | /* 闪烁效果 */ | ||
. | .hover-change.flash:hover .hover-change-before { | ||
margin-left: -9999px; | |||
} | } | ||
. | .hover-change:hover > .hover-change-before, | ||
.hover-remote > .hover-remote-target, | |||
} | .hover-change:hover > a > .hover-change-before, | ||
.hover-remote > a > .hover-remote-target { | |||
opacity: 0; | |||
} | |||
.hover-change:hover > .hover-change-after, | |||
.hover-remote:hover > .hover-remote-target, | |||
.hover-change:hover > a > .hover-change-after, | |||
.hover-remote:hover > a > .hover-remote-target { | |||
opacity: 1; | |||
margin-left: initial; | |||
} | } | ||
/* | /* 基类 */ | ||
[class*='hovers-'] { | |||
display: inline-block; | |||
box-shadow: 0 0 1px rgba(0, 0, 0, 0); | |||
transform: perspective(1px) translateZ(0); | |||
vertical-align: middle; | |||
transition-duration: 0.25s; | |||
transition-property: all; | |||
} | } | ||
. | /* 旋转放大 */ | ||
.hovers-rotate-shrink { | |||
transition-duration: 0.5s; | |||
transform: rotate(0) scale(0.75); | |||
} | |||
.hovers-rotate-shrink:hover { | |||
transform: rotate(360deg) scale(1); | |||
} | } | ||
. | .hovers-rotate-shrink-reverse { | ||
transition-duration: 0.5s; | |||
transform: rotate(360deg) scale(0.75); | |||
} | } | ||
.hovers-rotate-shrink-reverse:hover { | |||
transform: rotate(0) scale(1); | |||
} | |||
/* 旋转 */ | |||
.hovers-rotate, | |||
.hovers-rotate-reverse:hover { | |||
transition-duration: 0.5s; | |||
transform: rotate(0); | |||
} | } | ||
.hovers-rotate-reverse, | |||
. | .hovers-rotate:hover { | ||
transition-duration: 0.5s; | |||
transform: rotate(360deg); | |||
} | } | ||
/* | /* 正常 => 浅 */ | ||
. | .hovers-fade-deep, | ||
.hovers-fade, | |||
.hovers-fade-shallow { | |||
opacity: 1; | |||
} | |||
.hovers-fade-deep:hover, | |||
.hovers-fade-deep.active { | |||
opacity: 0.35; | |||
} | } | ||
.hovers-fade:hover, | |||
.hovers-fade.active { | |||
. | opacity: 0.5; | ||
} | } | ||
.hovers-fade-shallow:hover, | |||
.hovers-fade-shallow.active { | |||
. | opacity: 0.75; | ||
} | } | ||
/* | /* 浅 => 正常 */ | ||
. | .hovers-bloom-deep { | ||
opacity: 0.35; | |||
} | |||
.hovers-bloom { | |||
opacity: 0.5; | |||
} | |||
.hovers-bloom-shallow { | |||
opacity: 0.75; | |||
} | } | ||
. | .hovers-bloom-deep:hover, | ||
.hovers-bloom-deep.active, | |||
.hovers-bloom:hover, | |||
.hovers-bloom.active, | |||
.hovers-bloom-shallow:hover, | |||
.hovers-bloom-shallow.active { | |||
opacity: 1; | |||
} | } | ||
/* | /* 正常 => 大 */ | ||
. | .hovers-grow-deep, | ||
.hovers-grow, | |||
.hovers-grow-shallow { | |||
transform: scale(1); | |||
} | |||
.hovers-grow-deep:hover, | |||
.hovers-grow-deep.active { | |||
transform: scale(1.5); | |||
} | } | ||
.hovers-grow:hover, | |||
. | .hovers-grow.active { | ||
transform: scale(1.25); | |||
} | } | ||
.hovers-grow-shallow:hover, | |||
. | .hovers-grow-shallow.active { | ||
transform: scale(1.1); | |||
} | } | ||
. | /* 正常 => 小 */ | ||
.hovers-shrink-deep:hover, | |||
.hovers-shrink-deep.active, | |||
.hovers-shrink:hover, | |||
.hovers-shrink.active, | |||
.hovers-shrink-shallow:hover, | |||
.hovers-shrink-shallow.active { | |||
transform: scale(1); | |||
} | |||
.hovers-shrink-deep { | |||
transform: scale(0.5); | |||
} | |||
.hovers-shrink { | |||
transform: scale(0.75); | |||
} | } | ||
.hovers-shrink-shallow { | |||
. | transform: scale(0.9); | ||
} | } | ||
/* 左右抖动 */ | |||
@keyframes shake-flexible { | |||
25% { | |||
transform: translateX(-0.0625em); | |||
} | |||
50% { | |||
transform: translateX(0.0625em); | |||
} | } | ||
75% { | |||
transform: translateX(-0.0625em); | |||
} | } | ||
} | |||
.hovers-shake-flexible:hover, | |||
.hovers-shake-flexible.active { | |||
animation: shake-flexible 0.5s ease-out; | |||
} | |||
@keyframes shake { | |||
25% { | |||
transform: translateX(-8px); | |||
} | } | ||
50% { | |||
transform: translateX(8px); | |||
} | } | ||
75% { | |||
transform: translateX(-8px); | |||
} | } | ||
} | } | ||
. | .hovers-shake:hover, | ||
.hovers-shake.active { | |||
animation: shake 0.5s ease-out; | |||
} | } | ||
/* 上下抖动 */ | |||
@keyframes bounce-flexible { | |||
25% { | |||
transform: translateY(-0.0625em); | |||
} | |||
} | |||
50% { | |||
transform: translateY(0.0625em); | |||
} | |||
} | |||
75% { | |||
transform: translateY(-0.0625em); | |||
} | |||
} | } | ||
.hovers-bounce-flexible:hover, | |||
.hovers-bounce-flexible.active { | |||
animation: bounce-flexible 0.5s ease-out; | |||
} | } | ||
@keyframes bounce { | |||
25% { | |||
transform: translateY(-8px); | |||
} | |||
50% { | |||
transform: translateY(8px); | |||
} | |||
75% { | |||
transform: translateY(-8px); | |||
} | |||
} | } | ||
. | .hovers-bounce:hover, | ||
.hovers-bounce.active { | |||
position: relative; | |||
left: 0; | |||
animation: bounce 0.5s ease-out; | |||
} | } | ||
/* 绕顶端中点抖动 */ | |||
@keyframes swing { | |||
20% { | |||
transform: rotate3d(0, 0, 1, 10deg); | |||
} | |||
} | |||
40% { | |||
transform: rotate3d(0, 0, 1, -10deg); | |||
} | } | ||
60% { | |||
transform: rotate3d(0, 0, 1, 5deg); | |||
} | |||
} | |||
80% { | |||
transform: rotate3d(0, 0, 1, -5deg); | |||
} | |||
} | |||
to { | |||
transform: rotate3d(0, 0, 1, 0deg); | |||
} | |||
} | } | ||
. | .hovers-swing { | ||
transform-origin: top center; | |||
} | } | ||
.hovers-swing:hover, | |||
.hovers-swing.active { | |||
. | animation: swing 0.75s ease-out; | ||
} | } | ||
/* 正常 => 大 */ | |||
@keyframes pulse-grow { | |||
to { | |||
transform: scale(1.1); | |||
} | |||
} | } | ||
. | .hovers-pulse-grow:hover, | ||
.hovers-pulse-grow.active { | |||
animation: pulse-grow 0.5s linear infinite alternate; | |||
} | } | ||
/* 正常 => 小 */ | |||
@keyframes pulse-shrink { | |||
to { | |||
transform: scale(0.9); | |||
} | |||
} | } | ||
. | .hovers-pulse-shrink:hover, | ||
.hovers-pulse-shrink.active { | |||
animation: pulse-shrink 0.5s linear infinite alternate; | |||
} | } | ||
/* 正常 => 小 */ | |||
@keyframes push { | |||
50% { | |||
transform: scale(0.8); | |||
} | |||
} | } | ||
. | .hovers-push:hover, | ||
.hovers-push.active { | |||
animation: push 0.3s linear; | |||
} | } | ||
/* 正常 => 大 */ | |||
@keyframes pop { | |||
50% { | |||
transform: scale(1.2); | |||
} | |||
} | } | ||
.hovers-pop:hover, | |||
. | .hovers-pop.active { | ||
animation: pop 0.3s linear; | |||
} | } | ||
. | /* 正常 => 大 => 正常 => 大 */ | ||
.hovers-bounce-in:hover, | |||
.hovers-bounce-in.active { | |||
transform: scale(1.2); | |||
transition-duration: 0.5s; | |||
transition-timing-function: cubic-bezier(0.47, 2.02, 0.31, -0.36); | |||
} | } | ||
. | /* 正常 => 小 => 正常 => 小 */ | ||
.hovers-bounce-out:hover, | |||
.hovers-bounce-out.active { | |||
transform: scale(0.8); | |||
transition-duration: 0.5s; | |||
transition-timing-function: cubic-bezier(0.47, 2.02, 0.31, -0.36); | |||
} | } | ||
. | /* 倾斜 */ | ||
.hovers-tilt:hover, | |||
.hovers-tilt.active { | |||
transition-duration: 0.3s; | |||
transform: rotate(4deg); | |||
} | } | ||
. | /* 倾斜 + 放大 */ | ||
.hovers-grow-rotate:hover, | |||
.hovers-grow-rotate.active { | |||
transition-duration: 0.3s; | |||
transform: scale(1.1) rotate(4deg); | |||
} | } | ||
. | /* 升起 */ | ||
.hovers-float:hover, | |||
.hovers-float.active { | |||
transition-duration: 0.3s; | |||
transition-timing-function: ease-out; | |||
transform: translateY(-8px); | |||
} | } | ||
. | /* 下沉 */ | ||
.hovers-sink:hover, | |||
.hovers-sink.active { | |||
transition-duration: 0.3s; | |||
transition-timing-function: ease-out; | |||
transform: translateY(8px); | |||
} | } | ||
/* | /* 飘浮 */ | ||
@keyframes bob { | |||
0% { | |||
transform: translateY(-10px); | |||
} | |||
50% { | |||
transform: translateY(-5px); | |||
} | |||
100% { | |||
transform: translateY(-10px); | |||
} | |||
} | } | ||
@keyframes bob-float { | |||
100% { | |||
transform: translateY(-10px); | |||
} | |||
} | } | ||
. | .hovers-bob:hover, | ||
.hovers-bob.active { | |||
animation-name: bob-float, bob; | |||
animation-duration: 0.3s, 1.5s; | |||
animation-delay: 0s, 0.3s; | |||
animation-timing-function: ease-out, ease-in-out; | |||
animation-iteration-count: 1, infinite; | |||
animation-fill-mode: forwards; | |||
animation-direction: normal, alternate; | |||
} | } | ||
/* 悬挂 */ | |||
@keyframes hang { | |||
0% { | |||
transform: translateY(10px); | |||
} | |||
50% { | |||
transform: translateY(5px); | |||
} | |||
100% { | |||
transform: translateY(10px); | |||
} | |||
} | } | ||
@keyframes hang-sink { | |||
100% { | |||
transform: translateY(10px); | |||
} | |||
} | } | ||
. | .hovers-hang:hover, | ||
.hovers-hang.active { | |||
animation-name: hang-sink, hang; | |||
animation-duration: 0.3s, 1.5s; | |||
animation-delay: 0s, 0.3s; | |||
animation-timing-function: ease-out, ease-in-out; | |||
animation-iteration-count: 1, infinite; | |||
animation-fill-mode: forwards; | |||
animation-direction: normal, alternate; | |||
} | } | ||
. | /* 非对称 */ | ||
.hovers-skew:hover, | |||
.hovers-skew.active { | |||
transform: skew(-10deg); | |||
} | } | ||
. | /* 非对称-左 */ | ||
.hovers-skew-forward { | |||
transform-origin: 0 100%; | |||
} | } | ||
.hovers-skew-forward:hover, | |||
. | .hovers-skew-forward.active { | ||
transform: skew(-10deg); | |||
} | } | ||
/* | /* 非对称-右 */ | ||
.hovers-skew-backward { | |||
transform-origin: 0 100%; | |||
} | } | ||
.hovers-skew-backward:hover, | |||
. | .hovers-skew-backward.active { | ||
transform: skew(10deg); | |||
} | } | ||
/* | /* 垂直抖动 */ | ||
@keyframes wobble-vertical { | |||
16.65% { | |||
transform: translateY(8px); | |||
@ | |||
. | |||
} | } | ||
33.3% { | |||
transform: translateY(-6px); | |||
} | } | ||
49.95% { | |||
. | transform: translateY(4px); | ||
} | |||
66.6% { | |||
transform: translateY(-2px); | |||
} | |||
83.25% { | |||
transform: translateY(1px); | |||
} | |||
100% { | |||
transform: translateY(0); | |||
} | } | ||
} | } | ||
. | .hovers-wobble-vertical:hover, | ||
. | .hovers-wobble-vertical.active { | ||
animation-name: wobble-vertical; | |||
animation-duration: 1s; | |||
animation-timing-function: ease-in-out; | |||
animation-iteration-count: 1; | |||
} | } | ||
. | /* 水平抖动 */ | ||
@keyframes wobble-horizontal { | |||
16.65% { | |||
} | transform: translateX(8px); | ||
} | |||
33.3% { | |||
. | transform: translateX(-6px); | ||
} | |||
49.95% { | |||
transform: translateX(4px); | |||
} | |||
66.6% { | |||
transform: translateX(-2px); | |||
} | |||
83.25% { | |||
transform: translateX(1px); | |||
} | |||
100% { | |||
transform: translateX(0); | |||
} | |||
} | } | ||
.hovers-wobble-horizontal:hover, | |||
. | .hovers-wobble-horizontal.active { | ||
. | animation-name: wobble-horizontal; | ||
animation-duration: 1s; | |||
animation-timing-function: ease-in-out; | |||
animation-iteration-count: 1; | |||
} | } | ||
. | /* 右下弹回 */ | ||
@keyframes wobble-to-bottom-right { | |||
16.65% { | |||
transform: translate(8px, 8px); | |||
} | |||
33.3% { | |||
transform: translate(-6px, -6px); | |||
} | |||
49.95% { | |||
transform: translate(4px, 4px); | |||
} | |||
66.6% { | |||
transform: translate(-2px, -2px); | |||
} | |||
83.25% { | |||
transform: translate(1px, 1px); | |||
} | |||
100% { | |||
transform: translate(0, 0); | |||
} | |||
} | } | ||
. | .hovers-wobble-to-bottom-right:hover, | ||
.hovers-wobble-to-bottom-right.active { | |||
animation-name: wobble-to-bottom-right; | |||
animation-duration: 1s; | |||
animation-timing-function: ease-in-out; | |||
animation-iteration-count: 1; | |||
} | } | ||
. | /* 右上弹回 */ | ||
@keyframes wobble-to-top-right { | |||
16.65% { | |||
transform: translate(8px, -8px) | |||
} | |||
33.3% { | |||
transform: translate(-6px, 6px); | |||
} | |||
49.95% { | |||
transform: translate(4px, -4px); | |||
} | |||
66.6% { | |||
transform: translate(-2px, 2px); | |||
} | |||
83.25% { | |||
transform: translate(1px, -1px); | |||
} | |||
100% { | |||
transform: translate(0); | |||
} | |||
} | } | ||
. | .hovers-wobble-to-top-right:hover, | ||
.hovers-wobble-to-top-right.active { | |||
animation-name: wobble-to-top-right; | |||
animation-duration: 1s; | |||
animation-timing-function: ease-in-out; | |||
animation-iteration-count: 1; | |||
} | } | ||
. | /* 果冻 */ | ||
@keyframes wobble-top { | |||
} | 16.65% { | ||
transform: skew(-12deg); | |||
} | |||
. | 33.3% { | ||
transform: skew(10deg); | |||
} | |||
49.95% { | |||
transform: skew(-6deg); | |||
} | |||
66.6% { | |||
transform: skew(4deg); | |||
} | |||
83.25% { | |||
transform: skew(-2deg); | |||
} | |||
100% { | |||
transform: skew(0); | |||
} | |||
} | } | ||
/* | /* 赘肉 */ | ||
. | .hovers-wobble-top { | ||
transform-origin: 0 100%; | |||
} | } | ||
.hovers-wobble-top:hover, | |||
.hovers-wobble-top.active { | |||
. | animation-name: wobble-top; | ||
animation-duration: 1s; | |||
animation-timing-function: ease-in-out; | |||
animation-iteration-count: 1; | |||
} | } | ||
@keyframes wobble-bottom { | |||
. | 16.65% { | ||
transform: skew(-12deg); | |||
} | |||
33.3% { | |||
transform: skew(10deg); | |||
} | |||
49.95% { | |||
transform: skew(-6deg); | |||
} | |||
66.6% { | |||
transform: skew(4deg); | |||
); | } | ||
83.25% { | |||
transform: skew(-2deg); | |||
} | |||
100% { | |||
transform: skew(0); | |||
} | |||
} | } | ||
.hovers-wobble-bottom { | |||
. | transform-origin: 100% 0; | ||
} | |||
.hovers-wobble-bottom:hover, | |||
.hovers-wobble-bottom.active { | |||
animation-name: wobble-bottom; | |||
animation-duration: 1s; | |||
animation-timing-function: ease-in-out; | |||
animation-iteration-count: 1; | |||
} | } | ||
/* | /* 颤动 */ | ||
@keyframes | @keyframes wobble-skew { | ||
16.65% { | |||
transform: skew(-12deg); | |||
} | |||
33.3% { | |||
transform: skew(10deg); | |||
} | |||
49.95% { | |||
transform: skew(-6deg); | |||
} | |||
66.6% { | |||
transform: skew(4deg); | |||
} | |||
83.25% { | |||
transform: skew(-2deg); | |||
} | |||
100% { | |||
transform: skew(0); | |||
} | |||
} | } | ||
.hovers-wobble-skew:hover, | |||
.hovers-wobble-skew.active { | |||
animation-name: wobble-skew; | |||
animation-duration: 1s; | |||
animation-timing-function: ease-in-out; | |||
animation-iteration-count: 1; | |||
} | } | ||
/* | /* 振动 */ | ||
@keyframes | @keyframes buzz { | ||
50% { | |||
transform: translateX(3px) rotate(2deg); | |||
} | |||
100% { | |||
transform: translateX(-3px) rotate(-2deg); | |||
} | |||
} | } | ||
.hovers-buzz:hover, | |||
. | .hovers-buzz.active { | ||
animation-name: buzz; | |||
animation-duration: 0.15s; | |||
animation-timing-function: linear; | |||
animation-iteration-count: infinite; | |||
} | } | ||
/* 振出 */ | |||
@keyframes buzz-out { | |||
10% { | |||
transform: translateX(3px) rotate(2deg); | |||
} | |||
20% { | |||
transform: translateX(-3px) rotate(-2deg); | |||
} | |||
30% { | |||
transform: translateX(3px) rotate(2deg); | |||
} | |||
40% { | |||
transform: translateX(-3px) rotate(-2deg); | |||
} | |||
50% { | |||
transform: translateX(2px) rotate(1deg); | |||
} | |||
60% { | |||
transform: translateX(-2px) rotate(-1deg); | |||
} | |||
70% { | |||
transform: translateX(2px) rotate(1deg); | |||
} | |||
80% { | |||
transform: translateX(-2px) rotate(-1deg); | |||
} | |||
90% { | |||
transform: translateX(1px) rotate(0); | |||
} | |||
100% { | |||
transform: translateX(-1px) rotate(0); | |||
} | |||
} | } | ||
. | .hovers-buzz-out:hover, | ||
.hovers-buzz-out.active { | |||
animation-name: buzz-out; | |||
animation-duration: 0.75s; | |||
animation-timing-function: linear; | |||
animation-iteration-count: 1; | |||
} | } | ||
. | /* 右移 */ | ||
.hovers-forward:hover, | |||
.hovers-forward.active { | |||
transform: translateX(8px); | |||
} | } | ||
. | /* 左移 */ | ||
.hovers-backward:hover, | |||
.hovers-backward.active { | |||
transform: translateX(-8px); | |||
} | } | ||
. | /* 自由移动 */ | ||
.hovers-top, | |||
.hovers-left, | |||
.hovers-bottom, | |||
.hovers-right { | |||
transition: all 0.5s; | |||
} | } | ||
. | .hovers-top:hover, | ||
.hovers-top.active { | |||
transform: translateY(-0.0625em); | |||
} | } | ||
.hovers-left:hover, | |||
.hovers-left.active { | |||
. | transform: translateX(-0.0625em); | ||
} | } | ||
. | .hovers-bottom:hover, | ||
.hovers-bottom.active { | |||
transform: translateY(0.0625em); | |||
} | } | ||
. | .hovers-right:hover, | ||
.hovers-right.active { | |||
transform: translateX(0.0625em); | |||
} | } | ||
/* | /* 滤镜 */ | ||
. | .hovers-blur, | ||
.hovers-blur-reverse, | |||
.hovers-brightness, | |||
.hovers-brightness-reverse, | |||
.hovers-contrast, | |||
.hovers-contrast-reverse, | |||
.hovers-grayscale, | |||
.hovers-grayscale-reverse, | |||
.hovers-invert, | |||
.hovers-invert-reverse, | |||
.hovers-saturate, | |||
.hovers-saturate-reverse, | |||
.hovers-sepia, | |||
.hovers-sepia-reverse, | |||
.hovers-hue-rotate, | |||
.hovers-hue-rotate-reverse { | |||
transition-duration: 0.75s; | |||
} | } | ||
. | .hovers-blur:hover, | ||
.hovers-blur.active, | |||
.hovers-brightness:hover, | |||
.hovers-brightness.active, | |||
.hovers-contrast:hover, | |||
.hovers-contrast.active, | |||
.hovers-grayscale:hover, | |||
.hovers-grayscale.active, | |||
. | .hovers-invert:hover, | ||
.hovers-invert.active, | |||
.hovers-saturate:hover, | |||
.hovers-saturate.active, | |||
.hovers-sepia:hover, | |||
.hovers-sepia.active, | |||
.hovers-hue-rotate:hover, | |||
.hovers-hue-rotate.active { | |||
filter: initial; | |||
} | } | ||
. | .hovers-blur { | ||
filter: blur(5px); | |||
} | } | ||
. | .hovers-blur-reverse:hover, | ||
.hovers-blur-reverse.active { | |||
filter: blur(5px); | |||
} | } | ||
. | .hovers-brightness { | ||
filter: brightness(50%); | |||
} | } | ||
. | .hovers-brightness-reverse:hover, | ||
.hovers-brightness-reverse.active { | |||
filter: brightness(50%); | |||
} | } | ||
. | .hovers-contrast { | ||
filter: contrast(50%); | |||
} | } | ||
.hovers-contrast-reverse:hover, | |||
. | .hovers-contrast-reverse.active { | ||
filter: contrast(50%); | |||
} | } | ||
. | .hovers-grayscale { | ||
filter: grayscale(100%); | |||
} | } | ||
. | .hovers-grayscale-reverse:hover, | ||
.hovers-grayscale-reverse.active { | |||
filter: grayscale(100%); | |||
} | } | ||
. | .hovers-invert { | ||
filter: invert(100%); | |||
} | } | ||
. | .hovers-invert-reverse:hover, | ||
.hovers-invert-reverse.active { | |||
filter: invert(100%); | |||
} | |||
.hovers-saturate { | |||
filter: saturate(200%); | |||
} | } | ||
.hovers-saturate-reverse:hover, | |||
. | .hovers-saturate-reverse.active { | ||
filter: saturate(200%); | |||
} | } | ||
. | .hovers-sepia { | ||
filter: sepia(100%); | |||
} | } | ||
. | .hovers-sepia-reverse:hover, | ||
.hovers-sepia-reverse.acitve { | |||
filter: sepia(100%); | |||
} | } | ||
. | .hovers-hue-rotate { | ||
filter: hue-rotate(180deg); | |||
} | } | ||
. | .hovers-hue-rotate-reverse:hover, | ||
.hovers-hue-rotate-reverse.active { | |||
filter: hue-rotate(180deg); | |||
} | } | ||
. | /* 背景滑动 */ | ||
.hovers-sweep-to-right, | |||
.hovers-sweep-to-left, | |||
.hovers-sweep-to-bottom, | |||
.hovers-sweep-to-top, | |||
.hovers-radial-out, | |||
.hovers-radial-in { | |||
position: relative; | |||
transition-duration: 0.3s; | |||
transition-timing-function: ease-out; | |||
overflow: hidden; | |||
} | } | ||
. | .hovers-sweep-to-right:before, | ||
.hovers-sweep-to-left:before, | |||
.hovers-sweep-to-bottom:before, | |||
.hovers-sweep-to-top:before, | |||
.hovers-radial-out:before, | |||
.hovers-radial-in:before { | |||
content: ''; | |||
} | position: absolute; | ||
z-index: 10; | |||
. | top: 0; | ||
left: 0; | |||
right: 0; | |||
bottom: 0; | |||
background: inherit; | |||
transform: scaleX(0); | |||
transition: inherit; | |||
} | |||
.hovers-sweep-to-bottom:before, | |||
.hovers-sweep-to-top:before { | |||
transform: scaleY(0); | |||
} | } | ||
.hovers-radial-out:before, | |||
. | .hovers-radial-in:before { | ||
border-radius: 50%; | |||
transform: scale(0); | |||
} | } | ||
.hovers-radial-in:before { | |||
. | transform: scale(2); | ||
} | } | ||
. | .hovers-sweep-to-right:before { | ||
transform-origin: 0 50%; | |||
} | } | ||
.hovers-sweep-to-left:before { | |||
transform-origin: 100% 50%; | |||
} | } | ||
.hovers-sweep-to-bottom:before { | |||
transform-origin: 50% 0; | |||
. | |||
} | } | ||
.hovers-sweep-to-top:before { | |||
transform-origin: 50% 100%; | |||
. | |||
} | } | ||
.hovers-radial-out:hover:before, | |||
. | .hovers-radial-out.active:before { | ||
transform: scale(2); | |||
} | } | ||
.hovers-radial-in:hover:before, | |||
.hovers-radial-in.active:before { | |||
. | transform: scale(0); | ||
. | |||
. | |||
} | } | ||
.hovers-sweep-to-right .hovers-content.center, | |||
. | .hovers-sweep-to-left .hovers-content.center, | ||
.hovers-sweep-to-bottom .hovers-content.center, | |||
. | .hovers-sweep-to-top .hovers-content.center, | ||
.hovers-radial-out .hovers-content.center, | |||
.hovers-radial-in .hovers-content.center { | |||
display: flex; | |||
align-items: center; | |||
justify-content: center; | |||
word-break: break-all; | |||
} | } | ||
.hovers-sweep-to-right:hover:before, | |||
.hovers-sweep-to-left:hover:before, | |||
. | .hovers-sweep-to-bottom:hover:before, | ||
. | .hovers-sweep-to-top:hover:before, | ||
.hovers-sweep-to-right.active:before, | |||
.hovers-sweep-to-left:hover:before, | |||
.hovers-sweep-to-bottom:hover:before, | |||
.hovers-sweep-to-top:hover:before { | |||
transform: scaleX(1); | |||
} | } | ||
.hovers-sweep-to-right .hovers-content, | |||
. | .hovers-sweep-to-left .hovers-content, | ||
. | .hovers-sweep-to-bottom .hovers-content, | ||
.hovers-sweep-to-top .hovers-content, | |||
.hovers-radial-out .hovers-content, | |||
.hovers-radial-in .hovers-content { | |||
width: 100%; | |||
height: 100%; | |||
position: absolute; | |||
transition-property: all; | |||
transition-duration: inherit; | |||
top: 0; | |||
left: 0; | |||
z-index: 11; | |||
} | } | ||
.hovers-sweep-to-right .hovers-content { | |||
left: initial; | |||
. | right: 100%; | ||
. | } | ||
.hovers-sweep-to-right:hover .hovers-content, | |||
.hovers-sweep-to-right.active .hovers-content { | |||
right: 0; | |||
} | } | ||
.hovers-sweep-to-left .hovers-content { | |||
left: 100%; | |||
} | |||
. | .hovers-sweep-to-left:hover .hovers-content, | ||
.hovers-sweep-to-left.active .hovers-content { | |||
left: 0; | |||
} | } | ||
.hovers-sweep-to-bottom .hovers-content { | |||
. | top: initial; | ||
bottom: 100%; | |||
. | |||
} | } | ||
.hovers-sweep-to-bottom:hover .hovers-content, | |||
.hovers-sweep-to-bottom.active .hovers-content { | |||
. | bottom: 0; | ||
} | } | ||
.hovers-sweep-to-top .hovers-content { | |||
top: 100%; | |||
} | } | ||
.hovers-sweep-to-top:hover .hovers-content, | |||
. | .hovers-sweep-to-top.active .hovers-content { | ||
top: 0; | |||
} | } | ||
. | .hovers-radial-out .hovers-content, | ||
.hovers-radial-in:hover .hovers-content, | |||
.hovers-radial-in.active .hovers-content { | |||
opacity: 0; | |||
} | } | ||
.hovers-radial-in .hovers-content, | |||
. | .hovers-radial-out:hover .hovers-content, | ||
. | .hovers-radial-out.active .hovers-content { | ||
opacity: 1; | |||
} | } | ||
/* | /* 默认em */ | ||
. | .hovers-border, | ||
. | .hovers-trim, | ||
.hovers-ripple-out, | |||
.hovers-ripple-in, | |||
.hovers-outline-out, | |||
.hovers-outline-in, | |||
.hovers-reveal { | |||
font-size: 160px; | |||
line-height: 16px; | |||
} | } | ||
/* | /* 内边框滑出 */ | ||
. | .hovers-border, | ||
.hovers-trim { | |||
. | position: relative; | ||
top: 0; | |||
left: 0; | |||
transition: all 0.3s; | |||
. | |||
} | } | ||
.hovers-border:before { | |||
content: ''; | |||
width: 100%; | |||
height: 100%; | |||
position: absolute; | |||
top: 0; | |||
left: 0; | |||
box-sizing: border-box; | |||
transition: inherit; | |||
border-width: calc(0.0625em * 0.6); | |||
border-color: inherit; | |||
border-style: solid; | |||
border-radius: inherit; | |||
opacity: 0; | |||
} | } | ||
.hovers-border:hover:before, | |||
. | .hovers-border.active:before { | ||
. | opacity: 1; | ||
} | } | ||
/* | /* 带边距内边框 */ | ||
.hovers-trim:before { | |||
content: ''; | |||
position: absolute; | |||
top: calc(0.0625em * 0.4); | |||
left: calc(0.0625em * 0.4); | |||
bottom: calc(0.0625em * 0.4); | |||
right: calc(0.0625em * 0.4); | |||
transition: inherit; | |||
border-width: calc(0.0625em * 0.6); | |||
border-color: inherit; | |||
border-style: solid; | |||
opacity: 0; | |||
border-radius: inherit; | |||
} | } | ||
.hovers-trim:hover:before, | |||
. | .hovers-trim.active:before { | ||
. | opacity: 1; | ||
. | |||
} | } | ||
/* | /* 边框飞出与飞入 */ | ||
.hovers-ripple-out, | |||
.hovers-ripple-in, | |||
.hovers-outline-out, | |||
.hovers-outline-in, | |||
.hovers-reveal { | |||
animation-duration: 0.7s; | |||
animation-timing-function: ease-out; | |||
transition: all 0.3s; | |||
} | } | ||
.hovers-ripple-out:before, | |||
. | .hovers-ripple-in:before, | ||
. | .hovers-outline-out:before, | ||
.hovers-outline-in:before, | |||
.hovers-reveal:before { | |||
content: ''; | |||
position: absolute; | |||
top: 0; | |||
right: 0; | |||
bottom: 0; | |||
left: 0; | |||
animation: inherit; | |||
transition: inherit; | |||
border-width: calc(0.0625em * 0.6); | |||
border-color: inherit; | |||
border-style: solid; | |||
border-radius: inherit; | |||
} | } | ||
.hovers-ripple-out:before { | |||
opacity: 0; | |||
. | |||
} | } | ||
.hovers-ripple-in:before { | |||
. | top: calc(-0.0625em * 1.2); | ||
right: calc(-0.0625em * 1.2); | |||
} | bottom: calc(-0.0625em * 1.2); | ||
left: calc(-0.0625em * 1.2); | |||
opacity: 0; | |||
. | } | ||
.hovers-outline-out:before { | |||
opacity: 0; | |||
} | |||
.hovers-outline-out:before { | |||
top: calc(-0.0625em * 1.6); | |||
right: calc(-0.0625em * 1.6); | |||
bottom: calc(-0.0625em * 1.6); | |||
left: calc(-0.0625em * 1.6); | |||
opacity: 0; | |||
} | } | ||
.hovers-reveal:before { | |||
. | border-width: 0; | ||
opacity: 0; | |||
} | } | ||
@keyframes ripple-out { | |||
50% { | |||
opacity: 1; | |||
} | |||
} | |||
100% { | |||
top: calc(-0.0625em * 1.2); | |||
right: calc(-0.0625em * 1.2); | |||
bottom: calc(-0.0625em * 1.2); | |||
left: calc(-0.0625em * 1.2); | |||
opacity: 0; | |||
} | |||
opacity: | |||
} | } | ||
.hovers-ripple-out:hover:before, | |||
.hovers-ripple-out.active:before { | |||
. | animation-name: ripple-out; | ||
. | |||
. | |||
} | } | ||
@keyframes ripple-in { | |||
50% { | |||
opacity: 1; | |||
} | |||
100% { | |||
top: 0; | |||
right: 0; | |||
bottom: 0; | |||
left: 0; | |||
opacity: 0; | |||
} | |||
} | } | ||
.hovers-ripple-in:hover:before, | |||
.hovers-ripple-in.active:before { | |||
animation-name: ripple-in; | |||
. | |||
} | } | ||
. | .hovers-outline-out:hover:before, | ||
.hovers-outline-in:hover:before, | |||
.hovers-outline-out.active:before, | |||
. | .hovers-outline-in:hover:before { | ||
top: calc(-0.0625em * 0.8); | |||
right: calc(-0.0625em * 0.8); | |||
bottom: calc(-0.0625em * 0.8); | |||
left: calc(-0.0625em * 0.8); | |||
opacity: 1; | |||
} | |||
.hovers-reveal:hover:before, | |||
.hovers-reveal.active:before { | |||
transform: translateY(0); | |||
border-width: calc(0.0625em * 0.4); | |||
opacity: 1; | |||
} | } | ||
/* 圆角化 */ | |||
.hovers-round-corners { | |||
overflow: hidden; | |||
} | |||
.hovers-round-corners:hover, | |||
.hovers-round-corners.active { | |||
border-radius: 0.0625em; | |||
} | |||
/* 重叠:翻转切换 */ | |||
.hover-turn { | |||
position: relative; | |||
transform: translateZ(1px); | |||
} | |||
.hover-turn-before, | |||
.hover-turn-after { | |||
position: absolute; | |||
top: 0; | |||
left: 0; | |||
} | |||
@keyframes hover-turn { | |||
from { | |||
transform: rotateY(-90deg); | |||
} | |||
50% { | |||
transform: scale(1.2); | |||
} | |||
to { | |||
transform: rotateY(0); | |||
} | |||
} | |||
.hover-turn:not(:hover) .hover-turn-before, | |||
.hover-turn:hover .hover-turn-after { | |||
animation: hover-turn 0.5s; | |||
} | |||
.hover-turn:hover .hover-turn-before, | |||
.hover-turn:not(:hover) .hover-turn-after { | |||
opacity: 0; | |||
} | |||
/* [[Category:在模板名字空间下的CSS页面]] */ | /* [[Category:在模板名字空间下的CSS页面]] */ | ||
/* | |||
.colormu_toggle_on是为了黑幕开关(MediaWiki:Gadget-heimu-toggle.js)做适配。 | |||
.colormu-drk、.colormu-bri分别是暗色背景和亮色背景, | |||
暗色背景的文字通常是浅色,在半隐背景后,颜色需要变成深色。 | |||
*/ | |||
.colormu-drk { | |||
color: #FFF; | |||
} | |||
.colormu-bri { | |||
color: #000; | |||
} | |||
.colormu-drk:not(.colormu_toggle_on) a { | |||
color: #add8e6; | |||
} | |||
.colormu-drk:not(.colormu_toggle_on) a.new { | |||
color: #FCC; | |||
} | |||
.colormu>span, .colormu a, .colormu a>span { | |||
transition: color 0.2s; | |||
} | |||
.colormu:not(:hover):not(:active):not(.colormu_toggle_on)>span, | |||
.colormu:not(:hover):not(:active):not(.colormu_toggle_on) a { | |||
color: transparent; | |||
} | |||
/* for T:Coloredlink in T:彩幕 */ | |||
.colormu:not(:hover):not(:active):not(.colormu_toggle_on) a>span { | |||
color: transparent !important; | |||
} | |||
/* for T:彩幕 in link */ | |||
a .colormu-bri { | |||
color: inherit; | |||
} | |||
a:hover .colormu>span, a:active .colormu>span, | |||
/* and for MediaWiki:Gadget-heimu-toggle.js */ | |||
.colormu-drk.colormu_toggle_on, .colormu_toggle_on>span, .colormu-drk.colormu_toggle_on a>span { | |||
color: inherit !important; | |||
} |
2025年5月9日 (五) 22:36的版本
/* 基础变量和字体设置 */ :root { /* 从Wikidot Database New主题迁移的变量 */ --fade-in-delay: 0.1s; --theme-base: "black-highlighter"; --theme-id: "windows-xp"; --theme-name: "Windows XP"; /* 字体设置 - 使用Database主题的字体和Windows XP字体 */ --body-font: "VonwaonBitmap 16px", VT323, monospace; --header-font: "VonwaonBitmap 16px", VT323, monospace; --title-font: "VonwaonBitmap 16px", VT323, monospace; --mono-font: "VonwaonBitmap 16px", VT323, monospace; --pixel-font-16: 'VonwaonBitmap 16px', VT323, monospace; --pixel-font-12: 'VonwaonBitmap 12px', VT323, monospace; --base-font-size: 14px; /* 从1.2rem改为14px */ --text-shadow: 2px 2px #C9781E; /* 颜色方案 - Windows XP主题颜色 */ --white-monochrome: 255, 255, 255; --pale-gray-monochrome: 240, 240, 240; --light-gray-monochrome: 192, 192, 192; --gray-monochrome: 128, 128, 128; --black-monochrome: 0, 0, 0; /* XP系统蓝色 */ --xp-blue: 53, 165, 225; --xp-darker-blue: 0, 85, 170; /* XP系统绿色 */ --xp-green: 48, 131, 51; --xp-bright-green: 76, 169, 28; /* XP系统橙色 - 保留原主题色 */ --bright-accent: 229, 140, 36; --medium-accent: 180, 110, 28; --dark-accent: 140, 85, 22; --pale-accent: 229, 170, 112; /* 主题颜色 */ --swatch-background: var(--black-monochrome); --swatch-primary: var(--bright-accent); --swatch-primary-darker: var(--medium-accent); --swatch-primary-darkest: var(--black-monochrome); --swatch-text-dark: var(--bright-accent); --swatch-text-light: var(--white-monochrome); --swatch-important-text: var(--bright-accent); --swatch-menubg-color: var(--black-monochrome); --swatch-menubg-light-color: var(--dark-gray-monochrome); --swatch-menubg-medium-color: var(--medium-accent); --swatch-menubg-medium-dark-color: var(--gray-monochrome); --swatch-menubg-dark-color: var(--dark-gray-monochrome); --swatch-menubg-black-color: var(--black-monochrome); --swatch-menubg-hover-color: var(--black-monochrome); --swatch-menutxt-dark-color: var(--white-monochrome); --swatch-menutxt-light-color: var(--white-monochrome); --swatch-border-color: var(--bright-accent); --swatch-headerh1-color: var(--white-monochrome); --swatch-headerh2-color: var(--white-monochrome); --swatch-topmenu-border-color: var(--bright-accent); --swatch-topmenu-bg-color: var(--black-monochrome); /* 链接颜色 */ --link-color: rgb(var(--xp-blue)); --visited-link-color: rgb(var(--xp-darker-blue)); --hover-link-color: rgb(var(--bright-accent)); --sidebar-links-text: var(--swatch-menutxt-dark-color); --link-color-bright: var(--medium-accent); /* 评分模块颜色 */ --rating-module-button-color: var(--bright-accent); --rating-module-text-color: var(--white-monochrome); --rating-module-text-hover-color: var(--swatch-menutxt-light-color); /* XP风格窗口属性 */ --xp-window-border: 1px solid rgb(var(--bright-accent)); --xp-window-header: linear-gradient(to bottom, rgb(0, 132, 198), rgb(0, 102, 170)); --xp-window-shadow: 2px 2px 5px rgba(0, 0, 0, 0.3); /* 其他 */ --gradient-header: var(--xp-window-header); --diagonal-stripes: none; } /* 应用全局字体和背景 */ body { font-family: var(--body-font) !important; font-size: var(--base-font-size) !important; line-height: 1.5 !important; background-color: rgb(var(--black-monochrome)); color: rgb(var(--swatch-text-dark)); background-image: url(""); background-size: cover; background-position: center; background-repeat: no-repeat; background-attachment: fixed !important; } /* 标题字体 */ h1, h2, h3, h4, h5, h6, #firstHeading { font-family: var(--title-font); color: rgb(var(--swatch-headerh1-color)); text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.8); } /* 链接样式 - 保留 > 符号 */ a { color: rgb(var(--xp-blue)); text-decoration: none; } a:visited { color: rgb(var(--xp-darker-blue)); } a:hover { color: rgb(var(--bright-accent)); text-decoration: underline; } a:hover::before { content: "> "; } /* 主内容区背景 */ #content { background-color: rgba(var(--white-monochrome), 0.9); position: relative; border-radius: 8px; border: var(--xp-window-border); box-shadow: var(--xp-window-shadow); margin: 10px; padding: 20px; } /* 修改扫描线动画 - 改为半透明灰色 */ .scan-animation { position: absolute; width: 100%; height: 100%; top: 0; left: 0; pointer-events: none; } /* 主扫描线 - 较宽较慢 - 修改为半透明灰色 */ .scan-animation::before { content: ""; position: absolute; width: 100%; height: 6px; top: 0; background: linear-gradient( to bottom, rgba(128, 128, 128, 0) 0%, rgba(128, 128, 128, 0.1) 20%, rgba(128, 128, 128, 0.2) 50%, rgba(128, 128, 128, 0.1) 80%, rgba(128, 128, 128, 0) 100% ); box-shadow: 0 0 8px rgba(128, 128, 128, 0.15), 0 0 15px rgba(128, 128, 128, 0.1); animation: scanMain 12s linear infinite; opacity: 0.4; } /* 副扫描线 - 中等速度 - 修改为半透明灰色 */ .scan-animation::after { content: ""; position: absolute; width: 100%; height: 3px; top: 0; background: linear-gradient( to bottom, rgba(128, 128, 128, 0) 0%, rgba(128, 128, 128, 0.3) 50%, rgba(128, 128, 128, 0) 100% ); box-shadow: 0 0 6px rgba(128, 128, 128, 0.2); animation: scanSecondary 7s linear infinite; animation-delay: -3s; opacity: 0.25; } /* 快速扫描线 - 细小快速 - 修改为半透明灰色 */ .scan-animation .fast-scan { position: absolute; width: 100%; height: 1px; top: 0; background: rgba(128, 128, 128, 0.6); box-shadow: 0 0 3px rgba(128, 128, 128, 0.3); animation: scanFast 3s linear infinite; animation-delay: -1.5s; opacity: 0.15; } /* 各个扫描线的动画 - 保持不变 */ @keyframes scanMain { 0% { top: -2rem; opacity: 0.6; } 50% { opacity: 0.3; } 100% { top: 100vh; opacity: 0.6; } } @keyframes scanSecondary { 0% { top: -1rem; opacity: 0.4; } 35% { opacity: 0.2; } 70% { opacity: 0.5; } 100% { top: 100vh; opacity: 0.4; } } @keyframes scanFast { 0% { top: -0.3rem; opacity: 0.3; } 50% { opacity: 0.6; } 100% { top: 100vh; opacity: 0.3; } } /* Windows XP风格窗口和控件 */ /* XP风格窗口标题栏通用样式 */ .xp-window { border: 1px solid #0055AA; border-radius: 8px 8px 0 0; box-shadow: 2px 2px 5px rgba(0, 0, 0, 0.3); margin-bottom: 15px; overflow: hidden; position: relative; } /* XP风格窗口标题栏 */ .xp-window-title { background: linear-gradient(to bottom, #0084C6, #0066AA); color: white; padding: 5px 10px; font-weight: bold; height: 25px; display: flex; align-items: center; justify-content: space-between; border-bottom: 1px solid #0044AA; } /* XP风格窗口标题文本 */ .xp-window-title-text { margin: 0; padding: 0; font-family: var(--title-font); font-size: 12px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; flex-grow: 1; } /* XP风格窗口内容 */ .xp-window-content { background-color: #F1F1F1; padding: 10px; color: #000000; font-family: var(--body-font); } /* XP风格窗口控制按钮容器 */ .xp-window-controls { display: flex; gap: 4px; } /* XP风格窗口按钮基础样式 */ .xp-window-button { width: 21px; height: 21px; display: flex; align-items: center; justify-content: center; border-radius: 3px; cursor: pointer; transition: background-color 0.1s; } /* XP风格窗口按钮 - 悬停状态 */ .xp-window-button:hover { background-color: rgba(255, 255, 255, 0.2); } /* XP风格窗口按钮 - 按下状态 */ .xp-window-button:active { background-color: rgba(0, 0, 0, 0.2); } /* XP风格窗口按钮图标 */ .xp-minimize::before, .xp-maximize::before, .xp-close::before { content: ""; display: block; width: 11px; height: 2px; background-color: white; } /* XP风格最小化按钮 */ .xp-minimize::before { transform: translateY(5px); } /* XP风格最大化按钮 */ .xp-maximize::before { width: 9px; height: 9px; border: 1px solid white; background-color: transparent; } /* XP风格关闭按钮 */ .xp-close { margin-left: 2px; } .xp-close::before { content: "×"; font-size: 16px; line-height: 1; font-weight: bold; width: auto; height: auto; background-color: transparent; } .xp-close:hover { background-color: #E81123; } /* 应用XP窗口样式到各种内容容器 */ /* 信息框样式 */ .infobox, .notaninfobox { background-color: #F1F1F1 !important; color: #000000 !important; border: 1px solid #0055AA !important; border-radius: 8px 8px 0 0 !important; box-shadow: 2px 2px 5px rgba(0, 0, 0, 0.3) !important; padding: 0 !important; margin: 1em 0 !important; font-family: var(--body-font) !important; overflow: hidden !important; position: relative !important; } .infobox th, .notaninfobox .infobox-title { background: linear-gradient(to bottom, #0084C6, #0066AA) !important; color: white !important; padding: 5px 10px !important; text-align: left !important; font-weight: bold !important; height: 25px !important; display: flex !important; align-items: center !important; justify-content: space-between !important; border-bottom: 1px solid #0044AA !important; } /* 信息框标题文本 */ .infobox th span, .notaninfobox .infobox-title span { flex-grow: 1 !important; } /* 添加XP窗口控制按钮到信息框 */ .infobox th::after, .notaninfobox .infobox-title::after { content: ""; display: flex; gap: 4px; align-items: center; } /* 信息框内容区域 */ .infobox td, .notaninfobox .infobox-content { background-color: #F1F1F1 !important; padding: 8px !important; color: #000000 !important; } /* 信息框内部行分隔 */ .infobox tr:not(:first-child) td { border-top: 1px solid #D1D1D1 !important; } /* 信息框内链接 */ .infobox a, .notaninfobox a { color: rgb(var(--xp-blue)) !important; } .infobox a:hover, .notaninfobox a:hover { color: rgb(var(--bright-accent)) !important; } /* 信息框的最小化和最大化状态 */ .infobox.minimized td, .notaninfobox.minimized .infobox-content, .infobox.minimized tbody, .notaninfobox.minimized .infobox-rows { display: none !important; } .infobox.maximized, .notaninfobox.maximized { position: fixed !important; top: 10% !important; left: 10% !important; width: 80% !important; height: 80% !important; z-index: 1000 !important; } /* 表格样式 - Windows XP风格 */ table.wiki-content-table { border-collapse: collapse !important; border: 1px solid #003C74 !important; margin: 1em 0 !important; background-color: #FFFFFF !important; box-shadow: 2px 2px 5px rgba(0, 0, 0, 0.3) !important; } table.wiki-content-table th { background: linear-gradient(to bottom, #E3EFFF, #CDE2FE) !important; color: #000000 !important; border: 1px solid #97B9E8 !important; padding: 5px 8px !important; font-weight: bold !important; text-align: left !important; } table.wiki-content-table td { border: 1px solid #D3DCE3 !important; padding: 5px 8px !important; background-color: #FFFFFF !important; } table.wiki-content-table tr:nth-child(even) td { background-color: #F0F6FF !important; } table.wiki-content-table tr:hover td { background-color: #E8F1FF !important; } /* 按钮样式 - Windows XP风格 */ .button, button, input[type="button"], input[type="submit"], input[type="reset"] { background: linear-gradient(to bottom, #F5F5F5, #E5E5E5) !important; border: 1px solid #999999 !important; border-radius: 3px !important; padding: 4px 10px !important; color: #000000 !important; font-family: var(--body-font) !important; font-size: 12px !important; cursor: pointer !important; box-shadow: 1px 1px 2px rgba(0, 0, 0, 0.1) !important; } .button:hover, button:hover, input[type="button"]:hover, input[type="submit"]:hover, input[type="reset"]:hover { background: linear-gradient(to bottom, #FEFEFE, #ECECEC) !important; border-color: #666666 !important; } .button:active, button:active, input[type="button"]:active, input[type="submit"]:active, input[type="reset"]:active { background: #E0E0E0 !important; box-shadow: inset 1px 1px 2px rgba(0, 0, 0, 0.2) !important; } /* 导航框(查论编)样式迁移 - Windows XP风格 */ .navbox { background-color: #F1F1F1 !important; border: 1px solid #0055AA !important; border-radius: 8px 8px 0 0 !important; font-family: var(--body-font) !important; margin: 1em 0 !important; box-shadow: 2px 2px 5px rgba(0, 0, 0, 0.3) !important; overflow: hidden !important; position: relative !important; } .navbox-title, .navbox th { background: linear-gradient(to bottom, #0084C6, #0066AA) !important; color: white !important; padding: 5px 10px !important; text-align: center !important; height: 25px !important; display: flex !important; align-items: center !important; justify-content: space-between !important; border-bottom: 1px solid #0044AA !important; } /* 导航框标题文本 */ .navbox-title span { flex-grow: 1 !important; text-align: center !important; } /* 添加XP窗口控制按钮占位 */ .navbox-title::after { content: ""; display: inline-block; width: 63px; /* 3个按钮的宽度 */ } .navbox-group { background: linear-gradient(to bottom, #E3EFFF, #CDE2FE) !important; color: #000000 !important; font-weight: bold !important; padding: 4px 8px !important; border-right: 1px solid #97B9E8 !important; border-bottom: 1px solid #97B9E8 !important; text-align: right !important; } .navbox-list { background-color: #FFFFFF !important; color: #000000 !important; padding: 4px 8px !important; border-bottom: 1px solid #D3DCE3 !important; } .navbox-even { background-color: #F0F6FF !important; } .navbox a { color: rgb(var(--xp-blue)) !important; text-decoration: none !important; } .navbox a:hover { color: rgb(var(--bright-accent)) !important; text-decoration: underline !important; } .navbox a:hover::before { content: "> " !important; } /* 导航栏样式 - Windows XP风格 */ .navbar, .navbar.navbar-default, .navbar-light { background: linear-gradient(to bottom, #1F69DE, #015EEB) !important; border-bottom: 1px solid #123AA0 !important; padding: 0 !important; box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2) !important; } .navbar .navbar-brand, .navbar .nav-link, .navbar-light .navbar-nav .nav-link { color: white !important; font-family: var(--header-font) !important; padding: 8px 15px !important; position: relative !important; } .navbar .nav-link:hover, .navbar-light .navbar-nav .nav-link:hover { background-color: rgba(255, 255, 255, 0.2) !important; color: white !important; text-decoration: none !important; } /* 下拉菜单 */ .dropdown-menu { background-color: #FFFFFF !important; border: 1px solid #7B9EBD !important; border-radius: 3px !important; box-shadow: 2px 2px 5px rgba(0, 0, 0, 0.3) !important; padding: 2px !important; } .dropdown-item { color: #000000 !important; font-family: var(--body-font) !important; padding: 4px 8px !important; border-radius: 2px !important; } .dropdown-item:hover { background-color: #316AC5 !important; color: white !important; } /* 搜索框样式 - Windows XP风格 */ #searchInput, .form-control { background-color: white !important; border: 1px solid #7B9EBD !important; color: #000000 !important; font-family: var(--body-font) !important; padding: 4px 8px !important; border-radius: 2px !important; } #searchInput:focus, .form-control:focus { border-color: #5690D2 !important; box-shadow: 0 0 4px rgba(86, 144, 210, 0.5) !important; } /* 搜索按钮 */ #searchButton, .searchButton, input[type="submit"], input[type="button"], .mw-ui-button, button[name="go"], button[name="fulltext"], .mw-ui-button.mw-ui-progressive { background: linear-gradient(to bottom, #F5F5F5, #E5E5E5) !important; border: 1px solid #999999 !important; color: #000000 !important; font-family: var(--body-font) !important; padding: 4px 10px !important; cursor: pointer !important; border-radius: 3px !important; box-shadow: 1px 1px 2px rgba(0, 0, 0, 0.1) !important; } #searchButton:hover, .searchButton:hover, input[type="submit"]:hover, input[type="button"]:hover, .mw-ui-button:hover, button[name="go"]:hover, button[name="fulltext"]:hover, .mw-ui-button.mw-ui-progressive:hover { background: linear-gradient(to bottom, #FEFEFE, #ECECEC) !important; border-color: #666666 !important; color: #000000 !important; } #searchButton:active, .searchButton:active, input[type="submit"]:active, input[type="button"]:active, .mw-ui-button:active, button[name="go"]:active, button[name="fulltext"]:active, .mw-ui-button.mw-ui-progressive:active { background: #E0E0E0 !important; box-shadow: inset 1px 1px 2px rgba(0, 0, 0, 0.2) !important; } /* 目录框样式 - Windows XP风格 */ #toc, .toc { background-color: #F1F1F1 !important; border: 1px solid #0055AA !important; border-radius: 8px 8px 0 0 !important; padding: 0 !important; font-family: var(--body-font) !important; box-shadow: 2px 2px 5px rgba(0, 0, 0, 0.3) !important; margin: 1em 0 !important; position: relative !important; overflow: hidden !important; } .toc .toctitle, #toc .toctitle { background: linear-gradient(to bottom, #0084C6, #0066AA) !important; color: white !important; text-align: left !important; padding: 5px 10px !important; margin: 0 !important; font-weight: bold !important; height: 25px !important; display: flex !important; align-items: center !important; justify-content: space-between !important; border-bottom: 1px solid #0044AA !important; } .toc .toctitle h2, #toc .toctitle h2 { color: white !important; font-size: 12px !important; margin: 0 !important; padding: 0 !important; text-shadow: none !important; flex-grow: 1 !important; } /* 添加XP窗口控制按钮占位 */ .toc .toctitle::after, #toc .toctitle::after { content: ""; display: inline-block; width: 63px; /* 3个按钮的宽度 */ } .toc ul, #toc ul { margin: 0 !important; padding: 10px 10px 10px 30px !important; } .toc a, #toc a { color: rgb(var(--xp-blue)) !important; text-decoration: none !important; } .toc a:hover, #toc a:hover { color: rgb(var(--bright-accent)) !important; text-decoration: underline !important; } .tocnumber { color: #666666 !important; } /* 主页样式修改 - Windows XP风格 */ /* 主页横幅样式 */ .main-page-banner { position: relative; display: grid; grid-template-areas: "welcome welcome welcome" "discord faq join"; grid-template-columns: 1fr 1fr 1fr; grid-column-gap: 3%; margin-bottom: 4rem; width: 100%; box-sizing: border-box; border: 1px solid #0055AA; border-radius: 8px 8px 0 0; box-shadow: 2px 2px 5px rgba(0, 0, 0, 0.3); background-color: #F1F1F1; overflow: hidden; } /* 欢迎文本区域 */ .main-page-banner .welcome-text { grid-area: welcome; background: linear-gradient(to bottom, #0084C6, #0066AA); color: white; padding: 1.5rem 2rem; margin: 0; width: 100%; position: relative; overflow: hidden; border-bottom: 1px solid #0044AA; z-index: 2; } /* 背景图片支持 */ .main-page-banner .welcome-text::before { content: ""; position: absolute; top: 0; left: 0; width: 100%; height: 100%; background-size: cover; background-position: center; opacity: 0.15; z-index: 1; } /* 添加水平扫描线 */ .main-page-banner .welcome-text .scan-line { position: absolute; width: 100%; height: 3px; background: linear-gradient( to right, transparent 0%, rgba(255, 255, 255, 0.08) 30%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.08) 70%, transparent 100% ); z-index: 4; animation: horizScanLine 7s linear infinite; opacity: 0.3; pointer-events: none; box-shadow: 0 0 5px rgba(255, 255, 255, 0.1); } /* 欢迎文本 */ .main-page-banner .welcome-text p { position: relative; z-index: 2; margin: 0; font-size: 1.1em; text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.8); } /* 水平扫描线动画 */ @keyframes horizScanLine { 0% { top: -10px; } 100% { top: 100%; } } /* 导航按钮美化 */ .main-page-banner .navigation-links { display: grid; grid-template-columns: 1fr 1fr 1fr; grid-column-gap: 3%; grid-area: discord / discord / join / join; width: 100%; padding: 1rem; background-color: #F1F1F1; } .main-page-banner .nav-button { background: linear-gradient(to bottom, #F5F5F5, #E5E5E5); border: 1px solid #999999; border-radius: 3px; margin: 0; transition: all 0.3s ease; height: min-content; position: relative; overflow: hidden; box-shadow: 1px 1px 2px rgba(0, 0, 0, 0.1); } /* 按钮光效 */ .main-page-banner .nav-button::before { content: ""; position: absolute; top: 0; left: -100%; width: 100%; height: 100%; background: linear-gradient( 90deg, transparent, rgba(255, 255, 255, 0.5), transparent ); transition: left 0.5s; } .main-page-banner .nav-button:hover::before { left: 100%; } .main-page-banner .nav-button:hover { transform: translateY(-5px); box-shadow: 0 5px 15px rgba(0, 0, 0, 0.1); background: linear-gradient(to bottom, #FEFEFE, #ECECEC); border-color: #666666; } .main-page-banner .nav-button a { display: block; padding: 10px 15px; width: 100%; text-align: center; color: #000000; font-size: 1rem; font-weight: bold; text-decoration: none !important; font-family: var(--body-font); position: relative; z-index: 1; } .main-page-banner .nav-button:hover a { color: #000000; } .main-page-banner .nav-button:active { background: #E0E0E0; box-shadow: inset 1px 1px 2px rgba(0, 0, 0, 0.2); } /* 公告容器 */ .announcement-container { background-color: #F1F1F1; border: 1px solid #0055AA; border-radius: 8px 8px 0 0; box-shadow: 2px 2px 5px rgba(0, 0, 0, 0.3); margin-bottom: 2rem; display: flex; flex-wrap: wrap; align-content: space-between; overflow: hidden; position: relative; } .announcement-container .section-title { background: linear-gradient(to bottom, #0084C6, #0066AA); color: white; padding: 5px 10px; font-family: var(--title-font); font-size: 1rem; font-weight: bold; text-align: left; width: 100%; height: 25px; display: flex; align-items: center; justify-content: space-between; border-bottom: 1px solid #0044AA; } /* 标题文本 */ .announcement-container .section-title span { flex-grow: 1; } /* 添加XP窗口控制按钮占位 */ .announcement-container .section-title::after { content: ""; display: inline-block; width: 63px; /* 3个按钮的宽度 */ } .announcement-container .announcement-content { background-color: #FFFFFF; color: #000000; padding: 10px; font-family: var(--body-font); width: 100%; border-bottom: 1px solid #D3DCE3; } .announcement-content span { display: inline-block; white-space: nowrap; animation: marquee 15s linear infinite; } @keyframes marquee { 0% { transform: translate(100%, 0); } 100% { transform: translate(-100%, 0); } } /* 近期页面容器 */ .recent-pages-container { display: flex; flex-wrap: wrap; justify-content: space-between; width: 100%; margin-bottom: 1rem; } .recent-pages-container .page-section { flex-basis: 48%; background-color: #F1F1F1; border: 1px solid #0055AA; border-radius: 8px 8px 0 0; box-shadow: 2px 2px 5px rgba(0, 0, 0, 0.3); margin-bottom: 1rem; overflow: hidden; position: relative; } .recent-pages-container .section-title { background: linear-gradient(to bottom, #0084C6, #0066AA); color: white; padding: 5px 10px; font-family: var(--title-font); font-size: 1rem; font-weight: bold; height: 25px; display: flex; align-items: center; justify-content: space-between; border-bottom: 1px solid #0044AA; } /* 标题文本 */ .recent-pages-container .section-title span { flex-grow: 1; } /* 添加XP窗口控制按钮占位 */ .recent-pages-container .section-title::after { content: ""; display: inline-block; width: 63px; /* 3个按钮的宽度 */ } .recent-pages-container .page-list { background-color: #FFFFFF; padding: 8px; max-height: 15rem; overflow-y: auto; border: 1px solid #D1D1D1; margin: 5px; } .recent-pages-container .page-list a { color: #0055AA; display: block; padding: 4px; border-bottom: 1px solid #EFEFEF; font-family: var(--body-font); transition: all 0.2s ease; } .recent-pages-container .page-list a:hover { color: #CC6600; background-color: #E8F1FF; padding-left: 8px; } .recent-pages-container .see-more { background-color: #F0F0F0; border-top: 1px solid #CCCCCC; padding: 4px 8px; text-align: right; font-size: 0.9em; } .recent-pages-container .see-more a { color: #0055AA; font-family: var(--body-font); } .recent-pages-container .see-more a:hover { color: #CC6600; } /* 特色内容容器 */ .featured-content-container { display: flex; flex-wrap: wrap; justify-content: space-between; width: 100%; } .featured-content-container .feature-item { flex-basis: 48%; background-color: #F1F1F1; border: 1px solid #0055AA; border-radius: 8px 8px 0 0; box-shadow: 2px 2px 5px rgba(0, 0, 0, 0.3); margin-bottom: 1rem; overflow: hidden; position: relative; } .featured-content-container .section-title { background: linear-gradient(to bottom, #0084C6, #0066AA); color: white; padding: 5px 10px; font-family: var(--title-font); font-size: 1rem; font-weight: bold; height: 25px; display: flex; align-items: center; justify-content: space-between; border-bottom: 1px solid #0044AA; } /* 标题文本 */ .featured-content-container .section-title span { flex-grow: 1; } /* 添加XP窗口控制按钮占位 */ .featured-content-container .section-title::after { content: ""; display: inline-block; width: 63px; /* 3个按钮的宽度 */ } .featured-content-container .feature-content { background-color: #FFFFFF; color: #000000; padding: 10px; font-family: var(--body-font); border: 1px solid #D1D1D1; margin: 5px; } .featured-content-container .feature-content .featured-title { color: #0055AA; font-size: 1.1rem; font-weight: bold; margin-bottom: 0.5rem; font-family: var(--title-font); } .featured-content-container .feature-content .featured-author { font-size: 0.9rem; color: #666666; margin-bottom: 0.5rem; } .featured-content-container .feature-content .featured-description { font-style: italic; color: #333333; } .featured-content-container .see-more { background-color: #F0F0F0; border-top: 1px solid #CCCCCC; padding: 4px 8px; text-align: right; font-size: 0.9em; } /* 工具和资源容器 */ .tools-and-resources { margin-bottom: 2rem; } .tools-container { display: grid; grid-template-columns: 1fr 1fr; grid-gap: 1rem; } .tools-container .tool-item { background-color: #F1F1F1; color: #000000; padding: 10px; border: 1px solid #0055AA; border-radius: 8px 8px 0 0; box-shadow: 2px 2px 5px rgba(0, 0, 0, 0.3); font-family: var(--body-font); transition: all 0.3s ease; display: grid; grid-template-areas: "icon content" "title content"; grid-template-columns: max-content 1fr; grid-template-rows: 0.6fr 0.4fr; grid-gap: 0.5rem 1rem; position: relative; overflow: hidden; } .tools-container .tool-item::before { content: ""; position: absolute; top: 0; left: 0; right: 0; height: 25px; background: linear-gradient(to bottom, #0084C6, #0066AA); z-index: 0; } .tools-container .tool-item:hover { transform: translateY(-5px); box-shadow: 0 5px 15px rgba(0, 0, 0, 0.2); } .tools-container .tool-item .tool-icon { grid-area: icon; justify-self: center; align-self: end; position: relative; z-index: 1; width: 32px; height: 32px; margin-top: 30px; } .tools-container .tool-item .tool-title { grid-area: title; text-align: center; position: relative; z-index: 1; } .tools-container .tool-item .tool-title a { color: #0055AA; font-weight: bold; font-family: var(--title-font); } .tools-container .tool-item .tool-title a:hover { color: #CC6600; } .tools-container .tool-item .tool-description { grid-area: content; align-self: center; position: relative; z-index: 1; padding: 5px; background-color: #FFFFFF; border: 1px solid #D1D1D1; border-radius: 3px; margin-top: 30px; } /* 页码样式 */ .mw-page-numbers, .pageNumbers, .pagination { display: flex; justify-content: center; margin: 1rem 0; font-family: var(--body-font); } .mw-page-numbers li, .pageNumbers li, .pagination li { margin: 0 2px; list-style: none; } .mw-page-numbers a, .pageNumbers a, .pagination a { display: inline-block; padding: 5px 10px; background: linear-gradient(to bottom, #F5F5F5, #E5E5E5); border: 1px solid #999999; color: #000000; border-radius: 3px; text-decoration: none; transition: all 0.2s ease; box-shadow: 1px 1px 2px rgba(0, 0, 0, 0.1); } .mw-page-numbers a:hover, .pageNumbers a:hover, .pagination a:hover { background: linear-gradient(to bottom, #FEFEFE, #ECECEC); border-color: #666666; } .mw-page-numbers .current, .pageNumbers .current, .pagination .current { display: inline-block; padding: 5px 10px; background: linear-gradient(to bottom, #D1E5FE, #BBD8FB); border: 1px solid #4A8BF5; color: #000000; border-radius: 3px; font-weight: bold; } /* 侧边栏样式 */ #mw-navigation, #mw-panel, .sidebar { background-color: #F1F1F1 !important; } #mw-navigation h2, #mw-panel h3, .sidebar h3 { background: linear-gradient(to bottom, #0084C6, #0066AA) !important; color: white !important; padding: 5px 10px !important; font-family: var(--header-font) !important; font-size: 1rem !important; font-weight: bold !important; border-bottom: 1px solid #0044AA !important; margin: 0 !important; } /* 引用样式 */ div.blockquote, blockquote { border: 1px solid #7B9EBD; background-color: #ECF4FD; color: #000000; border-radius: 3px; padding: 8px 12px; margin: 1em 1.5em; position: relative; box-shadow: 1px 1px 3px rgba(0, 0, 0, 0.1); } /* 底部工具栏 */ #footer, .footer { background-color: #F1F1F1 !important; border-top: 1px solid #0055AA !important; color: #000000 !important; padding: 1em 0 !important; font-family: var(--body-font) !important; } #footer a, .footer a { color: #0055AA !important; } #footer a:hover, .footer a:hover { color: #CC6600 !important; } /* 轮播图 */ .mw-carousel { position: relative; width: 100%; max-width: 960px; margin: 2em auto; overflow: hidden; border: 1px solid #0055AA; border-radius: 8px 8px 0 0; box-shadow: 2px 2px 5px rgba(0, 0, 0, 0.3); aspect-ratio: 16 / 9; background-color: #F1F1F1; } .mw-carousel::before { content: "照片查看器"; position: absolute; top: 0; left: 0; right: 0; height: 25px; background: linear-gradient(to bottom, #0084C6, #0066AA); color: white; display: flex; align-items: center; padding: 0 10px; font-weight: bold; font-family: var(--title-font); z-index: 5; } .mw-carousel .carousel-image { width: 100%; height: 100%; position: relative; margin-top: 25px; /* 为标题栏留出空间 */ } .mw-carousel .carousel-image img { width: 100%; height: 100%; object-fit: cover; display: block; } .mw-carousel .carousel-caption { position: absolute; bottom: 0; left: 0; width: 100%; background: rgba(0, 0, 0, 0.7); color: white; padding: 10px; text-align: left; z-index: 2; } .mw-carousel .carousel-navigation { position: absolute; top: 50%; left: 0; width: 100%; display: flex; justify-content: space-between; transform: translateY(-50%); z-index: 3; padding: 0 10px; } .mw-carousel .carousel-prev, .mw-carousel .carousel-next { background: linear-gradient(to bottom, #F5F5F5, #E5E5E5); border: 1px solid #999999; border-radius: 50%; width: 32px; height: 32px; cursor: pointer; display: flex; justify-content: center; align-items: center; transition: all 0.3s; box-shadow: 1px 1px 2px rgba(0, 0, 0, 0.1); color: #000000; } .mw-carousel .carousel-prev:hover, .mw-carousel .carousel-next:hover { background: linear-gradient(to bottom, #FEFEFE, #ECECEC); border-color: #666666; } .mw-carousel .carousel-indicators { position: absolute; bottom: 40px; left: 50%; transform: translateX(-50%); display: flex; gap: 5px; z-index: 4; } .mw-carousel .carousel-indicators .indicator { width: 10px; height: 10px; background-color: #CCCCCC; border: 1px solid #999999; border-radius: 50%; cursor: pointer; transition: all 0.3s; } .mw-carousel .carousel-indicators .indicator.active { background-color: #0084C6; border-color: #0055AA; } /* 黑幕效果改为橙色半透明(符合XP主题) */ .heimu, .heimu rt, .blackmu, .blackmu rt { --blackmu-color: 229, 140, 36; --blackmu-text-color: 0, 0, 0; --blackmu-link-color: 0, 85, 170; --blackmu-visited-link-color: 0, 64, 128; --blackmu-new-link-color: 204, 102, 0; --blackmu-new-visited-link-color: 153, 76, 0; background-color: rgba(var(--blackmu-color), 0.8); } .heimu, .heimu a, a .heimu, a.new .heimu, span.heimu a:visited, span.heimu a.new, span.heimu a.external, span.heimu a.external:visited, span.heimu a.extiw, span.heimu a.extiw:visited, span.heimu a.mw-disambig, span.heimu a.mw-redirect, .blackmu, .blackmu a, a .blackmu, a.new .blackmu, span.blackmu a:visited, span.blackmu a.new, span.blackmu a.external, span.blackmu a.external:visited, span.blackmu a.extiw, span.blackmu a.extiw:visited, span.blackmu a.mw-disambig, span.blackmu a.mw-redirect { transition: color 0.13s linear; color: rgba(var(--blackmu-color), 0.8); text-shadow: none; } span.heimu:hover, span.heimu:active, span.blackmu:hover, span.blackmu:active { color: rgb(var(--blackmu-text-color)); } span.heimu:hover a, a:hover span.heimu, span.blackmu:hover a, a:hover span.blackmu { color: rgb(var(--blackmu-link-color)); } /* 颜色幕 */ .colormu-drk { color: #FFFFFF; } .colormu-bri { color: #000000; } .colormu-drk:not(.colormu_toggle_on) a { color: #add8e6; } .colormu-drk:not(.colormu_toggle_on) a.new { color: #FCC; } .colormu>span, .colormu a, .colormu a>span { transition: color 0.2s; } .colormu:not(:hover):not(:active):not(.colormu_toggle_on)>span, .colormu:not(:hover):not(:active):not(.colormu_toggle_on) a { color: transparent; } .colormu:not(:hover):not(:active):not(.colormu_toggle_on) a>span { color: transparent !important; } a .colormu-bri { color: inherit; } a:hover .colormu>span, a:active .colormu>span, .colormu-drk.colormu_toggle_on, .colormu_toggle_on>span, .colormu-drk.colormu_toggle_on a>span { color: inherit !important; } /* Windows XP样式的提示框(替代hovertip) */ .hovertip { background-color: #FFFFCC !important; border: 1px solid #999999 !important; border-radius: 3px !important; box-shadow: 2px 2px 5px rgba(0, 0, 0, 0.3) !important; padding: 6px !important; color: #000000 !important; font-family: var(--body-font) !important; font-size: 0.9rem !important; max-width: 300px !important; } /* Windows XP风格的选项卡 */ .yui-navset .yui-nav, .yui-navset .yui-navset-top .yui-nav { border-color: #7B9EBD !important; border-width: 0 0 1px 0 !important; zoom: 1 !important; position: relative !important; } .yui-navset .yui-nav li, .yui-navset .yui-navset-top .yui-nav li { margin: 0 0.16em 0 0 !important; padding: 1px 0 0 !important; list-style: none !important; display: inline-block !important; } .yui-navset .yui-nav a, .yui-navset .yui-nav a:focus, .yui-navset .yui-nav a:hover, .yui-navset .yui-navset-top .yui-nav a, .yui-navset .yui-navset-top .yui-nav a:focus, .yui-navset .yui-navset-top .yui-nav a:hover { background: linear-gradient(to bottom, #F5F5F5, #E5E5E5) !important; border: 1px solid #7B9EBD !important; color: #000000 !important; cursor: pointer !important; text-decoration: none !important; padding: 0.25em 0.5em !important; border-radius: 2px 2px 0 0 !important; } .yui-navset .yui-nav .selected a, .yui-navset .yui-nav .selected a:focus, .yui-navset .yui-nav .selected a:hover { background: linear-gradient(to bottom, #E3EFFF, #CDE2FE) !important; color: #000000 !important; border-color: #4A8BF5 !important; } .yui-navset .yui-content { background: #FFFFFF !important; border: 1px solid #7B9EBD !important; border-top: none !important; padding: 10px !important; } /* Windows XP风格的代码块 */ pre, code, .mw-code { background-color: #FFFFFF !important; border: 1px solid #7B9EBD !important; color: #000000 !important; font-family: var(--mono-font) !important; padding: 5px !important; border-radius: 3px !important; } /* Windows XP风格的分隔线 */ hr { margin: 1em 2em; padding: 0; height: 0; border: none; border-top: 1px solid #7B9EBD; } /* Windows XP风格块 - 原database主题块 */ .lightstyled-quote { background-color: #ECF4FD; color: #000000; border-left: 3px solid #0055AA; padding: 0.1rem 1rem; margin: 0.5rem 0 0.5rem 0.25rem; box-shadow: 2px 2px 5px rgba(0, 0, 0, 0.1); } .darkstyled-quote { background-color: #D6E9FF; border-left: 3px solid #0055AA; color: #000000; padding: 0.1rem 1rem; margin: 0.5rem 0 0.5rem 0.25rem; box-shadow: 2px 2px 5px rgba(0, 0, 0, 0.1); } .lightblock { background-color: #ECF4FD; color: #000000; padding: 0.01rem 1rem; margin: 0.5rem 0 0.5rem 0.25rem; box-shadow: 2px 2px 5px rgba(0, 0, 0, 0.1); border: 1px solid #7B9EBD; border-radius: 3px; } .darkblock { background-color: #D6E9FF; color: #000000; padding: 0.01rem 1rem; margin: 0.5rem 0 0.5rem 0.25rem; box-shadow: 2px 2px 5px rgba(0, 0, 0, 0.1); border: 1px solid #7B9EBD; border-radius: 3px; } /* Windows XP风格的错误屏幕块 */ .bluescreen { background-color: #0000AA; color: #FFFFFF; padding: 1.5rem; margin: 0.5rem 0 0.5rem 0.25rem; box-shadow: 2px 2px 5px rgba(0, 0, 0, 0.3); font-family: "Courier New", monospace; border: 2px solid #FFFFFF; position: relative; } .bluescreen::before { content: "Windows"; position: absolute; top: 0.5rem; left: 1rem; font-weight: bold; } /* Windows XP Logo块 */ .logoblock { padding: 0.5rem 1rem; color: #000000; box-shadow: 2px 2px 5px rgba(0, 0, 0, 0.3); margin: 0.5rem 0 0.5rem 0.25rem; display: block; position: relative; background-color: #FFFFFF; border: 1px solid #7B9EBD; border-radius: 3px; min-height: 80px; } .logoblock::after { content: ""; float: center; border: solid 2px transparent; background: url() center/70% no-repeat; opacity: 0.7; top: 0; left: 0; bottom: 0; right: 0; position: absolute; z-index: 1; } /* Windows XP风格的标题块 */ .titlebox { color: #FFFFFF; position: relative; top: -1.6rem; background: linear-gradient(to bottom, #0084C6, #0066AA); padding: 0.5rem 2rem; line-height: 0.1rem; border-radius: 3px 3px 0 0; border: 1px solid #0055AA; border-bottom: none; } /* Windows XP风格警告消息 */ .mw-warning, .warning { background-color: #FFEFD5; color: #000000; padding: 0.7rem 1rem; margin: 1rem 0; border: 1px solid #FF8C00; border-radius: 3px; box-shadow: 2px 2px 5px rgba(0, 0, 0, 0.1); } .mw-warning:before, .warning:before { content: "⚠️ "; font-size: 1.2rem; vertical-align: middle; margin-right: 0.5rem; } /* Windows XP风格的提示消息 */ .mw-info, .info { background-color: #E6F3FF; color: #000000; padding: 0.7rem 1rem; margin: 1rem 0; border: 1px solid #4A8BF5; border-radius: 3px; box-shadow: 2px 2px 5px rgba(0, 0, 0, 0.1); } .mw-info:before, .info:before { content: "ℹ️ "; font-size: 1.2rem; vertical-align: middle; margin-right: 0.5rem; } /* 窗口最小化和最大化状态的样式 */ .minimized .page-list, .minimized .feature-content, .minimized .tool-description, .minimized .announcement-content, .minimized .mw-parser-output, .minimized .toc { display: none !important; } .maximized { position: fixed !important; top: 5% !important; left: 5% !important; width: 90% !important; height: 90% !important; z-index: 9999 !important; } .maximized .page-list, .maximized .feature-content, .maximized .tool-description, .maximized .announcement-content, .maximized .mw-parser-output { max-height: calc(90vh - 40px) !important; overflow-y: auto !important; } /* Windows XP风格的图片浏览器 */ .scp-image-block { box-shadow: 2px 2px 5px rgba(0, 0, 0, 0.3); border-radius: 3px; border: 1px solid #7B9EBD; margin: 0 2em 1em; background-color: #FFFFFF; } .scp-image-block.block-right { float: right; margin: 0 0 1em 2em; } .scp-image-block .scp-image-caption { background: linear-gradient(to bottom, #E3EFFF, #CDE2FE); color: #000000; padding: 5px; text-align: center; border-top: 1px solid #7B9EBD; } .scp-image-block img { padding: 5px; display: block; margin: 0 auto; } /* 响应式布局调整 */ @media (max-width: 767px) { .main-page-banner { grid-template-areas: "welcome" "navigation"; grid-template-columns: 1fr; } .main-page-banner .welcome-text { width: 100%; margin-bottom: 0; box-sizing: border-box; } .main-page-banner .navigation-links { grid-area: navigation; display: flex; width: 100%; overflow: visible; } .recent-pages-container .page-section, .featured-content-container .feature-item { flex-basis: 100%; } .tools-container { grid-template-columns: 1fr; } .xp-window-controls { display: none !important; } } /* 打印样式(续) */ @media print { body { background: #FFFFFF !important; color: #000000 !important; } #content { background: #FFFFFF !important; border: none !important; box-shadow: none !important; } .scan-animation, .xp-window-controls, .main-page-banner .navigation-links, .mw-carousel .carousel-navigation, .mw-carousel .carousel-indicators { display: none !important; } a { color: #000000 !important; text-decoration: underline !important; } a::before { content: none !important; } .infobox, .notaninfobox, .navbox, #toc, .toc, .announcement-container, .recent-pages-container .page-section, .featured-content-container .feature-item, .tools-container .tool-item { border: 1px solid #000000 !important; box-shadow: none !important; } .infobox th, .notaninfobox .infobox-title, .navbox-title, .toc .toctitle, #toc .toctitle, .announcement-container .section-title, .recent-pages-container .section-title, .featured-content-container .section-title, .tools-container .tool-item::before { background: #CCCCCC !important; color: #000000 !important; } } /* 滚动条样式 - Windows XP经典风格 */ ::-webkit-scrollbar { width: 16px; height: 16px; } ::-webkit-scrollbar-track { background-color: #F1F1F1; border-left: 1px solid #DFDFDF; } ::-webkit-scrollbar-thumb { background: #C2D2E3; border: 1px solid #7B9EBD; border-radius: 3px; } ::-webkit-scrollbar-thumb:hover { background: #9CB6D3; } ::-webkit-scrollbar-button { background-color: #F1F1F1; border: 1px solid #7B9EBD; height: 16px; width: 16px; } ::-webkit-scrollbar-button:vertical:increment { background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8"><path fill="%237B9EBD" d="M4 0l-4 4h8z" transform="translate(0 2)"/></svg>'); background-repeat: no-repeat; background-position: center; } ::-webkit-scrollbar-button:vertical:decrement { background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8"><path fill="%237B9EBD" d="M0 0l4 4 4-4h-8z" transform="translate(0 2)"/></svg>'); background-repeat: no-repeat; background-position: center; } ::-webkit-scrollbar-button:horizontal:increment { background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8"><path fill="%237B9EBD" d="M0 0l4 4-4 4v-8z" transform="translate(2 0)"/></svg>'); background-repeat: no-repeat; background-position: center; } ::-webkit-scrollbar-button:horizontal:decrement { background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8"><path fill="%237B9EBD" d="M4 0l-4 4 4 4v-8z" transform="translate(2 0)"/></svg>'); background-repeat: no-repeat; background-position: center; } /* 表单元素样式 - Windows XP风格 */ input[type="text"], input[type="password"], input[type="email"], input[type="url"], input[type="search"], textarea, select { background-color: #FFFFFF; border: 1px solid #7B9EBD; color: #000000; font-family: var(--body-font); padding: 4px 8px; border-radius: 2px; transition: border-color 0.2s, box-shadow 0.2s; } input[type="text"]:focus, input[type="password"]:focus, input[type="email"]:focus, input[type="url"]:focus, input[type="search"]:focus, textarea:focus, select:focus { border-color: #5690D2; box-shadow: 0 0 4px rgba(86, 144, 210, 0.5); outline: none; } select { padding: 3px 4px; background: linear-gradient(to bottom, #FEFEFE, #E5E5E5); border: 1px solid #7B9EBD; } input[type="checkbox"], input[type="radio"] { accent-color: #316AC5; } /* 按钮悬停时为Win XP鼠标悬停样式 */ button:hover, .button:hover, input[type="button"]:hover, input[type="submit"]:hover, input[type="reset"]:hover { background-color: #316AC5 !important; color: #FFFFFF !important; border-color: #215091 !important; background-image: none !important; } /* Windows XP风格窗口的工具栏 */ .xp-window-toolbar { background: linear-gradient(to bottom, #F5F5F5, #E5E5E5); border-bottom: 1px solid #CCCCCC; padding: 2px 5px; display: flex; align-items: center; } .xp-window-toolbar button { background: transparent; border: 1px solid transparent; border-radius: 2px; padding: 2px 5px; margin: 0 2px; cursor: pointer; } .xp-window-toolbar button:hover { background-color: #E0E0E0; border-color: #999999; } .xp-window-toolbar button:active { background-color: #D0D0D0; border-color: #999999; border-style: inset; } /* Windows XP风格的状态栏 */ .xp-window-statusbar { background-color: #F1F1F1; border-top: 1px solid #CCCCCC; padding: 2px 8px; font-size: 0.9em; color: #666666; display: flex; justify-content: space-between; } /* 菜单项 */ .xp-window-menu { background-color: #F1F1F1; border-bottom: 1px solid #CCCCCC; display: flex; padding: 0 5px; } .xp-window-menu-item { padding: 3px 10px; cursor: pointer; color: #000000; border: 1px solid transparent; border-radius: 2px; margin-right: 1px; } .xp-window-menu-item:hover { background-color: #E0E0E0; border-color: #999999; } .xp-window-menu-item.active { background-color: #D0D0D0; border-color: #999999; } /* 页码样式增强 - 确保更符合XP风格 */ .mw-pagination { display: flex; align-items: center; justify-content: center; margin: 1.5em 0; padding: 0; list-style: none; } .mw-pagination li { margin: 0 2px; } .mw-pagination a, .mw-pagination span { display: inline-block; min-width: 30px; height: 30px; line-height: 30px; border: 1px solid #7B9EBD; background: linear-gradient(to bottom, #F5F5F5, #E5E5E5); color: #000000; border-radius: 3px; text-align: center; text-decoration: none; box-shadow: 1px 1px 2px rgba(0, 0, 0, 0.1); } .mw-pagination a:hover { background: linear-gradient(to bottom, #FEFEFE, #ECECEC); border-color: #666666; } .mw-pagination .active span { background: linear-gradient(to bottom, #D1E5FE, #BBD8FB); border-color: #4A8BF5; color: #000000; font-weight: bold; } .mw-pagination .disabled span { color: #AAAAAA; background: #F8F8F8; border-color: #DDDDDD; cursor: not-allowed; } /* 进度条样式 - Windows XP风格 */ progress { -webkit-appearance: none; -moz-appearance: none; appearance: none; height: 20px; width: 100%; border: 1px solid #7B9EBD; border-radius: 2px; background-color: #FFFFFF; } progress::-webkit-progress-bar { background-color: #FFFFFF; border-radius: 1px; } progress::-webkit-progress-value { background: linear-gradient(to bottom, #0084C6, #0066AA); border-radius: 1px; } progress::-moz-progress-bar { background: linear-gradient(to bottom, #0084C6, #0066AA); border-radius: 1px; } /* XP风格的开始菜单(可用于站点导航等) */ .xp-start-menu { position: fixed; bottom: 30px; left: 0; width: 320px; background-color: #F1F1F1; border: 1px solid #0055AA; border-radius: 0 8px 8px 0; box-shadow: 2px 2px 5px rgba(0, 0, 0, 0.3); z-index: 10000; display: none; } .xp-start-menu.visible { display: block; } .xp-start-menu-header { background: linear-gradient(to right, #0084C6, #0066AA); height: 60px; padding: 10px; color: white; display: flex; align-items: center; border-radius: 0 8px 0 0; } .xp-start-menu-header img { width: 40px; height: 40px; margin-right: 10px; } .xp-start-menu-header .user-name { font-weight: bold; font-size: 1.2em; } .xp-start-menu-body { display: flex; } .xp-start-menu-left { width: 200px; padding: 8px; background-color: white; border-right: 1px solid #CCCCCC; } .xp-start-menu-right { width: 120px; padding: 8px; background-color: #F1F1F1; } .xp-start-menu-item { padding: 8px; margin: 2px 0; display: flex; align-items: center; cursor: pointer; border-radius: 2px; } .xp-start-menu-item:hover { background-color: #316AC5; color: white; } .xp-start-menu-item img { width: 24px; height: 24px; margin-right: 8px; } .xp-start-menu-footer { height: 30px; background: linear-gradient(to right, #0084C6, #0066AA); display: flex; align-items: center; justify-content: flex-end; padding: 0 10px; } .xp-start-button { background: linear-gradient(to bottom, #63B34C, #4E9C3D); color: white; border: 1px solid #4E9C3D; border-radius: 3px; padding: 2px 8px; font-weight: bold; cursor: pointer; } .xp-start-button:hover { background: linear-gradient(to bottom, #74C25D, #5FAD4E); } /* 任务栏 */ .xp-taskbar { position: fixed; bottom: 0; left: 0; width: 100%; height: 30px; background: linear-gradient(to top, #0084C6, #0066AA); display: flex; align-items: center; padding: 0 2px; z-index: 9999; box-shadow: 0 -2px 5px rgba(0, 0, 0, 0.2); } .xp-start-button-container { display: flex; align-items: center; margin-right: 5px; } .xp-taskbar-items { display: flex; flex-grow: 1; height: 100%; align-items: center; overflow-x: auto; } .xp-taskbar-item { background: linear-gradient(to bottom, #F5F5F5, #E5E5E5); border: 1px solid #999999; height: 22px; padding: 0 8px; margin: 0 2px; border-radius: 2px; display: flex; align-items: center; min-width: 100px; max-width: 200px; cursor: pointer; box-shadow: 1px 1px 2px rgba(0, 0, 0, 0.1); } .xp-taskbar-item:hover { background: linear-gradient(to bottom, #FEFEFE, #ECECEC); } .xp-taskbar-item.active { background: linear-gradient(to bottom, #D1E5FE, #BBD8FB); border-color: #4A8BF5; } .xp-taskbar-item img { width: 16px; height: 16px; margin-right: 5px; } .xp-taskbar-item span { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } .xp-system-tray { display: flex; align-items: center; height: 100%; padding: 0 5px; border-left: 1px solid rgba(255, 255, 255, 0.2); } .xp-system-tray-item { width: 16px; height: 16px; margin: 0 3px; cursor: pointer; } /* XP风格的系统图标 */ .xp-icon { display: inline-block; width: 32px; height: 32px; margin: 0 5px; cursor: pointer; position: relative; text-align: center; } .xp-icon img { width: 32px; height: 32px; display: block; margin: 0 auto; } .xp-icon span { display: block; font-size: 0.8em; margin-top: 2px; color: #000000; background-color: rgba(255, 255, 255, 0.7); border-radius: 2px; padding: 0 2px; width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .xp-icon:hover span { background-color: #316AC5; color: white; } .xp-shortcut::before { content: ""; position: absolute; bottom: 0; left: 0; width: 8px; height: 8px; background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8"><path fill="%23000000" d="M0 0v6l6-3z" transform="translate(1 1)"/></svg>'); background-repeat: no-repeat; } /* 通用辅助类 */ .xp-shadow { box-shadow: 2px 2px 5px rgba(0, 0, 0, 0.3); } .xp-border { border: 1px solid #7B9EBD; border-radius: 3px; } .xp-header-gradient { background: linear-gradient(to bottom, #0084C6, #0066AA); color: white; } .xp-button-gradient { background: linear-gradient(to bottom, #F5F5F5, #E5E5E5); } .xp-panel-gradient { background: linear-gradient(to bottom, #E3EFFF, #CDE2FE); } /* 确保风格一致性 */ * { box-sizing: border-box; } /* 淡入动画修改 - 使用XP风格的淡入效果 */ @keyframes fadeIn { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: translateY(0); } } .mw-parser-output > * { animation: fadeIn 0.3s ease-out forwards; opacity: 0; } /* 延迟动画 */ .mw-parser-output > *:nth-child(1) { animation-delay: 0.05s; } .mw-parser-output > *:nth-child(2) { animation-delay: 0.1s; } .mw-parser-output > *:nth-child(3) { animation-delay: 0.15s; } .mw-parser-output > *:nth-child(4) { animation-delay: 0.2s; } .mw-parser-output > *:nth-child(5) { animation-delay: 0.25s; } .mw-parser-output > *:nth-child(n+6) { animation-delay: 0.3s; } /* Windows XP启动动画 - 仅在页面加载时出现 */ .xp-startup-screen { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background-color: #000000; z-index: 10001; display: flex; flex-direction: column; justify-content: center; align-items: center; color: white; animation: fadeOut 3s forwards; animation-delay: 2s; } .xp-startup-logo { width: 200px; height: 200px; margin-bottom: 30px; background: url() center/contain no-repeat; } .xp-startup-progress { width: 300px; height: 20px; background-color: #333333; border: 1px solid #555555; position: relative; overflow: hidden; } .xp-startup-progress::after { content: ""; position: absolute; top: 0; left: -100%; width: 100%; height: 100%; background: linear-gradient(to right, transparent 0%, #0084C6 30%, #0084C6 70%, transparent 100% ); animation: progressMove 1.5s linear infinite; } @keyframes progressMove { 0% { left: -100%; } 100% { left: 100%; } } @keyframes fadeOut { 0% { opacity: 1; visibility: visible; } 99% { opacity: 0; visibility: visible; } 100% { opacity: 0; visibility: hidden; } } /* 页面错误消息 - 模拟XP错误弹窗 */ .xp-error-dialog { position: fixed; top: 50%; left: 50%; transform: translate(-50%, -50%); width: 300px; background-color: #F1F1F1; border: 1px solid #0055AA; border-radius: 8px 8px 0 0; box-shadow: 2px 2px 15px rgba(0, 0, 0, 0.5); z-index: 10000; } .xp-error-dialog-title { background: linear-gradient(to bottom, #0084C6, #0066AA); color: white; padding: 5px 10px; font-family: var(--title-font); font-size: 1rem; font-weight: bold; height: 25px; display: flex; align-items: center; justify-content: space-between; border-bottom: 1px solid #0044AA; } .xp-error-dialog-title span { flex-grow: 1; } .xp-error-dialog-content { padding: 15px; display: flex; align-items: flex-start; } .xp-error-dialog-icon { width: 32px; height: 32px; margin-right: 10px; background: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32"><circle cx="16" cy="16" r="16" fill="%23FF0000"/><text x="16" y="24" text-anchor="middle" font-family="Arial" font-weight="bold" font-size="24" fill="%23FFFFFF">!</text></svg>') no-repeat; } .xp-error-dialog-message { flex-grow: 1; color: #000000; } .xp-error-dialog-buttons { display: flex; justify-content: flex-end; padding: 10px 15px 15px; } .xp-error-dialog-ok { background: linear-gradient(to bottom, #F5F5F5, #E5E5E5); border: 1px solid #999999; border-radius: 3px; padding: 4px 15px; cursor: pointer; transition: all 0.2s; box-shadow: 1px 1px 2px rgba(0, 0, 0, 0.1); } .xp-error-dialog-ok:hover { background: linear-gradient(to bottom, #FEFEFE, #ECECEC); border-color: #666666; } .xp-error-dialog-ok:active { background: #E0E0E0; box-shadow: inset 1px 1px 2px rgba(0, 0, 0, 0.2); } /* 搜索框右侧按钮 - 更具体的选择器 */ #searchButton, #mw-searchButton, .searchButton, button[name="go"], button[name="fulltext"], .mw-ui-button.mw-ui-progressive { background-color: rgb(var(--gray-monochrome)) !important; border: 1px solid rgb(var(--bright-accent)) !important; color: rgb(var(--bright-accent)) !important; font-family: var(--body-font) !important; padding: 0.3em 0.6em !important; cursor: pointer !important; transition: all 0.2s ease !important; } #searchButton:hover, #mw-searchButton:hover, .searchButton:hover, button[name="go"]:hover, button[name="fulltext"]:hover, .mw-ui-button.mw-ui-progressive:hover { background-color: rgb(var(--bright-accent)) !important; color: rgb(var(--black-monochrome)) !important; box-shadow: 0 0 10px rgba(var(--bright-accent), 0.3) !important; } /* 变色龙皮肤特定搜索按钮 */ .chameleon-search-form .btn { background-color: rgb(var(--gray-monochrome)) !important; border: 1px solid rgb(var(--bright-accent)) !important; color: rgb(var(--bright-accent)) !important; font-family: var(--body-font) !important; } .chameleon-search-form .btn:hover { background-color: rgb(var(--bright-accent)) !important; color: rgb(var(--black-monochrome)) !important; } /* 底部工具栏完整样式 */ #footer, .footer, #footer-places, #footer-info, #footer-info-lastmod, #footer-info-viewcount, #footer-places-privacy, #footer-places-about, #footer-places-disclaimer, #footer-icons, .footer-info, .footer-places, .footer-icons, .printfooter, .mw-footer, .mw-footer li { background-color: rgb(var(--black-monochrome)) !important; color: rgb(var(--bright-accent)) !important; font-family: var(--body-font) !important; border: none !important; } /* 页脚主容器 */ .mw-footer, #footer, .footer { background-color: rgb(var(--black-monochrome)) !important; border-top: 2px solid rgb(var(--bright-accent)) !important; margin-top: 1em !important; padding: 1em 0 !important; } /* 页脚链接 */ #footer a, .footer a, .mw-footer a { color: rgb(var(--bright-accent)) !important; text-decoration: none !important; } #footer a:hover, .footer a:hover, .mw-footer a:hover { color: rgb(var(--white-monochrome)) !important; text-decoration: underline !important; } /* 页脚列表项 */ #footer li, .footer li, .mw-footer li { color: rgb(var(--bright-accent)) !important; margin: 0.5em 0 !important; } /* 底部工具栏按钮区域 */ #footer-poweredbyico, #footer-copyrightico, .footer-icons { background-color: transparent !important; } /* 变色龙皮肤特定的页脚 */ .p-tb, #p-tb, .tools-menu, #t-whatlinkshere, #t-recentchangeslinked, #t-specialpages, #t-print, #t-permalink, #t-info { background-color: rgb(var(--black-monochrome)) !important; color: rgb(var(--bright-accent)) !important; } /* 页脚的具体区域 */ .mw-footer-container { background-color: rgb(var(--black-monochrome)) !important; } /* 底部导航区域 */ #footer-navigation { background-color: rgb(var(--black-monochrome)) !important; border-top: 1px solid rgb(var(--bright-accent)) !important; } /* 变色龙皮肤特定修复 */ .chameleon-toc { background-color: rgb(var(--gray-monochrome)) !important; border: 2px solid rgb(var(--bright-accent)) !important; } .chameleon-toc .toctitle { background-color: rgb(var(--bright-accent)) !important; color: rgb(var(--black-monochrome)) !important; } /* 搜索按钮图标 */ .mw-ui-icon:before, .oo-ui-icon-search { filter: brightness(0) saturate(100%) invert(58%) sepia(78%) saturate(481%) hue-rotate(353deg) brightness(101%) contrast(91%); } /* 工具条完整修复 */ #mw-panel, #mw-head, #mw-head-base, #mw-page-base, #left-navigation, #right-navigation, #p-personal, #p-search, #p-tb, #p-cactions, #p-namespaces, #p-views, #p-variants, #p-coll-print_export, #p-wikibase-otherprojects, #p-lang { background-color: rgb(var(--black-monochrome)) !important; } /* 工具条容器 */ .mw-portlet, .vector-menu { background-color: rgb(var(--black-monochrome)) !important; } /* 工具条标题 */ .mw-portlet h3, .vector-menu h3, .vector-menu-heading { background-color: rgb(var(--bright-accent)) !important; color: rgb(var(--black-monochrome)) !important; padding: 0.25em 0.5em !important; border: none !important; } /* Echo扩展通知图标修复 */ /* 通知图标基础样式 */ #pt-notifications-alert, #pt-notifications-notice, .mw-echo-notifications-badge, .mw-echo-notification-badge-nojs { background-color: transparent !important; border: none !important; } /* 修复图标颜色和可见性 */ #pt-notifications-alert .mw-echo-notifications-badge:before, #pt-notifications-notice .mw-echo-notifications-badge:before, .mw-echo-notifications-badge:before { color: rgb(var(--bright-accent)) !important; filter: none !important; opacity: 1 !important; } /* 未读通知计数器 */ .mw-echo-notifications-badge:after, .mw-echo-notification-badge-nojs:after { background-color: rgb(var(--bright-accent)) !important; color: rgb(var(--black-monochrome)) !important; border: 1px solid rgb(var(--black-monochrome)) !important; opacity: 1 !important; } /* 图标悬停效果 */ #pt-notifications-alert:hover .mw-echo-notifications-badge:before, #pt-notifications-notice:hover .mw-echo-notifications-badge:before { color: rgb(var(--white-monochrome)) !important; } /* 修复SVG图标 */ .mw-echo-notifications-badge svg, .oo-ui-icon-bell svg, .oo-ui-icon-tray svg { fill: rgb(var(--bright-accent)) !important; stroke: rgb(var(--bright-accent)) !important; } /* 确保图标容器可见 */ #pt-notifications-alert, #pt-notifications-notice { opacity: 1 !important; visibility: visible !important; display: inline-block !important; } /* 通知面板样式 */ .mw-echo-ui-overlay, .mw-echo-ui-notificationsWidget { background-color: rgb(var(--black-monochrome)) !important; border: 2px solid rgb(var(--bright-accent)) !important; color: rgb(var(--white-monochrome)) !important; } /* 通知项目 */ .mw-echo-ui-notificationItemWidget { background-color: rgb(var(--gray-monochrome)) !important; border-bottom: 1px solid rgb(var(--bright-accent)) !important; color: rgb(var(--white-monochrome)) !important; } .mw-echo-ui-notificationItemWidget:hover { background-color: rgba(var(--bright-accent), 0.1) !important; } /* 通知标题和内容 */ .mw-echo-ui-notificationItemWidget-content-message-header { color: rgb(var(--bright-accent)) !important; } .mw-echo-ui-notificationItemWidget-content-message-body { color: rgb(var(--white-monochrome)) !important; } #pt-notifications-alert .oo-ui-iconElement-icon, #pt-notifications-notice .oo-ui-iconElement-icon, .mw-echo-notification-badge .oo-ui-iconElement-icon { background-color: transparent !important; } /* 只修改通知图标的颜色 */ #pt-notifications-alert .oo-ui-icon-bell, #pt-notifications-notice .oo-ui-icon-tray { filter: invert(58%) sepia(58%) saturate(1008%) hue-rotate(351deg) brightness(97%) contrast(94%); } /* 强制显示通知图标 - 针对可能被隐藏的情况 */ #p-personal .vector-menu-content-list #pt-notifications-alert, #p-personal .vector-menu-content-list #pt-notifications-notice { display: list-item !important; visibility: visible !important; opacity: 1 !important; } /* 如果使用Font Awesome或其他图标字体 */ .mw-echo-notifications-badge:before, .oo-ui-icon-bell:before, .oo-ui-icon-tray:before { color: rgb(var(--bright-accent)) !important; opacity: 1 !important; visibility: visible !important; } /* 在顶栏显示用户头像 - 针对变色龙皮肤 */ .navbar-userloggedin, #personal-inner, #p-personal .vector-menu-content-list > li:first-child, .navbar-personaltools > li:first-child { position: relative; padding-left: 30px !important; } .navbar-userloggedin::before, #personal-inner::before, #p-personal .vector-menu-content-list > li:first-child > a::before, .navbar-personaltools > li:first-child > a::before { content: ""; position: absolute; left: 5px; top: 50%; transform: translateY(-50%); width: 24px; height: 24px; border-radius: 50%; background-size: cover; background-position: center; border: 1px solid rgb(var(--bright-accent)); z-index: 100; } /* 头像悬停效果 */ .navbar-userloggedin::before, #personal-inner::before, #p-personal .vector-menu-content-list > li:first-child > a::before, .navbar-personaltools > li:first-child > a::before { transition: all 0.3s ease !important; } .navbar-userloggedin:hover::before, #personal-inner:hover::before, #p-personal .vector-menu-content-list > li:first-child > a:hover::before, .navbar-personaltools > li:first-child > a:hover::before { transform: translateY(-50%) scale(1.2) !important; box-shadow: 0 0 10px rgba(var(--bright-accent), 0.6) !important; border-color: rgb(var(--white-monochrome)) !important; } /* 本段内容来自萌娘百科 https://zh.moegirl.org.cn/MediaWiki:Gadget-site-styles.css 感谢贡献!*/ /* 版权协定:知识共享 署名-非商业性使用-相同方式共享 3.0 */ .heimu, .heimu rt{ --heimu-color:#252525; --heimu-text-color:#fff; --heimu-link-color:#add8e6; --heimu-visited-link-color:#c5cae9; --heimu-new-link-color:#fcc; --heimu-new-visited-link-color:#ef9a9a; --heimu-extiw-visited-link-color:#d1c4e9; background-color:var(--heimu-color); } .heimu, .heimu a, a .heimu, a.new .heimu, span.heimu a:visited, span.heimu a.new, span.heimu a.external, span.heimu a.external:visited, span.heimu a.extiw, span.heimu a.extiw:visited, span.heimu a.mw-disambig, span.heimu a.mw-redirect{ transition:color 0.13s linear; color:var(--heimu-color); text-shadow:none; } span.heimu:hover, span.heimu:active{ color:var(--heimu-text-color); } span.heimu:hover a, a:hover span.heimu{ color:var(--heimu-link-color); } span.heimu:hover a:visited, a:visited:hover span.heimu{ color:var(--heimu-visited-link-color); } span.heimu:hover a.new, a.new:hover span.heimu{ color:var(--heimu-new-link-color); } span.heimu a.new:hover:visited, a.new:hover:visited span.heimu{ color:var(--heimu-new-visited-link-color); } span.heimu:hover a.extiw:visited, a.extiw:visited:hover span.heimu{ color:var(--heimu-extiw-visited-link-color); } [color-mode="dark"] .heimu, [color-mode="dark"] .heimu rt{ --heimu-color:#5e6272; } /* 该文档为一个hover特效库,由一些常用的效果以及GitHub上的开源项目“Hover.css”的一些部分构成。 请使用hovers在页面中进行载入。 */ /* hover状态切换 */ .hover-change, .hover-remote { position: relative; display: inline-block; transition: opacity 0.5s linear; } .hover-change-before, .hover-change-after, .hover-remote-target { transition: inherit; } .hover-change-after, .hover-remote-target { opacity: 0; position: absolute; top: 0; left: 0; } .hover-remote-target { left: 100%; } .hover-change-after[style^='right:'], .hover-change-after[style*=' right:'], .hover-remote-after[style^='right:'], .hover-remote-after[style*=' right:'] { left: initial; } .hover-change-after[style^='bottom:'], .hover-change-after[style*=' bottom:'], .hover-remote-after[style^='bottom:'], .hover-remote-after[style*=' bottom:'] { top: initial; } .hover-change-after:hover, .hover-remote-target { opacity: 0; margin-left: -9999px; } /* 主要用于制作hover形式的标签页(tab)切换 */ .hover-tab-mode { position: relative; transition: none; } .hover-tab-mode .hover-remote { transition: inherit; position: static; } /* 闪烁效果 */ .hover-change.flash:hover .hover-change-before { margin-left: -9999px; } .hover-change:hover > .hover-change-before, .hover-remote > .hover-remote-target, .hover-change:hover > a > .hover-change-before, .hover-remote > a > .hover-remote-target { opacity: 0; } .hover-change:hover > .hover-change-after, .hover-remote:hover > .hover-remote-target, .hover-change:hover > a > .hover-change-after, .hover-remote:hover > a > .hover-remote-target { opacity: 1; margin-left: initial; } /* 基类 */ [class*='hovers-'] { display: inline-block; box-shadow: 0 0 1px rgba(0, 0, 0, 0); transform: perspective(1px) translateZ(0); vertical-align: middle; transition-duration: 0.25s; transition-property: all; } /* 旋转放大 */ .hovers-rotate-shrink { transition-duration: 0.5s; transform: rotate(0) scale(0.75); } .hovers-rotate-shrink:hover { transform: rotate(360deg) scale(1); } .hovers-rotate-shrink-reverse { transition-duration: 0.5s; transform: rotate(360deg) scale(0.75); } .hovers-rotate-shrink-reverse:hover { transform: rotate(0) scale(1); } /* 旋转 */ .hovers-rotate, .hovers-rotate-reverse:hover { transition-duration: 0.5s; transform: rotate(0); } .hovers-rotate-reverse, .hovers-rotate:hover { transition-duration: 0.5s; transform: rotate(360deg); } /* 正常 => 浅 */ .hovers-fade-deep, .hovers-fade, .hovers-fade-shallow { opacity: 1; } .hovers-fade-deep:hover, .hovers-fade-deep.active { opacity: 0.35; } .hovers-fade:hover, .hovers-fade.active { opacity: 0.5; } .hovers-fade-shallow:hover, .hovers-fade-shallow.active { opacity: 0.75; } /* 浅 => 正常 */ .hovers-bloom-deep { opacity: 0.35; } .hovers-bloom { opacity: 0.5; } .hovers-bloom-shallow { opacity: 0.75; } .hovers-bloom-deep:hover, .hovers-bloom-deep.active, .hovers-bloom:hover, .hovers-bloom.active, .hovers-bloom-shallow:hover, .hovers-bloom-shallow.active { opacity: 1; } /* 正常 => 大 */ .hovers-grow-deep, .hovers-grow, .hovers-grow-shallow { transform: scale(1); } .hovers-grow-deep:hover, .hovers-grow-deep.active { transform: scale(1.5); } .hovers-grow:hover, .hovers-grow.active { transform: scale(1.25); } .hovers-grow-shallow:hover, .hovers-grow-shallow.active { transform: scale(1.1); } /* 正常 => 小 */ .hovers-shrink-deep:hover, .hovers-shrink-deep.active, .hovers-shrink:hover, .hovers-shrink.active, .hovers-shrink-shallow:hover, .hovers-shrink-shallow.active { transform: scale(1); } .hovers-shrink-deep { transform: scale(0.5); } .hovers-shrink { transform: scale(0.75); } .hovers-shrink-shallow { transform: scale(0.9); } /* 左右抖动 */ @keyframes shake-flexible { 25% { transform: translateX(-0.0625em); } 50% { transform: translateX(0.0625em); } 75% { transform: translateX(-0.0625em); } } .hovers-shake-flexible:hover, .hovers-shake-flexible.active { animation: shake-flexible 0.5s ease-out; } @keyframes shake { 25% { transform: translateX(-8px); } 50% { transform: translateX(8px); } 75% { transform: translateX(-8px); } } .hovers-shake:hover, .hovers-shake.active { animation: shake 0.5s ease-out; } /* 上下抖动 */ @keyframes bounce-flexible { 25% { transform: translateY(-0.0625em); } 50% { transform: translateY(0.0625em); } 75% { transform: translateY(-0.0625em); } } .hovers-bounce-flexible:hover, .hovers-bounce-flexible.active { animation: bounce-flexible 0.5s ease-out; } @keyframes bounce { 25% { transform: translateY(-8px); } 50% { transform: translateY(8px); } 75% { transform: translateY(-8px); } } .hovers-bounce:hover, .hovers-bounce.active { position: relative; left: 0; animation: bounce 0.5s ease-out; } /* 绕顶端中点抖动 */ @keyframes swing { 20% { transform: rotate3d(0, 0, 1, 10deg); } 40% { transform: rotate3d(0, 0, 1, -10deg); } 60% { transform: rotate3d(0, 0, 1, 5deg); } 80% { transform: rotate3d(0, 0, 1, -5deg); } to { transform: rotate3d(0, 0, 1, 0deg); } } .hovers-swing { transform-origin: top center; } .hovers-swing:hover, .hovers-swing.active { animation: swing 0.75s ease-out; } /* 正常 => 大 */ @keyframes pulse-grow { to { transform: scale(1.1); } } .hovers-pulse-grow:hover, .hovers-pulse-grow.active { animation: pulse-grow 0.5s linear infinite alternate; } /* 正常 => 小 */ @keyframes pulse-shrink { to { transform: scale(0.9); } } .hovers-pulse-shrink:hover, .hovers-pulse-shrink.active { animation: pulse-shrink 0.5s linear infinite alternate; } /* 正常 => 小 */ @keyframes push { 50% { transform: scale(0.8); } } .hovers-push:hover, .hovers-push.active { animation: push 0.3s linear; } /* 正常 => 大 */ @keyframes pop { 50% { transform: scale(1.2); } } .hovers-pop:hover, .hovers-pop.active { animation: pop 0.3s linear; } /* 正常 => 大 => 正常 => 大 */ .hovers-bounce-in:hover, .hovers-bounce-in.active { transform: scale(1.2); transition-duration: 0.5s; transition-timing-function: cubic-bezier(0.47, 2.02, 0.31, -0.36); } /* 正常 => 小 => 正常 => 小 */ .hovers-bounce-out:hover, .hovers-bounce-out.active { transform: scale(0.8); transition-duration: 0.5s; transition-timing-function: cubic-bezier(0.47, 2.02, 0.31, -0.36); } /* 倾斜 */ .hovers-tilt:hover, .hovers-tilt.active { transition-duration: 0.3s; transform: rotate(4deg); } /* 倾斜 + 放大 */ .hovers-grow-rotate:hover, .hovers-grow-rotate.active { transition-duration: 0.3s; transform: scale(1.1) rotate(4deg); } /* 升起 */ .hovers-float:hover, .hovers-float.active { transition-duration: 0.3s; transition-timing-function: ease-out; transform: translateY(-8px); } /* 下沉 */ .hovers-sink:hover, .hovers-sink.active { transition-duration: 0.3s; transition-timing-function: ease-out; transform: translateY(8px); } /* 飘浮 */ @keyframes bob { 0% { transform: translateY(-10px); } 50% { transform: translateY(-5px); } 100% { transform: translateY(-10px); } } @keyframes bob-float { 100% { transform: translateY(-10px); } } .hovers-bob:hover, .hovers-bob.active { animation-name: bob-float, bob; animation-duration: 0.3s, 1.5s; animation-delay: 0s, 0.3s; animation-timing-function: ease-out, ease-in-out; animation-iteration-count: 1, infinite; animation-fill-mode: forwards; animation-direction: normal, alternate; } /* 悬挂 */ @keyframes hang { 0% { transform: translateY(10px); } 50% { transform: translateY(5px); } 100% { transform: translateY(10px); } } @keyframes hang-sink { 100% { transform: translateY(10px); } } .hovers-hang:hover, .hovers-hang.active { animation-name: hang-sink, hang; animation-duration: 0.3s, 1.5s; animation-delay: 0s, 0.3s; animation-timing-function: ease-out, ease-in-out; animation-iteration-count: 1, infinite; animation-fill-mode: forwards; animation-direction: normal, alternate; } /* 非对称 */ .hovers-skew:hover, .hovers-skew.active { transform: skew(-10deg); } /* 非对称-左 */ .hovers-skew-forward { transform-origin: 0 100%; } .hovers-skew-forward:hover, .hovers-skew-forward.active { transform: skew(-10deg); } /* 非对称-右 */ .hovers-skew-backward { transform-origin: 0 100%; } .hovers-skew-backward:hover, .hovers-skew-backward.active { transform: skew(10deg); } /* 垂直抖动 */ @keyframes wobble-vertical { 16.65% { transform: translateY(8px); } 33.3% { transform: translateY(-6px); } 49.95% { transform: translateY(4px); } 66.6% { transform: translateY(-2px); } 83.25% { transform: translateY(1px); } 100% { transform: translateY(0); } } .hovers-wobble-vertical:hover, .hovers-wobble-vertical.active { animation-name: wobble-vertical; animation-duration: 1s; animation-timing-function: ease-in-out; animation-iteration-count: 1; } /* 水平抖动 */ @keyframes wobble-horizontal { 16.65% { transform: translateX(8px); } 33.3% { transform: translateX(-6px); } 49.95% { transform: translateX(4px); } 66.6% { transform: translateX(-2px); } 83.25% { transform: translateX(1px); } 100% { transform: translateX(0); } } .hovers-wobble-horizontal:hover, .hovers-wobble-horizontal.active { animation-name: wobble-horizontal; animation-duration: 1s; animation-timing-function: ease-in-out; animation-iteration-count: 1; } /* 右下弹回 */ @keyframes wobble-to-bottom-right { 16.65% { transform: translate(8px, 8px); } 33.3% { transform: translate(-6px, -6px); } 49.95% { transform: translate(4px, 4px); } 66.6% { transform: translate(-2px, -2px); } 83.25% { transform: translate(1px, 1px); } 100% { transform: translate(0, 0); } } .hovers-wobble-to-bottom-right:hover, .hovers-wobble-to-bottom-right.active { animation-name: wobble-to-bottom-right; animation-duration: 1s; animation-timing-function: ease-in-out; animation-iteration-count: 1; } /* 右上弹回 */ @keyframes wobble-to-top-right { 16.65% { transform: translate(8px, -8px) } 33.3% { transform: translate(-6px, 6px); } 49.95% { transform: translate(4px, -4px); } 66.6% { transform: translate(-2px, 2px); } 83.25% { transform: translate(1px, -1px); } 100% { transform: translate(0); } } .hovers-wobble-to-top-right:hover, .hovers-wobble-to-top-right.active { animation-name: wobble-to-top-right; animation-duration: 1s; animation-timing-function: ease-in-out; animation-iteration-count: 1; } /* 果冻 */ @keyframes wobble-top { 16.65% { transform: skew(-12deg); } 33.3% { transform: skew(10deg); } 49.95% { transform: skew(-6deg); } 66.6% { transform: skew(4deg); } 83.25% { transform: skew(-2deg); } 100% { transform: skew(0); } } /* 赘肉 */ .hovers-wobble-top { transform-origin: 0 100%; } .hovers-wobble-top:hover, .hovers-wobble-top.active { animation-name: wobble-top; animation-duration: 1s; animation-timing-function: ease-in-out; animation-iteration-count: 1; } @keyframes wobble-bottom { 16.65% { transform: skew(-12deg); } 33.3% { transform: skew(10deg); } 49.95% { transform: skew(-6deg); } 66.6% { transform: skew(4deg); } 83.25% { transform: skew(-2deg); } 100% { transform: skew(0); } } .hovers-wobble-bottom { transform-origin: 100% 0; } .hovers-wobble-bottom:hover, .hovers-wobble-bottom.active { animation-name: wobble-bottom; animation-duration: 1s; animation-timing-function: ease-in-out; animation-iteration-count: 1; } /* 颤动 */ @keyframes wobble-skew { 16.65% { transform: skew(-12deg); } 33.3% { transform: skew(10deg); } 49.95% { transform: skew(-6deg); } 66.6% { transform: skew(4deg); } 83.25% { transform: skew(-2deg); } 100% { transform: skew(0); } } .hovers-wobble-skew:hover, .hovers-wobble-skew.active { animation-name: wobble-skew; animation-duration: 1s; animation-timing-function: ease-in-out; animation-iteration-count: 1; } /* 振动 */ @keyframes buzz { 50% { transform: translateX(3px) rotate(2deg); } 100% { transform: translateX(-3px) rotate(-2deg); } } .hovers-buzz:hover, .hovers-buzz.active { animation-name: buzz; animation-duration: 0.15s; animation-timing-function: linear; animation-iteration-count: infinite; } /* 振出 */ @keyframes buzz-out { 10% { transform: translateX(3px) rotate(2deg); } 20% { transform: translateX(-3px) rotate(-2deg); } 30% { transform: translateX(3px) rotate(2deg); } 40% { transform: translateX(-3px) rotate(-2deg); } 50% { transform: translateX(2px) rotate(1deg); } 60% { transform: translateX(-2px) rotate(-1deg); } 70% { transform: translateX(2px) rotate(1deg); } 80% { transform: translateX(-2px) rotate(-1deg); } 90% { transform: translateX(1px) rotate(0); } 100% { transform: translateX(-1px) rotate(0); } } .hovers-buzz-out:hover, .hovers-buzz-out.active { animation-name: buzz-out; animation-duration: 0.75s; animation-timing-function: linear; animation-iteration-count: 1; } /* 右移 */ .hovers-forward:hover, .hovers-forward.active { transform: translateX(8px); } /* 左移 */ .hovers-backward:hover, .hovers-backward.active { transform: translateX(-8px); } /* 自由移动 */ .hovers-top, .hovers-left, .hovers-bottom, .hovers-right { transition: all 0.5s; } .hovers-top:hover, .hovers-top.active { transform: translateY(-0.0625em); } .hovers-left:hover, .hovers-left.active { transform: translateX(-0.0625em); } .hovers-bottom:hover, .hovers-bottom.active { transform: translateY(0.0625em); } .hovers-right:hover, .hovers-right.active { transform: translateX(0.0625em); } /* 滤镜 */ .hovers-blur, .hovers-blur-reverse, .hovers-brightness, .hovers-brightness-reverse, .hovers-contrast, .hovers-contrast-reverse, .hovers-grayscale, .hovers-grayscale-reverse, .hovers-invert, .hovers-invert-reverse, .hovers-saturate, .hovers-saturate-reverse, .hovers-sepia, .hovers-sepia-reverse, .hovers-hue-rotate, .hovers-hue-rotate-reverse { transition-duration: 0.75s; } .hovers-blur:hover, .hovers-blur.active, .hovers-brightness:hover, .hovers-brightness.active, .hovers-contrast:hover, .hovers-contrast.active, .hovers-grayscale:hover, .hovers-grayscale.active, .hovers-invert:hover, .hovers-invert.active, .hovers-saturate:hover, .hovers-saturate.active, .hovers-sepia:hover, .hovers-sepia.active, .hovers-hue-rotate:hover, .hovers-hue-rotate.active { filter: initial; } .hovers-blur { filter: blur(5px); } .hovers-blur-reverse:hover, .hovers-blur-reverse.active { filter: blur(5px); } .hovers-brightness { filter: brightness(50%); } .hovers-brightness-reverse:hover, .hovers-brightness-reverse.active { filter: brightness(50%); } .hovers-contrast { filter: contrast(50%); } .hovers-contrast-reverse:hover, .hovers-contrast-reverse.active { filter: contrast(50%); } .hovers-grayscale { filter: grayscale(100%); } .hovers-grayscale-reverse:hover, .hovers-grayscale-reverse.active { filter: grayscale(100%); } .hovers-invert { filter: invert(100%); } .hovers-invert-reverse:hover, .hovers-invert-reverse.active { filter: invert(100%); } .hovers-saturate { filter: saturate(200%); } .hovers-saturate-reverse:hover, .hovers-saturate-reverse.active { filter: saturate(200%); } .hovers-sepia { filter: sepia(100%); } .hovers-sepia-reverse:hover, .hovers-sepia-reverse.acitve { filter: sepia(100%); } .hovers-hue-rotate { filter: hue-rotate(180deg); } .hovers-hue-rotate-reverse:hover, .hovers-hue-rotate-reverse.active { filter: hue-rotate(180deg); } /* 背景滑动 */ .hovers-sweep-to-right, .hovers-sweep-to-left, .hovers-sweep-to-bottom, .hovers-sweep-to-top, .hovers-radial-out, .hovers-radial-in { position: relative; transition-duration: 0.3s; transition-timing-function: ease-out; overflow: hidden; } .hovers-sweep-to-right:before, .hovers-sweep-to-left:before, .hovers-sweep-to-bottom:before, .hovers-sweep-to-top:before, .hovers-radial-out:before, .hovers-radial-in:before { content: ''; position: absolute; z-index: 10; top: 0; left: 0; right: 0; bottom: 0; background: inherit; transform: scaleX(0); transition: inherit; } .hovers-sweep-to-bottom:before, .hovers-sweep-to-top:before { transform: scaleY(0); } .hovers-radial-out:before, .hovers-radial-in:before { border-radius: 50%; transform: scale(0); } .hovers-radial-in:before { transform: scale(2); } .hovers-sweep-to-right:before { transform-origin: 0 50%; } .hovers-sweep-to-left:before { transform-origin: 100% 50%; } .hovers-sweep-to-bottom:before { transform-origin: 50% 0; } .hovers-sweep-to-top:before { transform-origin: 50% 100%; } .hovers-radial-out:hover:before, .hovers-radial-out.active:before { transform: scale(2); } .hovers-radial-in:hover:before, .hovers-radial-in.active:before { transform: scale(0); } .hovers-sweep-to-right .hovers-content.center, .hovers-sweep-to-left .hovers-content.center, .hovers-sweep-to-bottom .hovers-content.center, .hovers-sweep-to-top .hovers-content.center, .hovers-radial-out .hovers-content.center, .hovers-radial-in .hovers-content.center { display: flex; align-items: center; justify-content: center; word-break: break-all; } .hovers-sweep-to-right:hover:before, .hovers-sweep-to-left:hover:before, .hovers-sweep-to-bottom:hover:before, .hovers-sweep-to-top:hover:before, .hovers-sweep-to-right.active:before, .hovers-sweep-to-left:hover:before, .hovers-sweep-to-bottom:hover:before, .hovers-sweep-to-top:hover:before { transform: scaleX(1); } .hovers-sweep-to-right .hovers-content, .hovers-sweep-to-left .hovers-content, .hovers-sweep-to-bottom .hovers-content, .hovers-sweep-to-top .hovers-content, .hovers-radial-out .hovers-content, .hovers-radial-in .hovers-content { width: 100%; height: 100%; position: absolute; transition-property: all; transition-duration: inherit; top: 0; left: 0; z-index: 11; } .hovers-sweep-to-right .hovers-content { left: initial; right: 100%; } .hovers-sweep-to-right:hover .hovers-content, .hovers-sweep-to-right.active .hovers-content { right: 0; } .hovers-sweep-to-left .hovers-content { left: 100%; } .hovers-sweep-to-left:hover .hovers-content, .hovers-sweep-to-left.active .hovers-content { left: 0; } .hovers-sweep-to-bottom .hovers-content { top: initial; bottom: 100%; } .hovers-sweep-to-bottom:hover .hovers-content, .hovers-sweep-to-bottom.active .hovers-content { bottom: 0; } .hovers-sweep-to-top .hovers-content { top: 100%; } .hovers-sweep-to-top:hover .hovers-content, .hovers-sweep-to-top.active .hovers-content { top: 0; } .hovers-radial-out .hovers-content, .hovers-radial-in:hover .hovers-content, .hovers-radial-in.active .hovers-content { opacity: 0; } .hovers-radial-in .hovers-content, .hovers-radial-out:hover .hovers-content, .hovers-radial-out.active .hovers-content { opacity: 1; } /* 默认em */ .hovers-border, .hovers-trim, .hovers-ripple-out, .hovers-ripple-in, .hovers-outline-out, .hovers-outline-in, .hovers-reveal { font-size: 160px; line-height: 16px; } /* 内边框滑出 */ .hovers-border, .hovers-trim { position: relative; top: 0; left: 0; transition: all 0.3s; } .hovers-border:before { content: ''; width: 100%; height: 100%; position: absolute; top: 0; left: 0; box-sizing: border-box; transition: inherit; border-width: calc(0.0625em * 0.6); border-color: inherit; border-style: solid; border-radius: inherit; opacity: 0; } .hovers-border:hover:before, .hovers-border.active:before { opacity: 1; } /* 带边距内边框 */ .hovers-trim:before { content: ''; position: absolute; top: calc(0.0625em * 0.4); left: calc(0.0625em * 0.4); bottom: calc(0.0625em * 0.4); right: calc(0.0625em * 0.4); transition: inherit; border-width: calc(0.0625em * 0.6); border-color: inherit; border-style: solid; opacity: 0; border-radius: inherit; } .hovers-trim:hover:before, .hovers-trim.active:before { opacity: 1; } /* 边框飞出与飞入 */ .hovers-ripple-out, .hovers-ripple-in, .hovers-outline-out, .hovers-outline-in, .hovers-reveal { animation-duration: 0.7s; animation-timing-function: ease-out; transition: all 0.3s; } .hovers-ripple-out:before, .hovers-ripple-in:before, .hovers-outline-out:before, .hovers-outline-in:before, .hovers-reveal:before { content: ''; position: absolute; top: 0; right: 0; bottom: 0; left: 0; animation: inherit; transition: inherit; border-width: calc(0.0625em * 0.6); border-color: inherit; border-style: solid; border-radius: inherit; } .hovers-ripple-out:before { opacity: 0; } .hovers-ripple-in:before { top: calc(-0.0625em * 1.2); right: calc(-0.0625em * 1.2); bottom: calc(-0.0625em * 1.2); left: calc(-0.0625em * 1.2); opacity: 0; } .hovers-outline-out:before { opacity: 0; } .hovers-outline-out:before { top: calc(-0.0625em * 1.6); right: calc(-0.0625em * 1.6); bottom: calc(-0.0625em * 1.6); left: calc(-0.0625em * 1.6); opacity: 0; } .hovers-reveal:before { border-width: 0; opacity: 0; } @keyframes ripple-out { 50% { opacity: 1; } 100% { top: calc(-0.0625em * 1.2); right: calc(-0.0625em * 1.2); bottom: calc(-0.0625em * 1.2); left: calc(-0.0625em * 1.2); opacity: 0; } } .hovers-ripple-out:hover:before, .hovers-ripple-out.active:before { animation-name: ripple-out; } @keyframes ripple-in { 50% { opacity: 1; } 100% { top: 0; right: 0; bottom: 0; left: 0; opacity: 0; } } .hovers-ripple-in:hover:before, .hovers-ripple-in.active:before { animation-name: ripple-in; } .hovers-outline-out:hover:before, .hovers-outline-in:hover:before, .hovers-outline-out.active:before, .hovers-outline-in:hover:before { top: calc(-0.0625em * 0.8); right: calc(-0.0625em * 0.8); bottom: calc(-0.0625em * 0.8); left: calc(-0.0625em * 0.8); opacity: 1; } .hovers-reveal:hover:before, .hovers-reveal.active:before { transform: translateY(0); border-width: calc(0.0625em * 0.4); opacity: 1; } /* 圆角化 */ .hovers-round-corners { overflow: hidden; } .hovers-round-corners:hover, .hovers-round-corners.active { border-radius: 0.0625em; } /* 重叠:翻转切换 */ .hover-turn { position: relative; transform: translateZ(1px); } .hover-turn-before, .hover-turn-after { position: absolute; top: 0; left: 0; } @keyframes hover-turn { from { transform: rotateY(-90deg); } 50% { transform: scale(1.2); } to { transform: rotateY(0); } } .hover-turn:not(:hover) .hover-turn-before, .hover-turn:hover .hover-turn-after { animation: hover-turn 0.5s; } .hover-turn:hover .hover-turn-before, .hover-turn:not(:hover) .hover-turn-after { opacity: 0; } /* [[Category:在模板名字空间下的CSS页面]] */ /* .colormu_toggle_on是为了黑幕开关(MediaWiki:Gadget-heimu-toggle.js)做适配。 .colormu-drk、.colormu-bri分别是暗色背景和亮色背景, 暗色背景的文字通常是浅色,在半隐背景后,颜色需要变成深色。 */ .colormu-drk { color: #FFF; } .colormu-bri { color: #000; } .colormu-drk:not(.colormu_toggle_on) a { color: #add8e6; } .colormu-drk:not(.colormu_toggle_on) a.new { color: #FCC; } .colormu>span, .colormu a, .colormu a>span { transition: color 0.2s; } .colormu:not(:hover):not(:active):not(.colormu_toggle_on)>span, .colormu:not(:hover):not(:active):not(.colormu_toggle_on) a { color: transparent; } /* for T:Coloredlink in T:彩幕 */ .colormu:not(:hover):not(:active):not(.colormu_toggle_on) a>span { color: transparent !important; } /* for T:彩幕 in link */ a .colormu-bri { color: inherit; } a:hover .colormu>span, a:active .colormu>span, /* and for MediaWiki:Gadget-heimu-toggle.js */ .colormu-drk.colormu_toggle_on, .colormu_toggle_on>span, .colormu-drk.colormu_toggle_on a>span { color: inherit !important; }