MediaWiki:Common.css
来自Age Of History 2 Chinese Wiki
注意:在发布之后,您可能需要清除浏览器缓存才能看到所作出的更改的影响。
- Firefox或Safari:按住Shift的同时单击刷新,或按Ctrl-F5或Ctrl-R(Mac为⌘-R)
- Google Chrome:按Ctrl-Shift-R(Mac为⌘-Shift-R)
- Edge:按住Ctrl的同时单击刷新,或按Ctrl-F5。
/* 导入所需字体 */
@import url("https://fonts.googleapis.com/css2?family=Press+Start+2P&display=swap");
@import url("https://fastly.jsdelivr.net/gh/hoah2333/Fonts@main/Typeface-VonwaonBitmap-16px.css");
@import url("https://fastly.jsdelivr.net/gh/hoah2333/Fonts@main/Typeface-VonwaonBitmap-12px.css");
@import url('https://fonts.googleapis.com/css2?family=VT323&display=swap');
:root {
/* 从Wikidot Database New主题迁移的变量 */
--fade-in-delay: 0.1s;
--theme-base: "black-highlighter";
--theme-id: "database-new";
--theme-name: "Database New";
/* 字体设置 - 使用Database主题的字体 */
--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;
/* 颜色方案 - 从Database主题迁移 */
--white-monochrome: 175, 100, 30;
--pale-gray-monochrome: 190, 190, 190;
--light-gray-monochrome: 160, 160, 160;
--gray-monochrome: 72, 69, 60;
--black-monochrome: 10, 10, 10;
--bright-accent: 229, 140, 36;
--medium-accent: 229, 140, 36;
--custom-text: 175, 100, 30;
--dark-accent: 140, 136, 126;
--pale-accent: 140, 136, 126;
/* 主题颜色 */
--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(--custom-text);
--swatch-text-light: var(--bright-accent);
--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(229, 140, 36);
--visited-link-color: rgb(229, 140, 36);
--hover-link-color: rgb(229, 140, 36);
--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);
/* 其他 */
--gradient-header: none;
--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));
}
/* 标题字体 */
h1, h2, h3, h4, h5, h6, #firstHeading {
font-family: var(--title-font);
color: rgb(var(--swatch-headerh1-color));
text-shadow: var(--text-shadow);
}
/* 链接样式 */
a {
color: rgb(var(--bright-accent));
text-decoration: none;
}
a:visited {
color: rgb(var(--medium-accent));
}
a:hover {
color: rgb(var(--bright-accent));
text-decoration: underline;
}
a:hover::before {
content: "> ";
}
html, body {
background-color: rgb(var(--black-monochrome)) !important;
background-image: radial-gradient(circle, rgba(var(--medium-accent), 0.05) 50%, transparent 0) !important;
background-size: 0.25em 0.25em !important;
background-repeat: repeat !important;
background-attachment: fixed !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-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,
.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-color: rgb(var(--bright-accent)) !important;
color: rgb(var(--black-monochrome)) !important;
box-shadow: 0 0 10px rgba(var(--bright-accent), 0.3) !important;
}
/* 分类条样式 */
#catlinks,
.catlinks {
background-color: rgb(var(--black-monochrome)) !important;
border: 1px solid rgb(var(--bright-accent)) !important;
padding: 0.5em !important;
margin-top: 1em !important;
font-family: var(--body-font) !important;
}
#catlinks a,
.catlinks a {
color: rgb(var(--bright-accent)) !important;
text-decoration: none !important;
}
#catlinks a:hover,
.catlinks a:hover {
color: rgb(var(--white-monochrome)) !important;
text-decoration: underline !important;
}
/* 工具栏样式 */
#footer-info,
#footer-places,
.footer-places,
.footer-info {
background-color: rgb(var(--black-monochrome)) !important;
border-top: 1px solid rgb(var(--bright-accent)) !important;
color: rgb(var(--bright-accent)) !important;
padding: 0.5em 1em !important;
font-family: var(--body-font) !important;
}
#footer-info a,
#footer-places a {
color: rgb(var(--bright-accent)) !important;
}
#footer-info a:hover,
#footer-places a:hover {
color: rgb(var(--white-monochrome)) !important;
}
/* 主内容区背景 */
#content {
background-color: rgb(var(--black-monochrome));
position: relative;
background-image: radial-gradient(circle, rgba(var(--medium-accent), 0.05) 50%, transparent 0);
background-size: 0.25em 0.25em;
background-repeat: repeat;
background-attachment: fixed;
}
.navbar,
.navbar.navbar-default,
.navbar-light {
background-color: rgb(var(--black-monochrome)) !important;
border-color: rgb(var(--bright-accent)) !important;
}
.navbar .navbar-brand,
.navbar .nav-link,
.navbar-light .navbar-nav .nav-link {
color: rgb(var(--bright-accent)) !important;
font-family: var(--header-font) !important;
}
.navbar .nav-link:hover,
.navbar-light .navbar-nav .nav-link:hover {
color: rgb(var(--white-monochrome)) !important;
text-decoration: none !important;
}
/* 下拉菜单 */
.dropdown-menu {
background-color: rgb(var(--black-monochrome)) !important;
border: 1px solid rgb(var(--bright-accent)) !important;
}
.dropdown-item {
color: rgb(var(--bright-accent)) !important;
font-family: var(--body-font) !important;
}
.dropdown-item:hover {
background-color: rgb(var(--gray-monochrome)) !important;
color: rgb(var(--white-monochrome)) !important;
}
/* 侧边栏 */
#mw-navigation, #mw-panel, .sidebar {
background-color: rgb(var(--black-monochrome)) !important;
}
#mw-navigation h2, #mw-panel h3, .sidebar h3 {
color: rgb(var(--bright-accent)) !important;
font-family: var(--header-font) !important;
border-bottom: 1px solid rgb(var(--bright-accent)) !important;
}
/* 工具栏 */
#p-tb, .tools-menu {
background-color: rgb(var(--black-monochrome)) !important;
}
/* 内容区域 */
#content, .mw-body {
background-color: transparent !important;
border: 1px solid rgb(var(--bright-accent)) !important;
}
/* 页脚 */
#footer, .footer {
background-color: rgb(var(--black-monochrome)) !important;
border-top: 1px solid rgb(var(--bright-accent)) !important;
color: rgb(var(--bright-accent)) !important;
}
/* 搜索框 */
#searchInput, .form-control {
background-color: rgb(var(--black-monochrome)) !important;
border: 1px solid rgb(var(--bright-accent)) !important;
color: rgb(var(--bright-accent)) !important;
font-family: var(--body-font) !important;
}
/* 按钮 */
.btn, .mw-ui-button {
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;
}
.btn:hover, .mw-ui-button:hover {
background-color: rgb(var(--bright-accent)) !important;
color: rgb(var(--black-monochrome)) !important;
}
/* 表格 */
.wikitable, table.wikitable {
background-color: rgb(var(--black-monochrome)) !important;
border: 1px solid rgb(var(--bright-accent)) !important;
}
.wikitable th {
background-color: rgb(var(--gray-monochrome)) !important;
color: rgb(var(--bright-accent)) !important;
}
.wikitable td {
border: 1px solid rgb(var(--bright-accent)) !important;
color: rgb(var(--white-monochrome)) !important;
}
/* 代码块和预格式文本 */
pre, code, .mw-code {
background-color: rgb(var(--gray-monochrome)) !important;
border: 1px solid rgb(var(--bright-accent)) !important;
color: rgb(var(--bright-accent)) !important;
font-family: var(--mono-font) !important;
}
/* 链接颜色 */
a {
color: rgb(var(--bright-accent)) !important;
}
a:visited {
color: rgb(var(--medium-accent)) !important;
}
a:hover {
color: rgb(var(--white-monochrome)) !important;
text-decoration: underline !important;
}
/* 多重扫描线动画 */
.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(229, 140, 36, 0) 0%,
rgba(229, 140, 36, 0.1) 20%,
rgba(229, 140, 36, 0.2) 50%,
rgba(229, 140, 36, 0.1) 80%,
rgba(229, 140, 36, 0) 100%
);
box-shadow:
0 0 8px rgba(229, 140, 36, 0.15),
0 0 15px rgba(229, 140, 36, 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(229, 140, 36, 0) 0%,
rgba(229, 140, 36, 0.3) 50%,
rgba(229, 140, 36, 0) 100%
);
box-shadow: 0 0 6px rgba(229, 140, 36, 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(229, 140, 36, 0.6);
box-shadow: 0 0 3px rgba(229, 140, 36, 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;
}
}
/* 修复动画问题 - 使用更温和的淡入效果 */
@keyframes fadeIn {
from {
opacity: 0;
transform: translateY(20px);
}
to {
opacity: 1;
transform: translateY(0);
}
}
/* 应用动画到内容 */
.mw-parser-output > * {
animation: fadeIn 0.5s ease-out forwards;
opacity: 0;
}
/* 延迟动画 */
.mw-parser-output > *:nth-child(1) { animation-delay: 0.1s; }
.mw-parser-output > *:nth-child(2) { animation-delay: 0.2s; }
.mw-parser-output > *:nth-child(3) { animation-delay: 0.3s; }
.mw-parser-output > *:nth-child(4) { animation-delay: 0.4s; }
.mw-parser-output > *:nth-child(5) { animation-delay: 0.5s; }
.mw-parser-output > *:nth-child(n+6) { animation-delay: 0.6s; }
/* 修复代码区域样式 */
.mw-highlight pre {
background-color: rgb(var(--gray-monochrome)) !important;
border: 1px solid rgb(var(--bright-accent)) !important;
padding: 1em !important;
overflow: auto !important;
}
/* 语法高亮颜色 */
.mw-highlight .k { color: #E58C24 !important; } /* 关键字 */
.mw-highlight .s { color: #8C7832 !important; } /* 字符串 */
.mw-highlight .c { color: #6A6A6A !important; } /* 注释 */
.mw-highlight .n { color: #AF6430 !important; } /* 名称 */
.mw-highlight .o { color: #AF6430 !important; } /* 运算符 */
/* Database主题样式块 */
.lightstyled-quote {
background-color: rgb(var(--bright-accent));
color: rgb(0, 0, 0);
border-left: 0.5rem solid rgb(var(--gray-monochrome));
padding: 0.1rem 1rem;
margin: 0.5rem 0 0.5rem 0.25rem;
box-shadow: 0.05rem 0.1rem 0.3rem rgba(0,0,0,.25);
}
.darkstyled-quote {
background-color: rgb(var(--gray-monochrome));
border-left: 0.5rem solid rgb(var(--bright-accent));
color: rgb(var(--white-monochrome));
padding: 0.1rem 1rem;
margin: 0.5rem 0 0.5rem 0.25rem;
box-shadow: 0.05rem 0.1rem 0.3rem rgba(0,0,0,.25);
}
.lightblock {
background-color: rgb(var(--bright-accent));
color: rgb(0, 0, 0);
padding: 0.01rem 1rem;
margin: 0.5rem 0 0.5rem 0.25rem;
box-shadow: 0 0.2rem 0.3rem rgba(0,0,0,.25);
}
.darkblock {
background-color: rgb(var(--gray-monochrome));
color: rgb(var(--white-monochrome));
padding: 0.01rem 1rem;
margin: 0.5rem 0 0.5rem 0.25rem;
box-shadow: 0 0.2rem 0.3rem rgba(0,0,0,.25);
}
/* 橙幕效果(替代黑幕) */
.blackmu,
.blackmu rt {
--blackmu-color: 229, 140, 36;
--blackmu-text-color: 0, 0, 0;
--blackmu-link-color: 173, 216, 230;
--blackmu-visited-link-color: 197, 202, 233;
--blackmu-new-link-color: 255, 204, 204;
--blackmu-new-visited-link-color: 239, 154, 154;
--blackmu-extiw-visited-link-color: 209, 196, 233;
background-color: rgb(var(--blackmu-color));
}
.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: rgb(var(--blackmu-color));
text-shadow: none;
}
span.blackmu:hover,
span.blackmu:active {
color: rgb(var(--blackmu-text-color));
}
span.blackmu:hover a,
a:hover span.blackmu {
color: rgb(var(--blackmu-link-color));
}
.notaninfobox {
position: relative;
clear: right;
margin: 0 0 1em 1em;
width: 350px;
font-size: 90%;
background-color: var(--custom-table-background);
float: right;
border: 1px solid var(--custom-border-gray);
padding: 2px;
overflow: auto;
z-index: 1;
overflow-wrap: anywhere;
}
@media all and (max-width: 511px) {
.notaninfobox {
float: none;
margin-left: 0;
width: auto;
}
}
.infobox tr:not(:first-child) td {
border-bottom: 1px solid #ddd;
}
@media all and (max-width: 337px) {
.notaninfobox {
margin-left: -16px;
margin-right: -16px;
border-left: none;
border-right: none;
}
}
.notaninfobox > .infobox-title {
font-weight: bold;
text-align: center;
font-size: 120%;
background-color: #BCD4F5;
}
.infobox-imagearea {
text-align: center;
padding: 4px;
}
.infobox-imagearea > div:not(:first-child) {
padding-top: 1em;
}
/* Horizontally centre animated images */
.infobox-imagearea .animated {
display: inline-flex;
align-items: center;
}
.notaninfobox .infobox-rows {
display: grid;
grid-template-columns: max-content 1fr;
gap: 1px;
}
.infobox .plainlinks a {
color: #0000EE !important;
text-decoration: underline;
}
.infobox .plainlinks a:visited {
color: #551A8B !important;
}
.notaninfobox .infobox-rows .infobox-row {
display: contents;
}
.notaninfobox .infobox-row .infobox-row-label,
.notaninfobox .infobox-row .infobox-row-field {
padding: 4px;
}
.notaninfobox .infobox-row .infobox-row-label {
font-weight: bold;
display: flex;
align-items: center;
}
.community-updates {
background: #fff0e6;
padding: 15px;
border-radius: 10px;
margin-top: 20px;
}
.community-updates ul li {
list-style: none;
padding: 10px;
background: #fff;
margin: 5px 0;
border-radius: 5px;
box-shadow: 0 2px 5px rgba(0,0,0,0.1);
}
.community-updates ul li a {
color: #337ab7;
text-decoration: none;
font-weight: bold;
}
.notaninfobox .infobox-rows .infobox-row:nth-child(2n) .infobox-row-label,
.notaninfobox .infobox-rows .infobox-row:nth-child(2n) .infobox-row-field {
background-color: var(--custom-table-alternate-background);
}
/* Infoboxes with tabber */
.tabber-container-infobox .tabber .tabbertab,
.tabber-container-infobox ul.tabbernav li a,
.tabber-container-infobox ul.tabbernav li.tabberactive a {
background: none;
border: none;
}
.tabber-container-infobox .tabber .tabbertab {
padding: 0;
}
.tabber-container-infobox ul.tabbernav {
font: inherit;
font-size: 100%;
}
.tabber-container-infobox ul.tabbernav li a:hover {
color: #000;
}
.tabber-container-infobox ul.tabbernav > li {
margin-bottom: 5px;
padding: 0;
}
.announcement-content span {
display: inline-block;
white-space: nowrap;
animation: marquee 15s linear infinite;
}
.mw-mainpage-header {
background: linear-gradient(to bottom right, #B9A3FF, #8C47E7);
box-shadow: grey 0px 0px 5px;
border-radius: 20px;
color: #000;
font-size: 1.5em;
text-shadow: white 0px 0px 10px, white 0px 0px 10px;
padding: 20px;
text-align: center;
}
.mw-mainpage-header h1 {
font-size: 2.5em;
margin-bottom: 10px;
}
.mw-mainpage-header p {
font-size: 1.2em;
margin: 5px 0;
}
.tabber-container-infobox ul.tabbernav > li > a {
color: #595959;
padding-bottom: 1px;
display: block;
}
/* To prevent the tabs from jumping around when they become active or inactive
* due to the font-weight changing from normal to bold and vice versa, add an
* invisible ::before which contains the same text as the tab's text, but
* bolded. This way the element in which unbolded text sits is sized according
* to the bolded text, preventing it from resizing upon being selected.
*/
.tabber-container-infobox ul.tabbernav > li > a::before {
display: block;
content: attr(alt);
font-weight: bold;
height: 0;
color: transparent;
overflow: hidden;
visibility: hidden;
}
.tabber-container-infobox ul.tabbernav > li.tabberactive {
border: none;
}
.modulebox {
border: 1px solid #ccc;
padding: 10px;
margin: 10px 0;
background-color: #f9f9f9;
}
.tabber-container-infobox ul.tabbernav > li.tabberactive > a {
font-weight: bold;
color: var(--link-color);
border-bottom: 2px solid var(--custom-mcwiki-header-color);
}
.infobox-rows p {
margin: 0;
}
/* Merge adjacent dls in the infobox, since they're usually supposed to be one,
* but the wiki screws up sometimes.
*/
.infobox-rows dl + dl {
margin-top: -0.4em;
}
.infobox-rows dl:last-child {
margin-bottom: 0.2em;
}
.infobox-footer {
text-align: center;
}
/* 页面底部导航框(2011年8月16日引自中文维基)(所谓大家族模板) */
table.navbox{
border:1px solid #aaa;
clear:both;
margin:auto;
padding:1px;
text-align:center;
width:100%;
}
table.navbox + table.navbox{
margin-top:-1px;
}
.navbox-title,
.navbox-abovebelow,
table.navbox th{
padding-left:1em;
padding-right:1em;
text-align:center;
}
.navbox-group{
font-weight:700;
white-space:nowrap;
}
.navbox,
.navbox-subgroup{
background:none repeat scroll 0 0 var(--theme-card-background-color, #fdfdfd);
}
.navbox-list{
border-color:#fdfdfd;
}
.navbox-title,
table.navbox th{
background:none repeat scroll 0 0 #a5e4a5;
}
.navbox-abovebelow,
.navbox-group,
.navbox-subgroup .navbox-title{
background:none repeat scroll 0 0 #c0ecc0;
}
.navbox-subgroup .navbox-group,
.navbox-subgroup .navbox-abovebelow{
background:none repeat scroll 0 0 #e6f6e6;
}
.navbox-even{
background:none repeat scroll 0 0 #f5fcf5;
}
.navbox-odd{
background:none repeat scroll 0 0 #fdfdfd;
}
.collapseButton {
float: right;
font-weight: 400;
text-align: right;
width: auto;
}
.navbox .collapseButton {
width: 6em;
}
.navbar {
position: relative;
min-height: 23px !important;
margin-bottom: 0px !important;
border: 1px solid transparent;
}
.navbox-title .Wikiplus-Edit-EveryWhereBtn {
display: none;
}
@media only screen and (max-width:759px){
.infotable {
width: 90%;
float: none;
margin: 0 auto;
}
/*.navbox {*/
/* display:none;*/
/*}*/
/*“查·论·编”在小屏幕时基本用不到(也很难点到)*/
.navbox-title>div{
display: none;
}
/*把内边距去掉*/
.navbox-group,
.navbox-group >div{
padding-left: 0 !important;
padding-right: 0 !important;
text-align: center;
}
}
/* h1标题字体 */
body h1 {
font-family: "Microsoft YaHei", "微软雅黑", sans-serif !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;
}
/* === 轮播图容器 === */
.mw-carousel {
position: relative;
width: 100%;
max-width: 960px;
margin: 2em auto;
overflow: hidden;
border-radius: 16px;
box-shadow: 0 10px 25px rgba(0, 0, 0, 0.15);
aspect-ratio: 16 / 9;
background-color: #f8f9fa;
}
/* === 图片区域 === */
.mw-carousel .carousel-image {
width: 100%;
height: 100%;
position: relative;
}
.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: linear-gradient(to top, rgba(0, 0, 0, 0.7), rgba(0, 0, 0, 0));
color: white;
padding: 2em 1.5em 1.2em;
text-align: left;
transition: all 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);
z-index: 2;
transform: translateY(0);
}
/* === 悬停时的文字效果:文字全屏覆盖,背景渐变 === */
.mw-carousel:hover .carousel-caption {
top: 0;
left: 0;
bottom: 0;
width: 100%;
height: 100%;
transform: translateY(0);
background: rgba(0, 0, 0, 0.6);
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
text-align: center;
padding: 2em;
border-radius: 0;
backdrop-filter: blur(3px);
}
/* === 标题 + 描述样式 === */
.mw-carousel .carousel-caption h3 {
margin: 0 0 0.5em;
font-size: 1.6em;
font-weight: 600;
text-shadow: 0 2px 4px rgba(0, 0, 0, 0.5);
transform: translateY(0);
transition: transform 0.4s ease;
}
.mw-carousel .carousel-caption p {
margin: 0;
font-size: 1.1em;
line-height: 1.4;
max-width: 80%;
opacity: 1;
transform: translateY(0);
transition: all 0.4s ease 0.1s;
text-shadow: 0 1px 2px rgba(0, 0, 0, 0.4);
}
.mw-carousel:hover .carousel-caption h3 {
transform: translateY(0);
}
.mw-carousel:hover .carousel-caption p {
opacity: 1;
transform: translateY(0);
}
/* === 左右切换按钮(垂直居中) === */
.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 1.5em;
opacity: 0;
transition: opacity 0.3s ease;
}
.mw-carousel:hover .carousel-navigation {
opacity: 1;
}
.mw-carousel .carousel-prev,
.mw-carousel .carousel-next {
background-color: rgba(255, 255, 255, 0.8);
border: none;
border-radius: 50%;
width: 48px;
height: 48px;
font-size: 22px;
cursor: pointer;
display: flex;
justify-content: center;
align-items: center;
transition: all 0.3s;
box-shadow: 0 2px 6px rgba(0, 0, 0, 0.2);
color: #333;
}
.mw-carousel .carousel-prev:hover,
.mw-carousel .carousel-next:hover {
background-color: rgba(255, 255, 255, 0.95);
transform: scale(1.05);
}
/* === 指示器 - 修改为底部右侧 === */
.mw-carousel .carousel-indicators {
position: absolute;
bottom: 15px;
right: 20px; /* 改为右对齐 */
left: auto; /* 取消左对齐 */
transform: none; /* 取消水平居中变换 */
display: flex;
gap: 10px;
z-index: 4;
padding: 0.5em 1em;
border-radius: 20px;
background-color: rgba(0, 0, 0, 0.3);
backdrop-filter: blur(5px);
}
.mw-carousel .carousel-indicators .indicator {
width: 10px;
height: 10px;
background-color: rgba(255, 255, 255, 0.5);
border-radius: 50%;
cursor: pointer;
transition: all 0.3s;
}
.mw-carousel .carousel-indicators .indicator.active {
background-color: #ffffff;
transform: scale(1.2);
box-shadow: 0 0 8px rgba(255, 255, 255, 0.5);
}
.mw-carousel .carousel-indicators .indicator:hover {
background-color: rgba(255, 255, 255, 0.8);
}
/* === 图片全局统一显示效果 === */
img {
max-width: 100%;
height: auto;
display: block;
}
/* === 添加图片过渡效果 === */
.mw-carousel .carousel-image img {
transition: transform 0.5s ease;
}
.mw-carousel:hover .carousel-image img {
transform: scale(1.03);
}
/* Main Page Styles */
#firstHeading {
display: none;
}
/* Common styles */
.section-title {
background-color: #f0f0f0;
color: #333;
font-weight: bold;
padding: 0.5rem 1rem;
font-size: 1.2rem;
border-left: 4px solid #3366cc;
}
.see-more {
text-align: right;
padding: 0.3rem 1rem;
font-size: 0.9rem;
background-color: #f5f5f5;
}
.see-more a {
color: #3366cc;
}
/* 主页横幅样式 - 改进的CRT效果 */
.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: 2px solid rgb(var(--bright-accent));
box-shadow: 0 0 20px rgba(var(--bright-accent), 0.3);
background-color: rgb(var(--black-monochrome));
z-index: 1;
}
/* 欢迎文本区域 - 带优化的CRT故障效果 */
.main-page-banner .welcome-text {
grid-area: welcome;
background-color: rgb(var(--gray-monochrome));
color: rgb(var(--white-monochrome));
padding: 2rem;
margin: 0;
width: 100%;
position: relative;
overflow: hidden;
border-bottom: 2px solid rgb(var(--bright-accent));
border-radius: 0;
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;
}
/* 改进的CRT扫描线效果 */
.main-page-banner .welcome-text::after {
content: "";
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: repeating-linear-gradient(
0deg,
rgba(0, 0, 0, 0.1),
rgba(0, 0, 0, 0.1) 1px,
transparent 1px,
transparent 2px
);
pointer-events: none;
z-index: 3;
}
/* 添加轻微的随机故障闪烁效果 */
.main-page-banner .welcome-text p {
position: relative;
z-index: 2;
margin: 0;
font-size: 1.1em;
text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.5);
}
/* 导航按钮美化 */
.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: rgb(var(--black-monochrome));
}
.main-page-banner .nav-button {
background-color: rgb(var(--gray-monochrome));
border: 2px solid rgb(var(--bright-accent));
border-radius: 0 0 1rem 1rem;
margin: 0 0 4rem 0;
transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
height: min-content;
position: relative;
overflow: hidden;
}
/* 按钮光效 */
.main-page-banner .nav-button::before {
content: "";
position: absolute;
top: 0;
left: -100%;
width: 100%;
height: 100%;
background: linear-gradient(
90deg,
transparent,
rgba(var(--bright-accent), 0.2),
transparent
);
transition: left 0.5s;
}
.main-page-banner .nav-button:hover::before {
left: 100%;
}
.main-page-banner .nav-button:hover {
transform: translateY(-5px);
margin: 0 0 1rem 0;
box-shadow: 0 5px 15px rgba(var(--bright-accent), 0.4);
}
.main-page-banner .nav-button a {
display: block;
padding: 1rem 0;
width: 100%;
text-align: center;
color: rgb(var(--bright-accent));
font-size: 1.1rem;
font-weight: bold;
text-decoration: none !important;
font-family: var(--title-font);
position: relative;
z-index: 1;
transition: padding 150ms cubic-bezier(0.4, 0, 0.2, 1);
}
.main-page-banner .nav-button:hover a {
padding: 2rem 0;
color: rgb(var(--bright-accent));
}
/* 响应式布局 */
@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;
}
.main-page-banner .nav-button {
flex: 1;
margin: 0 0 4rem 0;
}
.main-page-banner .nav-button:not(:last-child) {
margin-right: 3%;
}
.main-page-banner .nav-button a {
font-size: 1.1rem;
}
.main-page-banner .nav-button:hover {
margin: 0 0 1rem 0;
}
}
/* 公告容器 */
.announcement-container {
background-color: rgb(var(--black-monochrome));
border: 2px solid rgb(var(--bright-accent));
box-shadow: 0 0 10px rgba(var(--bright-accent), 0.2);
margin-bottom: 2rem;
display: flex;
flex-wrap: wrap;
align-content: space-between;
}
.announcement-container .section-title {
background-color: rgb(var(--bright-accent));
color: rgb(var(--black-monochrome));
padding: 0.75rem;
font-family: var(--title-font);
font-size: 1.3rem;
text-align: center;
width: 100%;
border-left: none;
}
.announcement-container .announcement-content {
background-color: rgb(var(--gray-monochrome));
color: rgb(var(--white-monochrome));
padding: 1rem;
font-family: var(--body-font);
width: 100%;
}
.announcement-container .more-content {
width: 100%;
border-top: 2px solid rgb(var(--bright-accent));
}
.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 styles */
.main-page-content {
display: flex;
flex-wrap: wrap;
justify-content: space-between;
margin-bottom: 2rem;
}
.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%;
display: grid;
grid-template-areas: "title" "page" "more";
grid-template-rows: auto 1fr auto;
border: 1px solid #f0f0f0;
}
.recent-pages-container .section-title {
grid-area: title;
}
.recent-pages-container .page-list {
grid-area: page;
border: solid #f0f0f0;
border-width: 0 1px;
padding: 0.5rem 1rem;
background-color: #fafafa;
max-height: 15rem;
overflow-y: auto;
}
.recent-pages-container .page-list a {
display: block;
padding: 0.3rem 0;
border-bottom: 1px solid #f0f0f0;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.recent-pages-container .page-list a:last-child {
border-bottom: none;
}
.recent-pages-container .see-more {
grid-area: more;
}
/* Featured content styles */
.featured-content-container {
display: flex;
flex-wrap: wrap;
justify-content: space-between;
width: 100%;
}
.featured-content-container .feature-item {
flex-basis: 48%;
display: grid;
grid-template-areas: "title" "content" "more";
grid-template-rows: auto 1fr auto;
border: 1px solid #f0f0f0;
margin-bottom: 1rem;
}
.featured-content-container .section-title {
grid-area: title;
}
.featured-content-container .feature-content {
grid-area: content;
border: solid #f0f0f0;
border-width: 0 1px;
padding: 1rem;
background-color: #fafafa;
}
.featured-content-container .feature-content .featured-title {
font-size: 1.2rem;
font-weight: bold;
margin-bottom: 0.5rem;
}
.featured-content-container .feature-content .featured-author {
font-size: 0.9rem;
color: #666;
margin-bottom: 0.5rem;
}
.featured-content-container .feature-content .featured-description {
font-style: italic;
color: #444;
}
.featured-content-container .see-more {
grid-area: more;
}
/* Tools and resources styles */
.tools-and-resources {
margin-bottom: 2rem;
}
.tools-container {
display: grid;
grid-template-columns: 1fr 1fr;
grid-gap: 1rem;
}
.tools-container .tool-item {
background: #f5f5f5;
color: #333;
padding: 1rem;
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;
border-left: 4px solid #3366cc;
}
.tools-container .tool-item .tool-icon {
grid-area: icon;
justify-self: center;
align-self: end;
}
.tools-container .tool-item .tool-title {
grid-area: title;
text-align: center;
}
.tools-container .tool-item .tool-title a {
color: #3366cc;
font-weight: bold;
}
.tools-container .tool-item .tool-description {
grid-area: content;
align-self: center;
}
/* News styles */
.news-container {
display: flex;
flex-wrap: wrap;
border: 2px solid #f0f0f0;
align-content: space-between;
}
.news-container .section-title {
width: 100%;
text-align: center;
font-size: 1.5rem;
border-left: none;
border-bottom: 2px solid #f0f0f0;
}
.news-container .news-content {
background-color: #fafafa;
width: 100%;
padding: 0.75rem;
}
.news-container .news-content .news-item {
border-bottom: 1px solid #f0f0f0;
padding: 0.5rem 0;
}
.news-container .news-content .news-item:last-child {
border-bottom: none;
}
.news-container .news-content .news-title {
font-weight: bold;
margin-bottom: 0.3rem;
}
.news-container .news-content .news-date {
font-size: 0.8rem;
color: #666;
margin-bottom: 0.3rem;
}
.news-container .news-archive {
background: #f0f0f0;
text-align: right;
width: 100%;
padding: 0.3rem 1rem;
}
.news-container .news-archive a {
color: #3366cc;
}
/* Carousel styles */
/* Import styles from main.scss file */
.carousel-container {
position: relative;
overflow: hidden;
margin-bottom: 1rem;
}
.carousel-container .rolling {
display: flex;
flex-direction: column;
height: 100%;
position: relative;
overflow: hidden;
}
/* Add more carousel styles converted from SCSS */
/* These would need to be adapted from the complex SCSS you provided */
/* Responsive styles */
@media (max-width: 767px) {
.announcement-container .section-title {
font-size: 1.2rem;
}
.recent-pages-container .page-section,
.featured-content-container .feature-item {
flex-basis: 100%;
margin-bottom: 1.5rem;
}
.tools-container {
grid-template-columns: 1fr;
}
}
/* 信息框迁移 - 使用darkblock样式 */
.infobox,
.notaninfobox {
background-color: rgb(var(--gray-monochrome)) !important;
color: rgb(var(--white-monochrome)) !important;
border: 2px solid rgb(var(--bright-accent)) !important;
box-shadow: 0 0.2rem 0.3rem rgba(0,0,0,.25) !important;
padding: 0.5em !important;
font-family: var(--body-font) !important;
}
.infobox th,
.notaninfobox .infobox-title {
background-color: rgb(var(--bright-accent)) !important;
color: rgb(var(--black-monochrome)) !important;
padding: 0.25em 0.5em !important;
text-align: center !important;
font-weight: bold !important;
}
.infobox td {
border-bottom: 1px solid rgb(var(--bright-accent)) !important;
padding: 0.25em 0.5em !important;
}
/* 导航框(查论编)样式迁移 */
.navbox {
background-color: rgb(var(--black-monochrome)) !important;
border: 2px solid rgb(var(--bright-accent)) !important;
font-family: var(--body-font) !important;
margin: 1em 0 !important;
}
.navbox-title,
.navbox th {
background-color: rgb(var(--bright-accent)) !important;
color: rgb(var(--black-monochrome)) !important;
padding: 0.25em 1em !important;
text-align: center !important;
}
.navbox-group {
background-color: rgb(var(--gray-monochrome)) !important;
color: rgb(var(--bright-accent)) !important;
font-weight: bold !important;
padding: 0.25em 0.5em !important;
border-right: 2px solid rgb(var(--bright-accent)) !important;
}
.navbox-list {
background-color: rgb(var(--black-monochrome)) !important;
color: rgb(var(--white-monochrome)) !important;
padding: 0.25em 0.5em !important;
}
.navbox-even {
background-color: rgba(var(--gray-monochrome), 0.1) !important;
}
.navbox a {
color: rgb(var(--bright-accent)) !important;
}
.navbox a:hover {
color: rgb(var(--white-monochrome)) !important;
}
/* 保留原始welcome-text布局,只修改故障效果 */
.main-page-banner .welcome-text {
grid-area: welcome;
background-color: rgb(var(--gray-monochrome));
color: rgb(var(--white-monochrome));
padding: 2rem;
margin: 0;
width: 100%;
position: relative;
overflow: hidden;
border-bottom: 2px solid rgb(var(--bright-accent));
border-radius: 0;
}
/* 保留背景图片支持,但改进效果 */
.main-page-banner .welcome-text::before {
content: "";
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background-image: url('你的背景图片URL'); /* 保留你的图片URL */
background-size: cover;
background-position: center;
opacity: 0.2; /* 轻微降低以提高对比度 */
z-index: 1;
filter: brightness(0.8) contrast(1.2); /* 增加一点老式CRT的感觉 */
}
/* 改进的CRT故障线效果 - 更微妙更真实 */
.main-page-banner .welcome-text::after {
content: "";
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: repeating-linear-gradient(
0deg,
rgba(0, 0, 0, 0.07),
rgba(0, 0, 0, 0.07) 1px,
transparent 1px,
transparent 2px
);
pointer-events: none;
z-index: 3;
/* 更微妙的动画,不那么突兀 */
animation: subtleGlitch 12s infinite linear;
}
/* 更精细的水平扫描线 */
.main-page-banner .welcome-text .scan-line {
position: absolute;
width: 100%;
height: 3px;
background: linear-gradient(
to right,
transparent 0%,
rgba(229, 140, 36, 0.08) 30%,
rgba(229, 140, 36, 0.15) 50%,
rgba(229, 140, 36, 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(229, 140, 36, 0.1);
}
/* 更自然的文字故障效果 */
.main-page-banner .welcome-text p {
position: relative;
z-index: 2;
margin: 0;
font-size: 1.1em;
text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.8);
animation: subtleTextGlitch 15s infinite;
}
/* 更微妙的屏幕故障动画 */
@keyframes subtleGlitch {
0%, 100% {
transform: translateX(0);
opacity: 1;
}
7% {
transform: translateX(1px);
opacity: 0.9;
}
7.1% {
transform: translateX(0);
opacity: 1;
}
30% {
transform: translateX(0);
opacity: 1;
}
30.1% {
transform: translateX(-1px);
opacity: 0.95;
}
30.2% {
transform: translateX(0);
opacity: 1;
}
80% {
transform: translateX(0);
opacity: 1;
}
80.1% {
transform: translateX(2px);
opacity: 0.9;
}
80.2% {
transform: translateX(0);
opacity: 1;
}
}
/* 水平扫描线动画 */
@keyframes horizScanLine {
0% { top: -10px; }
100% { top: 100%; }
}
/* 更微妙的文字故障效果 */
@keyframes subtleTextGlitch {
0%, 100% {
text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.8);
}
2% {
text-shadow: -1px 0 rgba(229, 140, 36, 0.7), 2px 2px 4px rgba(0, 0, 0, 0.8);
}
2.1% {
text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.8);
}
33% {
text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.8);
}
33.1% {
text-shadow: 1px 0 rgba(229, 140, 36, 0.7), 2px 2px 4px rgba(0, 0, 0, 0.8);
}
33.2% {
text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.8);
}
73% {
text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.8);
}
73.1% {
text-shadow: -1px 0 rgba(229, 140, 36, 0.7), 2px 2px 4px rgba(0, 0, 0, 0.8);
}
73.2% {
text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.8);
}
}
/* 导航按钮美化 */
.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: rgb(var(--black-monochrome));
}
.main-page-banner .nav-button {
background-color: rgb(var(--gray-monochrome));
border: 2px solid rgb(var(--bright-accent));
border-radius: 0;
transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
height: min-content;
position: relative;
overflow: hidden;
}
.main-page-banner .nav-button::before {
content: "";
position: absolute;
top: 0;
left: -100%;
width: 100%;
height: 100%;
background: linear-gradient(
90deg,
transparent,
rgba(var(--bright-accent), 0.2),
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(var(--bright-accent), 0.4);
background-color: rgb(var(--bright-accent));
}
.main-page-banner .nav-button a {
display: block;
padding: 1rem;
width: 100%;
text-align: center;
color: rgb(var(--bright-accent));
font-size: 1.1rem;
font-weight: bold;
text-decoration: none !important;
font-family: var(--title-font);
position: relative;
z-index: 1;
}
.main-page-banner .nav-button:hover a {
color: rgb(var(--black-monochrome));
}
/* 四个主类样式迁移 */
/* 公告容器 */
.announcement-container {
background-color: rgb(var(--black-monochrome));
border: 2px solid rgb(var(--bright-accent));
box-shadow: 0 0 10px rgba(var(--bright-accent), 0.2);
margin-bottom: 2rem;
}
.announcement-container .section-title {
background-color: rgb(var(--bright-accent));
color: rgb(var(--black-monochrome));
padding: 0.75rem;
font-family: var(--title-font);
font-size: 1.3rem;
text-align: center;
border-bottom: 2px solid rgb(var(--bright-accent));
}
.announcement-container .announcement-content {
background-color: rgb(var(--gray-monochrome));
color: rgb(var(--white-monochrome));
padding: 1rem;
font-family: var(--body-font);
}
/* 近期页面容器 */
.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: rgb(var(--black-monochrome));
border: 2px solid rgb(var(--bright-accent));
box-shadow: 0 0 10px rgba(var(--bright-accent), 0.2);
margin-bottom: 1rem;
}
.recent-pages-container .section-title {
background-color: rgb(var(--bright-accent));
color: rgb(var(--black-monochrome));
padding: 0.5rem 1rem;
font-family: var(--title-font);
font-weight: bold;
border-left: none;
}
.recent-pages-container .page-list {
background-color: rgb(var(--gray-monochrome));
padding: 0.5rem 1rem;
max-height: 15rem;
overflow-y: auto;
}
.recent-pages-container .page-list a {
color: rgb(var(--bright-accent));
display: block;
padding: 0.3rem 0;
border-bottom: 1px solid rgba(var(--bright-accent), 0.2);
font-family: var(--body-font);
transition: all 0.2s ease;
}
.recent-pages-container .page-list a:hover {
color: rgb(var(--white-monochrome));
padding-left: 0.5rem;
}
.recent-pages-container .see-more {
background-color: rgb(var(--black-monochrome));
border-top: 1px solid rgb(var(--bright-accent));
padding: 0.3rem 1rem;
text-align: right;
}
.recent-pages-container .see-more a {
color: rgb(var(--bright-accent));
font-family: var(--body-font);
}
/* 特色内容容器 */
.featured-content-container {
display: flex;
flex-wrap: wrap;
justify-content: space-between;
width: 100%;
}
.featured-content-container .feature-item {
flex-basis: 48%;
background-color: rgb(var(--black-monochrome));
border: 2px solid rgb(var(--bright-accent));
box-shadow: 0 0 10px rgba(var(--bright-accent), 0.2);
margin-bottom: 1rem;
}
.featured-content-container .section-title {
background-color: rgb(var(--bright-accent));
color: rgb(var(--black-monochrome));
padding: 0.5rem 1rem;
font-family: var(--title-font);
font-weight: bold;
border-left: none;
}
.featured-content-container .feature-content {
background-color: rgb(var(--gray-monochrome));
color: rgb(var(--white-monochrome));
padding: 1rem;
font-family: var(--body-font);
}
.featured-content-container .feature-content .featured-title {
color: rgb(var(--bright-accent));
font-size: 1.2rem;
font-weight: bold;
margin-bottom: 0.5rem;
font-family: var(--title-font);
}
/* 工具和资源容器 */
.tools-and-resources {
margin-bottom: 2rem;
}
.tools-container {
display: grid;
grid-template-columns: 1fr 1fr;
grid-gap: 1rem;
}
.tools-container .tool-item {
background-color: rgb(var(--gray-monochrome));
color: rgb(var(--white-monochrome));
padding: 1rem;
border-left: 4px solid rgb(var(--bright-accent));
border-right: 1px solid rgb(var(--bright-accent));
border-top: 1px solid rgb(var(--bright-accent));
border-bottom: 1px solid rgb(var(--bright-accent));
box-shadow: 0 0 10px rgba(var(--bright-accent), 0.2);
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;
}
.tools-container .tool-item:hover {
transform: translateY(-5px);
box-shadow: 0 5px 15px rgba(var(--bright-accent), 0.4);
}
.tools-container .tool-item .tool-title a {
color: rgb(var(--bright-accent));
font-weight: bold;
font-family: var(--title-font);
}
.tools-container .tool-item .tool-title a:hover {
color: rgb(var(--white-monochrome));
}
/* 目录框样式 */
#toc, .toc {
background-color: rgb(var(--gray-monochrome)) !important;
border: 2px solid rgb(var(--bright-accent)) !important;
padding: 0.5em !important;
font-family: var(--body-font) !important;
}
.toc .toctitle, #toc .toctitle {
background-color: rgb(var(--bright-accent)) !important;
color: rgb(var(--black-monochrome)) !important;
text-align: center !important;
padding: 0.25em !important;
margin: -0.5em -0.5em 0.5em -0.5em !important;
font-weight: bold !important;
}
.toc ul, #toc ul {
margin: 0 !important;
padding: 0 0 0 1.5em !important;
}
.toc a, #toc a {
color: rgb(var(--bright-accent)) !important;
text-decoration: none !important;
}
.toc a:hover, #toc a:hover {
color: rgb(var(--white-monochrome)) !important;
text-decoration: underline !important;
}
.tocnumber {
color: rgb(var(--pale-accent)) !important;
}
/* 搜索框右侧按钮 - 更具体的选择器 */
#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;
}/* 扩大变色龙皮肤中的Logo区域 - 修复版 */
.navbar-brand,
.chameleon-navbar-brand,
.mw-wiki-logo,
.mw-logo-icon {
display: flex !important;
flex-direction: column !important;
justify-content: center !important;
align-items: center !important;
width: 140px !important;
height: 140px !important;
position: relative !important;
padding: 0 !important;
margin: 0 !important;
background-size: contain !important;
background-position: center !important;
z-index: 20 !important;
}
/* 创建一个方形背景 */
.navbar-brand::after,
.chameleon-navbar-brand::after {
content: "";
position: absolute;
width: 140px;
height: 140px;
background-color: rgba(var(--black-monochrome), 0.7);
border: 1px solid rgb(var(--bright-accent));
z-index: -1;
border-radius: 0 0 5px 0;
}
/* 保持其他导航元素在原位 */
.navbar-header,
.chameleon-navbar-header {
display: flex !important;
align-items: flex-start !important;
min-height: auto !important;
}
/* 将导航条推到右侧 */
.navbar > .container,
.chameleon-navbar > .container {
display: flex !important;
align-items: flex-start !important;
}
.navbar-collapse,
.chameleon-navbar-collapse {
margin-top: 10px !important;
}
/* 恢复顶栏分割线 */
.navbar,
.chameleon-navbar {
border-bottom: 1px solid rgb(var(--bright-accent)) !important;
}
/* 确保内部分割线仍然可见 */
.navbar .navbar-nav > li,
.chameleon-navbar .navbar-nav > li {
border-right: 1px solid rgba(var(--bright-accent), 0.3) !important;
}
.navbar .navbar-nav > li:first-child,
.chameleon-navbar .navbar-nav > li:first-child {
border-left: 1px solid rgba(var(--bright-accent), 0.3) !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 {
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;
}
/* 增强Logo区域效果 */
.navbar-brand::after,
.chameleon-navbar-brand::after {
background: linear-gradient(
135deg,
rgba(var(--black-monochrome), 0.9) 0%,
rgba(var(--gray-monochrome), 0.7) 100%
) !important;
box-shadow: 0 5px 15px rgba(0, 0, 0, 0.2) !important;
border: 2px solid rgb(var(--bright-accent)) !important;
transition: all 0.3s ease !important;
}
.navbar-brand:hover::after,
.chameleon-navbar-brand:hover::after {
box-shadow: 0 5px 20px rgba(var(--bright-accent), 0.3) !important;
background: linear-gradient(
135deg,
rgba(var(--black-monochrome), 0.8) 0%,
rgba(var(--gray-monochrome), 0.6) 100%
) !important;
}
/* Logo光晕效果 */
.navbar-brand .mw-wiki-logo,
.chameleon-navbar-brand .mw-wiki-logo {
transition: all 0.3s ease !important;
filter: drop-shadow(0 0 5px rgba(var(--bright-accent), 0.3)) !important;
}
.navbar-brand:hover .mw-wiki-logo,
.chameleon-navbar-brand:hover .mw-wiki-logo {
filter: drop-shadow(0 0 8px rgba(var(--bright-accent), 0.5)) !important;
transform: scale(1.05) !important;
}
/* 整体美化顶栏 */
.navbar,
.chameleon-navbar {
background: linear-gradient(
to bottom,
rgb(var(--black-monochrome)) 0%,
rgba(var(--gray-monochrome), 0.9) 100%
) !important;
box-shadow: 0 2px 10px rgba(0, 0, 0, 0.3) !important;
}
/* 顶栏链接美化 */
.navbar .nav > li > a,
.chameleon-navbar .nav > li > a {
text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.5) !important;
transition: all 0.2s ease !important;
}
.navbar .nav > li > a:hover,
.chameleon-navbar .nav > li > a:hover {
background-color: rgba(var(--bright-accent), 0.2) !important;
box-shadow: inset 0 0 5px rgba(var(--bright-accent), 0.3) !important;
}
/* 当前页面激活状态 */
.navbar .nav > .active > a,
.chameleon-navbar .nav > .active > a {
background-color: rgba(var(--bright-accent), 0.3) !important;
box-shadow: inset 0 0 10px rgba(var(--bright-accent), 0.4) !important;
}
/* 强制显示顶栏边线 */
.navbar,
.navbar-default,
.skin-chameleon .navbar,
.chameleon-navbar {
border-bottom: 2px solid rgb(var(--bright-accent)) !important;
box-shadow: 0 1px 10px rgba(var(--bright-accent), 0.2) !important;
position: relative !important;
z-index: 1000 !important;
}
/* 添加垂直分隔线到导航项目 */
.navbar .navbar-nav > li,
.chameleon-navbar .navbar-nav > li {
position: relative !important;
}
.navbar .navbar-nav > li:not(:last-child)::after,
.chameleon-navbar .navbar-nav > li:not(:last-child)::after {
content: "" !important;
position: absolute !important;
right: 0 !important;
top: 10px !important;
height: calc(100% - 20px) !important;
width: 1px !important;
background-color: rgb(var(--bright-accent)) !important;
opacity: 0.5 !important;
pointer-events: none !important;
}
/* 确保下拉菜单也有边框 */
.navbar .dropdown-menu,
.chameleon-navbar .dropdown-menu {
border: 1px solid rgb(var(--bright-accent)) !important;
}
/* 固定顶栏在任何屏幕尺寸下都可见 */
@media (max-width: 1199px) {
/* 确保顶栏容器始终可见 */
.navbar,
.navbar-default,
.chameleon-navbar,
.skin-chameleon .navbar,
#mw-navigation {
display: block !important;
visibility: visible !important;
opacity: 1 !important;
height: auto !important;
min-height: 50px !important;
width: 100% !important;
position: relative !important;
z-index: 1030 !important;
}
/* 防止顶栏容器折叠 */
.navbar-header,
.chameleon-navbar-header {
float: none !important;
display: block !important;
min-height: 50px !important;
}
/* 防止导航链接消失 */
.navbar-collapse,
.chameleon-navbar-collapse,
.navbar-collapse.collapse,
.chameleon-navbar-collapse.collapse {
display: block !important;
height: auto !important;
padding-bottom: 0 !important;
overflow: visible !important;
border-top: 1px solid rgba(var(--bright-accent), 0.2) !important;
}
/* 确保logo可见 */
.navbar-brand,
.chameleon-navbar-brand,
.mw-wiki-logo {
display: block !important;
float: left !important;
}
/* 确保菜单项可见 */
.navbar-nav,
.chameleon-navbar-nav {
float: left !important;
margin: 0 !important;
}
.navbar-nav > li,
.chameleon-navbar-nav > li {
float: left !important;
}
/* 正确显示下拉菜单 */
.navbar-nav .open .dropdown-menu,
.chameleon-navbar-nav .open .dropdown-menu {
position: absolute !important;
float: left !important;
background-color: rgb(var(--black-monochrome)) !important;
border: 1px solid rgb(var(--bright-accent)) !important;
}
}
/* 修复极小屏幕上的布局问题 */
@media (max-width: 768px) {
/* 在较小屏幕上启用折叠菜单 */
.navbar-toggle,
.chameleon-navbar-toggle {
display: block !important;
visibility: visible !important;
float: right !important;
margin-right: 15px !important;
padding: 9px 10px !important;
background-color: transparent !important;
border: 1px solid rgb(var(--bright-accent)) !important;
}
/* 使导航菜单垂直排列 */
.navbar-nav,
.chameleon-navbar-nav {
width: 100% !important;
}
.navbar-nav > li,
.chameleon-navbar-nav > li {
float: none !important;
display: block !important;
width: 100% !important;
}
/* 移除垂直分割线 */
.navbar .navbar-nav > li:not(:last-child)::after,
.chameleon-navbar .navbar-nav > li:not(:last-child)::after {
display: none !important;
}
/* 添加水平分割线 */
.navbar .navbar-nav > li:not(:last-child),
.chameleon-navbar .navbar-nav > li:not(:last-child) {
border-bottom: 1px solid rgba(var(--bright-accent), 0.2) !important;
}
}
/* [[Category:在模板名字空间下的CSS页面]] */
Loading comments...