build / build-push (push) Successful in 51s
线上 10027 首页配了 home_layout 后走 themes/common 通用骨架,派生皮肤只换了页头页脚, 正文仍是骨架内置蓝灰卡(外加 cherry-bloom 的粉紫配色),用户判定"完全不能用"。 - 新增 academic-navy(学府藏蓝,an-)/campus-azure(青蓝校园,cz-):以 scholar-blue 为基座, 各自自带 fragments/home-blocks.html 与 home.html 分发,news_grid/media_focus/compact/ image_wall/card/ticker/gallery/links 八种区块形态全部由皮肤渲染,未知类型才回落通用骨架 - 两套皮肤 :root 把私有变量别名到 --primary/--text/--card-bg/--border/--radius 契约变量; 中文行锁 nowrap+min-width:0+ellipsis,grid 轨道用 minmax(0,1fr) 防窄视口压塌 - 新闻背景带 .an-sec-bg/.cz-sec-bg 压 z-index:0、卡片抬到 1:绝对定位层默认画在普通流之上, 不抬起会整张卡片泛成底图色(无头截图实测) - common 骨架空态守卫改包 th:block(th:replace 优先级 100 先于 th:if 300) - 删除 cherry-bloom/violet-iris;sql/upgrade_theme_academic_skins.sql 幂等改指存量站点 (站点缓存 CacheNames.SITE TTL 30 分钟,改库后需重启或在管理端重存站点) - 测试:AcademicSkinContractTest(区块自带/分发/CJK 行/变量别名/主色必须学术蓝/背景带层级/ 预览图不得沿用基座)、HomeBlocksCssContractTest、PortalHomeLayoutIT 端到端断言零 plb- 输出; 全量 383 项通过
618 lines
19 KiB
CSS
618 lines
19 KiB
CSS
/* ============================================================
|
||
* mint-breeze 皮肤包样式(blue-white 派生,docs/10 皮肤包契约 §5)
|
||
* 清新薄荷风:薄荷青品牌色 + 圆角 12px + 柔和阴影 + 卡片网格列表
|
||
* + 几何圆点装饰与大留白;无纹理、无通栏大图、无复杂动效。
|
||
* 轮播图设计尺寸约定:1920×560(管理端上传端按此引导裁剪)。
|
||
* ============================================================ */
|
||
:root {
|
||
--primary: #17A2A2;
|
||
--primary-dark: #0F7C7C;
|
||
--primary-light: #E6F6F6;
|
||
--text: #2F3E3C;
|
||
--text-light: #7D8F8C;
|
||
--bg: #F5FBFA;
|
||
--card-bg: #FFFFFF;
|
||
--border: #DDF0EE;
|
||
--radius: 12px;
|
||
--radius-sm: 8px;
|
||
--radius-pill: 999px;
|
||
--shadow-soft: 0 6px 18px rgba(15, 124, 124, .08);
|
||
--shadow-hover: 0 12px 28px rgba(15, 124, 124, .14);
|
||
--max-width: 1200px;
|
||
}
|
||
|
||
* { box-sizing: border-box; }
|
||
body {
|
||
margin: 0;
|
||
font-family: "PingFang SC", "Microsoft YaHei", "Helvetica Neue", Arial, sans-serif;
|
||
color: var(--text);
|
||
background: var(--bg);
|
||
}
|
||
a { color: inherit; text-decoration: none; transition: color .15s ease; }
|
||
a:hover { color: var(--primary); }
|
||
img { max-width: 100%; }
|
||
time, .item-meta { color: var(--text-light); font-size: 13px; }
|
||
.empty { color: var(--text-light); text-align: center; padding: 32px 0; }
|
||
|
||
/* ===== 头部:细线顶栏 + 居中品牌行 + 白底导航(桌面吸顶) ===== */
|
||
.site-header {
|
||
position: sticky;
|
||
top: 0;
|
||
z-index: 90;
|
||
background: var(--card-bg);
|
||
box-shadow: var(--shadow-soft);
|
||
}
|
||
/* 细线顶栏:院系切换在左、站内搜索在右;院系未配置时搜索仍靠右 */
|
||
.top-bar {
|
||
display: flex;
|
||
align-items: center;
|
||
justify-content: flex-end;
|
||
gap: 16px;
|
||
padding: 7px max(16px, calc((100% - var(--max-width)) / 2 + 16px));
|
||
border-bottom: 1px solid var(--border);
|
||
font-size: 13px;
|
||
}
|
||
.top-bar .site-colleges { margin-right: auto; }
|
||
/* 居中品牌行:两侧几何圆点装饰(纯 CSS,无纹理) */
|
||
.brand-row {
|
||
position: relative;
|
||
display: flex;
|
||
justify-content: center;
|
||
padding: 18px 16px 14px;
|
||
}
|
||
.brand-row::before, .brand-row::after {
|
||
content: "";
|
||
position: absolute;
|
||
top: 50%;
|
||
transform: translateY(-50%);
|
||
width: 46px;
|
||
height: 10px;
|
||
opacity: .45;
|
||
background-image:
|
||
radial-gradient(circle, var(--primary) 2.2px, transparent 2.8px),
|
||
radial-gradient(circle, var(--primary) 1.6px, transparent 2.2px),
|
||
radial-gradient(circle, var(--primary) 1.1px, transparent 1.7px);
|
||
background-repeat: no-repeat;
|
||
background-position: left center, center center, right center;
|
||
}
|
||
.brand-row::before { left: 6%; }
|
||
.brand-row::after { right: 6%; }
|
||
.site-brand { display: flex; align-items: center; gap: 14px; }
|
||
.site-logo { height: 52px; }
|
||
.site-name {
|
||
font-size: 28px;
|
||
font-weight: 600;
|
||
letter-spacing: .02em;
|
||
color: var(--primary-dark);
|
||
}
|
||
.site-name:hover { color: var(--primary); }
|
||
.site-search { display: flex; align-items: center; }
|
||
.site-search input {
|
||
border: 1px solid var(--border);
|
||
border-right: none;
|
||
border-radius: var(--radius-pill) 0 0 var(--radius-pill);
|
||
padding: 7px 16px;
|
||
width: 220px;
|
||
outline: none;
|
||
background: var(--card-bg);
|
||
color: var(--text);
|
||
transition: border-color .15s ease, box-shadow .15s ease;
|
||
}
|
||
.site-search input:focus {
|
||
border-color: var(--primary);
|
||
box-shadow: 0 0 0 3px var(--primary-light);
|
||
}
|
||
.site-search button {
|
||
border: none;
|
||
background: var(--primary);
|
||
color: #fff;
|
||
padding: 7px 20px;
|
||
border-radius: 0 var(--radius-pill) var(--radius-pill) 0;
|
||
cursor: pointer;
|
||
transition: background .15s ease;
|
||
}
|
||
.site-search button:hover { background: var(--primary-dark); }
|
||
|
||
/* ===== 专业院系下拉(院系子站切换):胶囊开关 + 圆角白卡面板 ===== */
|
||
.site-colleges { position: relative; }
|
||
.site-colleges .colleges-toggle {
|
||
display: inline-flex;
|
||
align-items: center;
|
||
gap: 6px;
|
||
border: 1px solid var(--border);
|
||
border-radius: var(--radius-pill);
|
||
padding: 5px 14px;
|
||
cursor: pointer;
|
||
color: var(--primary-dark);
|
||
font-weight: 600;
|
||
white-space: nowrap;
|
||
transition: border-color .15s ease, background .15s ease;
|
||
}
|
||
.site-colleges:hover .colleges-toggle {
|
||
border-color: var(--primary);
|
||
background: var(--primary-light);
|
||
}
|
||
.site-colleges .colleges-arrow { font-style: normal; font-size: 12px; color: var(--primary); }
|
||
.site-colleges .colleges-menu {
|
||
display: none;
|
||
position: absolute;
|
||
top: 100%;
|
||
left: 0;
|
||
min-width: 200px;
|
||
max-height: 420px;
|
||
overflow-y: auto;
|
||
margin: 0;
|
||
padding: 8px 0;
|
||
list-style: none;
|
||
background: var(--card-bg);
|
||
border: 1px solid var(--border);
|
||
border-radius: var(--radius);
|
||
box-shadow: var(--shadow-hover);
|
||
z-index: 110;
|
||
}
|
||
.site-colleges:hover .colleges-menu { display: block; }
|
||
.site-colleges .colleges-menu li a {
|
||
display: block;
|
||
margin: 0 8px;
|
||
padding: 9px 12px;
|
||
border-radius: var(--radius-sm);
|
||
color: var(--text);
|
||
white-space: nowrap;
|
||
}
|
||
.site-colleges .colleges-menu li a:hover { background: var(--primary-light); color: var(--primary-dark); }
|
||
.site-colleges .colleges-menu li.active a { color: var(--primary); font-weight: 600; }
|
||
|
||
/* ===== 主导航:白底 + 柔和文字层级,当前项圆点标记 ===== */
|
||
.site-nav { background: var(--card-bg); border-top: 1px solid var(--border); }
|
||
.site-nav ul {
|
||
max-width: var(--max-width);
|
||
margin: 0 auto;
|
||
padding: 0 16px;
|
||
list-style: none;
|
||
display: flex;
|
||
justify-content: center;
|
||
flex-wrap: wrap;
|
||
}
|
||
.site-nav li a {
|
||
position: relative;
|
||
display: block;
|
||
padding: 13px 20px;
|
||
color: var(--text);
|
||
font-weight: 500;
|
||
}
|
||
.site-nav li a:hover { color: var(--primary); }
|
||
.site-nav li.active a { color: var(--primary); font-weight: 600; }
|
||
/* 几何圆点:当前栏目下方的小圆点 */
|
||
.site-nav li.active > a::before {
|
||
content: "";
|
||
position: absolute;
|
||
left: 50%;
|
||
bottom: 5px;
|
||
width: 5px;
|
||
height: 5px;
|
||
transform: translateX(-50%);
|
||
border-radius: 50%;
|
||
background: var(--primary);
|
||
}
|
||
|
||
/* ===== 二级下拉导航:圆角白卡面板 ===== */
|
||
.site-nav > ul > li { position: relative; }
|
||
.site-nav li.has-sub > a::after { content: " ▾"; font-size: 12px; opacity: .7; }
|
||
.site-nav ul.sub-nav {
|
||
display: none;
|
||
position: absolute;
|
||
top: 100%;
|
||
left: 0;
|
||
min-width: 168px;
|
||
max-width: none;
|
||
margin: 0;
|
||
padding: 8px 0;
|
||
list-style: none;
|
||
background: var(--card-bg);
|
||
border: 1px solid var(--border);
|
||
border-radius: var(--radius);
|
||
box-shadow: var(--shadow-hover);
|
||
z-index: 100;
|
||
}
|
||
.site-nav li:hover > .sub-nav { display: block; }
|
||
.site-nav .sub-nav li a {
|
||
margin: 0 8px;
|
||
padding: 9px 12px;
|
||
border-radius: var(--radius-sm);
|
||
color: var(--text);
|
||
font-weight: 400;
|
||
white-space: nowrap;
|
||
background: none;
|
||
}
|
||
.site-nav .sub-nav li a:hover { background: var(--primary-light); color: var(--primary-dark); }
|
||
.site-nav .sub-nav li.active a { color: var(--primary); font-weight: 600; }
|
||
|
||
/* ===== 首页轮播:容器内圆角卡片(非通栏),几何圆点指示器 ===== */
|
||
.banner {
|
||
position: relative;
|
||
grid-column: 1 / -1; /* .home-main 是三列网格,轮播必须跨满整行,否则被塞进首列变窄条 */
|
||
width: min(var(--max-width), calc(100% - 32px));
|
||
margin: 24px auto 0;
|
||
border-radius: var(--radius);
|
||
overflow: hidden;
|
||
box-shadow: var(--shadow-soft);
|
||
}
|
||
.banner-slides { position: relative; height: 400px; }
|
||
.banner-slide { display: none; position: absolute; inset: 0; }
|
||
.banner-slide.active { display: block; }
|
||
.banner-slide img { width: 100%; height: 100%; object-fit: cover; }
|
||
.banner-title {
|
||
position: absolute;
|
||
left: 0; right: 0; bottom: 0;
|
||
padding: 14px 20px;
|
||
color: #fff;
|
||
font-weight: 500;
|
||
background: linear-gradient(transparent, rgba(20, 63, 61, .62));
|
||
}
|
||
.banner-dots {
|
||
position: absolute;
|
||
bottom: 14px; right: 20px;
|
||
display: flex; gap: 8px;
|
||
}
|
||
.banner-dots button {
|
||
width: 9px; height: 9px;
|
||
border-radius: 50%;
|
||
border: none;
|
||
background: rgba(255, 255, 255, .55);
|
||
cursor: pointer;
|
||
transition: background .15s ease, transform .15s ease;
|
||
}
|
||
.banner-dots button.active { background: #fff; transform: scale(1.25); }
|
||
|
||
/* ===== 首页区块:卡片网格(头条通栏 + 栏目块一行 3 张) ===== */
|
||
.home-main {
|
||
max-width: var(--max-width);
|
||
margin: 0 auto;
|
||
padding: 28px 16px 56px;
|
||
display: grid;
|
||
grid-template-columns: repeat(3, minmax(0, 1fr));
|
||
gap: 24px;
|
||
}
|
||
.top-strip, .category-block {
|
||
background: var(--card-bg);
|
||
border-radius: var(--radius);
|
||
box-shadow: var(--shadow-soft);
|
||
padding: 24px;
|
||
}
|
||
.top-strip { grid-column: 1 / -1; }
|
||
/* 栏目标题:几何圆点标记(环形点),标题中等粗细、层级柔和 */
|
||
.section-title, .block-head h2 {
|
||
margin: 0 0 14px;
|
||
font-size: 19px;
|
||
font-weight: 600;
|
||
letter-spacing: .02em;
|
||
display: flex;
|
||
align-items: center;
|
||
gap: 10px;
|
||
}
|
||
.section-title::before, .block-head h2::before {
|
||
content: "";
|
||
flex: none;
|
||
width: 9px;
|
||
height: 9px;
|
||
border-radius: 50%;
|
||
background: var(--primary);
|
||
box-shadow: 0 0 0 3.5px var(--primary-light);
|
||
}
|
||
.block-head { display: flex; align-items: center; justify-content: space-between; }
|
||
.more {
|
||
flex: none;
|
||
font-size: 13px;
|
||
color: var(--text-light);
|
||
padding: 4px 12px;
|
||
border: 1px solid var(--border);
|
||
border-radius: var(--radius-pill);
|
||
transition: color .15s ease, border-color .15s ease, background .15s ease;
|
||
}
|
||
.more:hover {
|
||
color: var(--primary-dark);
|
||
border-color: var(--primary);
|
||
background: var(--primary-light);
|
||
}
|
||
.top-strip ul, .block-list { list-style: none; margin: 0; padding: 0; }
|
||
.top-strip li, .block-list li {
|
||
display: flex;
|
||
align-items: center;
|
||
justify-content: space-between;
|
||
gap: 12px;
|
||
padding: 10px 0;
|
||
border-bottom: 1px dashed var(--border);
|
||
}
|
||
.top-strip li:last-child, .block-list li:last-child { border-bottom: none; }
|
||
.top-strip li a, .block-list li a {
|
||
flex: 1;
|
||
overflow: hidden;
|
||
text-overflow: ellipsis;
|
||
white-space: nowrap;
|
||
}
|
||
.top-badge {
|
||
flex: none;
|
||
color: var(--primary-dark);
|
||
background: var(--primary-light);
|
||
font-size: 12px;
|
||
font-weight: 500;
|
||
padding: 2px 10px;
|
||
border-radius: var(--radius-pill);
|
||
}
|
||
|
||
/* ===== 列表页:卡片网格(默认一行 3 张;listLayout=row 切换行列表) ===== */
|
||
.list-main {
|
||
max-width: var(--max-width);
|
||
margin: 0 auto;
|
||
padding: 28px 16px 56px;
|
||
}
|
||
.breadcrumb { color: var(--text-light); font-size: 13px; margin-bottom: 14px; }
|
||
.breadcrumb a { margin-right: 8px; }
|
||
.breadcrumb span { margin-left: 8px; }
|
||
.page-title {
|
||
font-size: 24px;
|
||
font-weight: 600;
|
||
letter-spacing: .02em;
|
||
margin: 0 0 22px;
|
||
display: flex;
|
||
align-items: center;
|
||
gap: 10px;
|
||
}
|
||
.page-title::before {
|
||
content: "";
|
||
flex: none;
|
||
width: 9px;
|
||
height: 9px;
|
||
border-radius: 50%;
|
||
background: var(--primary);
|
||
box-shadow: 0 0 0 3.5px var(--primary-light);
|
||
}
|
||
.article-list {
|
||
list-style: none;
|
||
margin: 0;
|
||
padding: 0;
|
||
display: grid;
|
||
grid-template-columns: repeat(3, minmax(0, 1fr));
|
||
gap: 20px;
|
||
}
|
||
.article-list li {
|
||
background: var(--card-bg);
|
||
border-radius: var(--radius);
|
||
box-shadow: var(--shadow-soft);
|
||
padding: 22px 20px;
|
||
display: flex;
|
||
flex-direction: column;
|
||
gap: 10px;
|
||
transition: transform .18s ease, box-shadow .18s ease;
|
||
}
|
||
.article-list li:hover { transform: translateY(-3px); box-shadow: var(--shadow-hover); }
|
||
.item-title {
|
||
font-size: 16px;
|
||
font-weight: 600;
|
||
line-height: 1.55;
|
||
overflow: hidden;
|
||
display: -webkit-box;
|
||
-webkit-line-clamp: 2;
|
||
-webkit-box-orient: vertical;
|
||
}
|
||
.article-list li:hover .item-title { color: var(--primary); }
|
||
.item-summary {
|
||
color: var(--text-light);
|
||
font-size: 13.5px;
|
||
line-height: 1.7;
|
||
margin: 0;
|
||
flex: 1;
|
||
overflow: hidden;
|
||
display: -webkit-box;
|
||
-webkit-line-clamp: 3;
|
||
-webkit-box-orient: vertical;
|
||
}
|
||
.item-meta {
|
||
display: flex;
|
||
gap: 10px;
|
||
align-items: center;
|
||
margin-top: auto;
|
||
padding-top: 10px;
|
||
border-top: 1px dashed var(--border);
|
||
}
|
||
/* 布局变体:传统行列表(themeParams listLayout=row,见 list.html classappend) */
|
||
.list-rows .article-list { display: block; }
|
||
.list-rows .article-list li { display: block; margin-bottom: 16px; }
|
||
.list-rows .item-summary { -webkit-line-clamp: 2; flex: none; }
|
||
.list-rows .item-meta { border-top: none; padding-top: 0; margin-top: 6px; }
|
||
|
||
/* ===== 分页:胶囊页码 ===== */
|
||
.pagination {
|
||
display: flex;
|
||
gap: 8px;
|
||
justify-content: center;
|
||
flex-wrap: wrap;
|
||
padding: 28px 0 4px;
|
||
}
|
||
.pagination a {
|
||
min-width: 36px;
|
||
text-align: center;
|
||
padding: 6px 12px;
|
||
border: 1px solid var(--border);
|
||
border-radius: var(--radius-pill);
|
||
background: var(--card-bg);
|
||
font-size: 14px;
|
||
transition: color .15s ease, border-color .15s ease, background .15s ease;
|
||
}
|
||
.pagination a:hover { color: var(--primary-dark); border-color: var(--primary); }
|
||
.pagination a.active { background: var(--primary); color: #fff; border-color: var(--primary); }
|
||
|
||
/* ===== 详情/单页:整卡承载,正文舒适行距 ===== */
|
||
.detail-main {
|
||
max-width: var(--max-width);
|
||
margin: 0 auto;
|
||
padding: 28px 16px 56px;
|
||
}
|
||
.detail-main .article {
|
||
background: var(--card-bg);
|
||
border-radius: var(--radius);
|
||
box-shadow: var(--shadow-soft);
|
||
padding: 36px 40px;
|
||
}
|
||
.article-title {
|
||
margin: 4px 0 14px;
|
||
font-size: 26px;
|
||
font-weight: 600;
|
||
letter-spacing: .02em;
|
||
text-align: center;
|
||
}
|
||
.article-meta {
|
||
display: flex;
|
||
gap: 18px;
|
||
justify-content: center;
|
||
flex-wrap: wrap;
|
||
color: var(--text-light);
|
||
font-size: 13px;
|
||
padding-bottom: 18px;
|
||
border-bottom: 1px solid var(--border);
|
||
}
|
||
.article-content { line-height: 1.9; font-size: 16px; padding-top: 22px; word-break: break-word; }
|
||
.article-content img { height: auto; border-radius: var(--radius-sm); }
|
||
.article-content table { border-collapse: collapse; width: 100%; }
|
||
.article-content table td, .article-content table th { border: 1px solid var(--border); padding: 6px 10px; }
|
||
.article-sibling { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 20px; font-size: 14px; }
|
||
.article-sibling a {
|
||
flex: 1 1 320px;
|
||
overflow: hidden;
|
||
text-overflow: ellipsis;
|
||
white-space: nowrap;
|
||
background: var(--card-bg);
|
||
border-radius: var(--radius);
|
||
box-shadow: var(--shadow-soft);
|
||
padding: 14px 18px;
|
||
transition: transform .18s ease, box-shadow .18s ease, color .15s ease;
|
||
}
|
||
.article-sibling a:hover {
|
||
color: var(--primary-dark);
|
||
transform: translateY(-2px);
|
||
box-shadow: var(--shadow-hover);
|
||
}
|
||
|
||
/* ===== 页脚:浅薄荷底 + 圆点分隔条(三态渲染逻辑不动) ===== */
|
||
.site-footer {
|
||
margin-top: 40px;
|
||
background: var(--primary-light);
|
||
color: var(--text);
|
||
border-top: 1px solid var(--border);
|
||
}
|
||
.site-footer::before {
|
||
content: "";
|
||
display: block;
|
||
height: 8px;
|
||
width: min(var(--max-width), calc(100% - 32px));
|
||
margin: 18px auto 0;
|
||
background-image: radial-gradient(circle, var(--primary) 1.6px, transparent 2.2px);
|
||
background-size: 16px 8px;
|
||
background-repeat: repeat-x;
|
||
opacity: .4;
|
||
}
|
||
.footer-links {
|
||
max-width: var(--max-width);
|
||
margin: 0 auto;
|
||
padding: 18px 16px 0;
|
||
display: flex;
|
||
flex-direction: column;
|
||
gap: 10px;
|
||
}
|
||
.links-group { display: flex; flex-wrap: wrap; gap: 6px 14px; align-items: center; font-size: 13px; }
|
||
.group-name { font-weight: 600; margin-right: 4px; color: var(--primary-dark); }
|
||
.links-group a {
|
||
padding: 3px 10px;
|
||
border-radius: var(--radius-pill);
|
||
transition: background .15s ease, color .15s ease;
|
||
}
|
||
.links-group a:hover { background: rgba(255, 255, 255, .75); color: var(--primary-dark); }
|
||
.footer-info {
|
||
max-width: var(--max-width);
|
||
margin: 0 auto;
|
||
padding: 14px 16px 24px;
|
||
text-align: center;
|
||
font-size: 13px;
|
||
color: var(--text-light);
|
||
}
|
||
.footer-info p { margin: 4px 0; }
|
||
|
||
/* B4 友链 Logo:与名称并排小图(高度 ~20px,垂直居中;过宽截断不撑破页脚) */
|
||
.links-group a .link-logo {
|
||
height: 20px;
|
||
width: auto;
|
||
max-width: 64px;
|
||
object-fit: contain;
|
||
vertical-align: middle;
|
||
margin-right: 4px;
|
||
border-radius: 4px;
|
||
}
|
||
|
||
/* ===== 平板(≤992px):网格降为两列,隐藏品牌行圆点装饰 ===== */
|
||
@media (max-width: 992px) {
|
||
.home-main { grid-template-columns: repeat(2, minmax(0, 1fr)); }
|
||
.article-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
|
||
.brand-row::before, .brand-row::after { display: none; }
|
||
}
|
||
|
||
/* ===== 移动端(≤768px):取消吸顶,网格单列,导航横向滑动 ===== */
|
||
@media (max-width: 768px) {
|
||
.site-header { position: static; }
|
||
.top-bar { padding: 8px 14px; justify-content: flex-start; flex-wrap: wrap; }
|
||
.top-bar .site-colleges { margin-right: 0; }
|
||
.site-search { flex: 1; }
|
||
.site-search input { flex: 1; width: auto; min-width: 0; }
|
||
.brand-row { padding: 14px 16px 10px; }
|
||
.site-logo { height: 40px; }
|
||
.site-name { font-size: 22px; }
|
||
.site-nav ul {
|
||
justify-content: flex-start;
|
||
flex-wrap: nowrap;
|
||
overflow-x: auto;
|
||
-webkit-overflow-scrolling: touch;
|
||
}
|
||
.banner-slides { height: 200px; }
|
||
.home-main { grid-template-columns: minmax(0, 1fr); padding: 18px 14px 40px; }
|
||
.article-list { grid-template-columns: minmax(0, 1fr); }
|
||
.detail-main .article { padding: 22px 16px; }
|
||
.article-title { font-size: 21px; }
|
||
/* 触屏无 hover:子菜单静态平铺(缩进列表),不做浮层 */
|
||
.site-nav ul.sub-nav {
|
||
display: block;
|
||
position: static;
|
||
border: none;
|
||
box-shadow: none;
|
||
background: transparent;
|
||
min-width: 0;
|
||
padding: 0 0 6px;
|
||
}
|
||
.site-nav .sub-nav li a { margin: 0; padding: 8px 16px 8px 34px; border-radius: 0; color: var(--text-light); }
|
||
.site-nav .sub-nav li a:hover { background: var(--primary-light); color: var(--primary-dark); }
|
||
}
|
||
|
||
|
||
/* ===== 左侧栏目导航(docs/11):有二级节点的模块,栏目/文章页左侧展示兄弟目录 ===== */
|
||
.list-main.has-sidenav, .detail-main.has-sidenav { display: flex; align-items: flex-start; gap: 24px; }
|
||
.has-sidenav .list-body { flex: 1; min-width: 0; }
|
||
.side-nav { flex: none; width: 220px; background: var(--card-bg, #fff); border: 1px solid var(--border); overflow: hidden; }
|
||
.side-nav-head { background: var(--primary); color: #fff; font-size: 20px; font-weight: 700; text-align: center; padding: 18px 12px; letter-spacing: 2px; }
|
||
.side-nav-list { list-style: none; margin: 0; padding: 0; }
|
||
.side-nav-item + .side-nav-item { border-top: 1px dashed var(--border); }
|
||
.side-nav-item a { display: block; padding: 12px 16px; color: var(--text); text-decoration: none; font-size: 15px; transition: background .15s ease, color .15s ease; }
|
||
.side-nav-item a:hover { color: var(--primary); background: var(--bg); }
|
||
.side-nav-item.active a { background: var(--primary); color: #fff; font-weight: 600; text-decoration: none; }
|
||
/* 顶导航二级下拉当前项高亮(docs/11 顺带) */
|
||
.site-nav ul.sub-nav li.active a { color: var(--primary); }
|
||
@media (max-width: 768px) {
|
||
.list-main.has-sidenav, .detail-main.has-sidenav { flex-direction: column; gap: 12px; }
|
||
.side-nav { width: 100%; }
|
||
.side-nav-list { display: flex; overflow-x: auto; -webkit-overflow-scrolling: touch; }
|
||
.side-nav-item { flex: none; }
|
||
.side-nav-item + .side-nav-item { border-top: none; border-left: 1px dashed var(--border); }
|
||
.side-nav-item a { white-space: nowrap; }
|
||
}
|
||
@media print {
|
||
.side-nav { display: none; }
|
||
.list-main.has-sidenav, .detail-main.has-sidenav { display: block; }
|
||
}
|