/* ============================================================ * 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; } }