fix(footer): align template_1 shell with Zibll 1:1

Rewrite footer markup to zib_footer_con contract: single adaptive logo
(white-src/dark-src), fcode-links HTML primary, float third column,
hidden-xs, toggle-radius contacts, miniimg structure, customize-first
footer-conter. Restyle zibll-shell CSS and drop conflicting site-footer
BEM padding so filled footer data matches Zibll layout.
This commit is contained in:
kate522 committed 2026-07-13 07:46:19 +08:00
1 parent fabff49d11
commit 1e37da60c9
11 files changed
+466 -597

No files matched your search

+8 -271
View File
@@ -1,289 +1,25 @@
/* ============================================================
* AKSRT Footer — v4.0 Zibll-Inspired
*
* 包含:
* - 页脚主体(Bootstrap Grid)
* - 浮动右侧按钮组
* - 移动端底部 Tab 栏
* AKSRT Footer utilities — float buttons start + device helpers
* Main template_1 shell: zibll-shell.css
* Tabbar / float details: part-2.css+
* ============================================================ */
/* ============================================================
* 页脚主体
* ============================================================ */
:root {
--aksrt-footer-tabbar-height: 49px;
}
.site-footer {
margin-top: auto;
background: var(--footer-bg, var(--surface-1));
border-top: 1px solid rgba(255, 255, 255, 0.55);
padding: 34px 30px 30px;
}
.site-footer__inner {
max-width: var(--container);
margin: 0 auto;
padding: 0 16px;
}
@media (min-width: 768px) {
.site-footer__inner {
padding: 0 24px;
}
}
.site-footer__grid {
padding-bottom: 32px;
}
.site-footer__brand {
margin-bottom: 24px;
}
.site-footer__title {
font-size: 1rem;
font-weight: 700;
margin: 0 0 12px;
color: var(--color-ink);
}
.site-footer__desc {
font-size: 14px;
color: var(--color-ink-4);
line-height: 1.6;
margin: 0 0 16px;
max-width: 360px;
}
.site-footer__col {
margin-bottom: 24px;
}
.site-footer__col ul {
list-style: none;
margin: 0;
padding: 0;
}
.site-footer__col li {
margin-bottom: 8px;
}
.site-footer__col a {
font-size: 14px;
color: var(--footer-color, var(--color-ink-3));
transition: color 0.15s ease;
}
.site-footer__col a:hover {
color: var(--focus-color, var(--color-primary));
}
/* 社交链接行 */
.social-row {
display: flex;
flex-wrap: wrap;
gap: 8px;
margin-bottom: 16px;
}
.social-row a {
display: inline-flex;
align-items: center;
justify-content: center;
width: 36px;
height: 36px;
border-radius: 50%;
background: var(--surface-4);
border: none;
box-shadow: var(--shadow-sm);
color: var(--color-ink-3);
transition: background 0.2s, color 0.2s, transform 0.2s, box-shadow 0.2s;
}
.social-row a:hover {
background: var(--color-primary);
color: #fff;
transform: translateY(-2px);
}
.social-row .social-icon-link {
background: var(--surface-3);
color: var(--color-ink-3);
}
.social-row .social-icon-link:hover {
background: var(--color-primary);
color: #fff;
}
/* 友情链接 */
.site-footer__friends {
margin-top: 16px;
}
.site-footer__friends-title {
font-size: 0.8125rem;
font-weight: 600;
color: var(--color-ink-4);
margin: 0 0 8px;
}
.site-footer__friends-list {
display: flex;
flex-wrap: wrap;
gap: 6px 12px;
}
.site-footer__friends-list a {
font-size: 0.8125rem;
color: var(--color-ink-4);
}
.site-footer__friends-list a:hover {
color: var(--color-primary);
}
/* 底部栏 */
.site-footer__bottom {
border-top: 1px solid var(--color-line);
padding: 20px 0;
text-align: center;
}
.site-footer__filings {
display: flex;
justify-content: center;
gap: 16px;
margin-bottom: 8px;
flex-wrap: wrap;
}
.site-footer__filings a {
font-size: 0.75rem;
color: var(--color-ink-4);
}
.site-footer__filings a:hover {
color: var(--color-primary);
}
.site-footer__copyright {
font-size: 12px;
color: var(--color-ink-4);
margin: 0;
}
/* §2.3 三列结构化字段 */
/* 品牌 Logo — day/night visibility lives in zibll-shell.css */
.site-footer__logo {
margin-bottom: 16px;
}
.site-footer__logo-img {
max-height: 48px;
width: auto;
}
/* 标准联系项 */
.site-footer__contact-std {
display: flex;
flex-wrap: wrap;
align-items: center;
gap: 10px;
margin: 12px 0;
}
.site-footer__contact-item {
display: inline-flex;
align-items: center;
justify-content: center;
width: 36px;
height: 36px;
border-radius: 50%;
background: var(--surface-4, rgba(0,0,0,.05));
border: none;
box-shadow: var(--shadow-sm);
color: var(--color-ink-3, #888);
font-size: 16px;
position: relative;
cursor: pointer;
text-decoration: none;
transition: background .2s, color .2s, box-shadow .2s;
}
.site-footer__contact-item:hover,
.site-footer__contact-item:focus {
background: var(--color-primary);
color: #fff;
}
.site-footer__contact-hover {
display: none;
position: absolute;
bottom: calc(100% + 10px);
left: 50%;
transform: translateX(-50%);
padding: 8px;
background: var(--surface-1, #fff);
border: none;
border-radius: 12px;
box-shadow: var(--shadow-lg);
z-index: 10;
white-space: nowrap;
}
.site-footer__contact-hover img {
width: 120px;
height: 120px;
object-fit: contain;
border-radius: 4px;
}
.site-footer__contact-item:hover .site-footer__contact-hover,
.site-footer__contact-item:focus .site-footer__contact-hover {
display: block;
}
/* 自定义代码区域 */
.site-footer__custom-code,
.site-footer__customize-code {
margin-top: 8px;
font-size: 0.85rem;
color: var(--color-ink-4, #999);
}
/* 二维码图片组 */
.site-footer__mini-qr {
display: flex;
justify-content: center;
gap: 24px;
padding: 20px 0;
border-top: 1px solid var(--color-line, #eee);
}
.site-footer__mini-qr-item {
text-align: center;
}
.site-footer__mini-qr-item img {
width: 80px;
height: 80px;
object-fit: contain;
border-radius: 6px;
border: 1px solid var(--color-line, #eee);
}
.site-footer__mini-qr-item span {
display: block;
margin-top: 6px;
font-size: 12px;
color: var(--color-ink-4, #999);
}
/* 设备可见性工具类 */
/* Device visibility utility classes */
@media (max-width: 767px) {
.hide-on-mobile { display: none !important; }
.hidden-xs { display: none !important; }
}
@media (min-width: 768px) {
.hide-on-desktop { display: none !important; }
.hide-on-pc { display: none !important; }
}
/* ============================================================
* 浮动右侧按钮组(模仿 zibll float-right)
* 浮动右侧按钮组(模仿 zibll float-right)— continued in part-2
* ============================================================ */
/* 对齐 zibll: bottom 60px, z-index 1030 */
.float-right-btns {
@@ -295,3 +31,4 @@
flex-direction: column;
gap: 8px;
transition: opacity 0.3s ease;
}
+1
View File
@@ -139,6 +139,7 @@ body.dark-theme #float-theme-toggle .float-btn__icon-sun {
}
/* 有 tabbar 时页脚需要额外底部间距 */
.footer,
.site-footer {
padding-bottom: calc(var(--aksrt-footer-tabbar-height) + env(safe-area-inset-bottom, 0px));
}
+111 -81
View File
@@ -1,5 +1,6 @@
/**
* Footer — Zibll template_1 shell (list-inline)
* Footer — Zibll template_1 shell (list-inline + float third column)
* Contract: zibll/css/main.css footer block + zib_footer_con markup
*/
.footer {
color: var(--footer-color, var(--color-ink-4));
@@ -7,7 +8,6 @@
padding: 30px;
font-size: 13px;
margin-top: auto;
border-top: 1px solid rgba(255, 255, 255, 0.55);
}
.footer a:not(.but):not(.focus-color) {
@@ -24,15 +24,11 @@
width: 100%;
}
/* Bootstrap-like list-inline — NOT flex (Zibll uses float for third col) */
.footer .list-inline {
display: flex;
flex-wrap: wrap;
align-items: flex-start;
justify-content: space-between;
list-style: none;
margin: 0 0 12px;
padding: 0;
gap: 10px 0;
}
.footer .list-inline > li {
@@ -41,50 +37,43 @@
display: inline-block;
}
@media (min-width: 992px) {
.footer .list-inline > li + li + li {
margin-left: auto;
}
.footer .list-inline > li + li + li {
float: right;
}
.footer .footer-logo,
.footer .footer-logo-img,
.footer a.footer-logo img {
.footer a.footer-logo img,
.footer .footer-logo img {
height: 40px;
width: auto;
max-width: 180px;
vertical-align: middle;
}
/* Light/dark footer logo toggle — keep display out of size rules so hide wins */
.footer a.footer-logo .site-footer__logo--day {
display: inline-block;
}
.footer a.footer-logo .site-footer__logo--night {
display: none;
}
html.dark .footer a.footer-logo .site-footer__logo--day,
[data-theme="dark"] .footer a.footer-logo .site-footer__logo--day,
body.dark-theme .footer a.footer-logo .site-footer__logo--day {
display: none;
}
html.dark .footer a.footer-logo .site-footer__logo--night,
[data-theme="dark"] .footer a.footer-logo .site-footer__logo--night,
body.dark-theme .footer a.footer-logo .site-footer__logo--night {
display: inline-block;
}
.footer .title-h-left,
.footer .site-footer__title {
/* title-h-left underline bar (Zibll) */
.footer .title-h-left {
position: relative;
margin: 8px 0 10px;
padding-bottom: 8px;
font-size: 15px;
font-weight: 700;
color: var(--color-ink, #333);
}
.footer .title-h-left:before {
transition: 0.4s;
transform-origin: left;
position: absolute;
content: "";
width: 40px;
height: 3px;
background: var(--theme-color, var(--color-primary));
left: 0;
bottom: 3px;
border-radius: 5px;
box-shadow: 1px 1px 3px -1px var(--theme-color, var(--color-primary));
}
.footer .footer-muted,
.footer .em09 {
font-size: 0.92em;
@@ -92,6 +81,10 @@ body.dark-theme .footer a.footer-logo .site-footer__logo--night {
line-height: 1.7;
}
.footer .opacity8 {
opacity: 0.8;
}
.footer .fcode-links {
margin: 0 0 8px;
line-height: 1.9;
@@ -110,35 +103,56 @@ body.dark-theme .footer a.footer-logo .site-footer__logo--night {
vertical-align: 0.2em;
}
/* Circular contact buttons — Zibll .toggle-radius + .footer-contact > a */
.footer .toggle-radius {
background: var(--this-bg, var(--main-border-color, var(--surface-2, #f0f0f0)));
width: 29px;
height: 29px;
display: inline-block;
text-align: center;
border-radius: 100%;
position: relative;
vertical-align: text-top;
line-height: 29px;
color: var(--footer-color, var(--color-ink-3));
text-decoration: none;
}
.footer .footer-contact {
display: flex;
flex-wrap: wrap;
align-items: center;
gap: 4px;
margin-top: 10px;
}
.footer .footer-contact > a,
.footer .footer-contact__item {
font-size: 18px;
.footer .footer-contact > a {
font-size: 20px;
margin: 5px;
width: 35px;
height: 35px;
display: inline-flex;
align-items: center;
justify-content: center;
border-radius: 50%;
background: var(--surface-2, #f3f3f3);
line-height: 35px;
display: inline-block;
text-align: center;
border-radius: 100%;
background: var(--this-bg, var(--main-border-color, var(--surface-2, #f0f0f0)));
color: var(--footer-color, var(--color-ink-3));
text-decoration: none;
transition: color 0.15s ease, background 0.15s ease, transform 0.15s ease;
vertical-align: text-top;
position: relative;
transition: color 0.15s ease, background 0.15s ease;
}
.footer .footer-contact > a:hover,
.footer .footer-contact__item:hover {
.footer .footer-contact > a:hover {
color: #fff;
background: var(--focus-color, var(--color-primary));
transform: translateY(-1px);
}
.footer .footer-contact > a i,
.footer .footer-contact > a svg {
vertical-align: middle;
}
.footer .footer-contact > a svg {
width: 1em;
height: 1em;
fill: currentColor;
}
.footer .footer-wechat-img {
@@ -147,7 +161,7 @@ body.dark-theme .footer a.footer-logo .site-footer__logo--night {
width: 140px;
bottom: 90%;
left: -55px;
padding-bottom: 12px;
padding-bottom: 20px;
z-index: 5;
}
@@ -176,49 +190,48 @@ body.dark-theme .footer a.footer-logo .site-footer__logo--night {
display: inline-block;
}
.footer .footer-miniimg img {
width: 90px;
height: 90px;
object-fit: cover;
border-radius: 4px;
background: var(--surface-2);
.footer .footer-miniimg p {
margin: 0 0 4px;
}
.footer .footer-conter,
.footer .site-footer__copyright {
.footer .footer-miniimg img {
width: 90px;
height: auto;
max-width: 100%;
display: block;
margin: 0 auto;
border-radius: 4px;
}
.footer .footer-conter {
margin: 8px 0 0;
line-height: 1.8;
color: var(--footer-color, var(--color-ink-4));
font-size: 13px;
text-align: left;
}
.footer .footer-conter a:hover {
color: var(--focus-color, var(--color-primary));
}
.footer .mt10 {
margin-top: 10px;
}
#float-right-btns.float-right,
.float-right {
position: fixed;
right: 16px;
bottom: 80px;
z-index: 90;
display: flex;
flex-direction: column;
gap: 8px;
}
/* Device visibility — Zibll hidden-xs */
@media (max-width: 767px) {
.footer {
padding: 24px 16px 28px;
.footer .hidden-xs,
.hidden-xs {
display: none !important;
}
.footer .list-inline {
display: block;
.footer {
padding: 20px 0;
}
.footer .container-footer {
text-align: center;
padding: 0 16px;
}
.footer .list-inline > li + li + li {
float: none;
}
.footer .list-inline > li {
@@ -226,4 +239,21 @@ body.dark-theme .footer a.footer-logo .site-footer__logo--night {
margin: 12px 0;
max-width: none !important;
}
.footer .title-h-left:before {
left: 50%;
transform: translateX(-50%);
}
}
/* Float right buttons shell (kept from prior shell) */
#float-right-btns.float-right,
.float-right {
position: fixed;
right: 16px;
bottom: 60px;
z-index: 1030;
display: flex;
flex-direction: column;
gap: 8px;
}