fix(footer): restore inline QR code layout

This commit is contained in:
2026-08-19 00:21:05 +08:00
parent 55571648a0
commit 2e442e20ec
3 changed files with 42 additions and 20 deletions
+36 -19
View File
@@ -1,5 +1,5 @@
/** /**
* Footer — Zibll template_1 shell (list-inline + float third column) * Footer — Zibll template_1 shell
* Contract: zibll/css/main.css footer block + zib_footer_con markup * Contract: zibll/css/main.css footer block + zib_footer_con markup
*/ */
.footer { .footer {
@@ -24,21 +24,26 @@
width: 100%; width: 100%;
} }
/* Bootstrap-like list-inline — NOT flex (Zibll uses float for third col) */
.footer .list-inline { .footer .list-inline {
display: flex;
align-items: center;
gap: 20px;
list-style: none; list-style: none;
margin: 0 0 12px; margin: 0 0 12px;
padding: 0; padding: 0;
} }
.footer .list-inline > li { .footer .list-inline > li {
flex: 1;
margin: 5px 15px; margin: 5px 15px;
vertical-align: top;
display: inline-block;
} }
.footer .list-inline > li + li + li { .footer .list-inline > li + li + li {
float: right; float: right;
display: flex;
align-items: flex-end;
flex-direction: column;
gap: 10px;
} }
.footer a.footer-logo img, .footer a.footer-logo img,
@@ -175,27 +180,28 @@
background: #fff; background: #fff;
} }
.footer .footer-miniimg {
width: 90px;
margin: 0 10px;
text-align: center;
vertical-align: text-top;
display: inline-block;
}
.footer .footer-miniimg p {
margin: 0 0 4px;
}
.footer .footer-miniimg img { .footer .footer-miniimg img {
width: 90px; width: 90px;
margin: 0 6px;
height: auto; height: auto;
max-width: 100%; max-width: 100%;
display: block; display: block;
margin: 0 auto;
border-radius: 4px; border-radius: 4px;
} }
.footer .footer-miniimg-2 {
justify-content: flex-end;
}
.footer .footer-miniimg-2 img {
height: 36px;
border-radius: var(--main-radius);
}
.footer .footer-miniimg-2 .opacity8 {
display: none;
}
.footer .footer-conter { .footer .footer-conter {
margin: 8px 0 0; margin: 8px 0 0;
line-height: 1.8; line-height: 1.8;
@@ -215,7 +221,7 @@
} }
.footer { .footer {
padding: 20px 0; padding: 10px 0;
} }
.footer .container-footer { .footer .container-footer {
@@ -223,16 +229,27 @@
padding: 0 16px; padding: 0 16px;
} }
.footer .list-inline {
gap: 10px;
flex-direction: column;
align-items: center;
justify-content: center;
}
.footer .list-inline > li + li + li { .footer .list-inline > li + li + li {
float: none; float: none;
align-items: center;
} }
.footer .list-inline > li { .footer .list-inline > li {
display: block;
margin: 12px 0; margin: 12px 0;
max-width: none !important; max-width: none !important;
} }
.footer .footer-miniimg-2 {
justify-content: center;
}
.footer .title-h-left:before { .footer .title-h-left:before {
left: 50%; left: 50%;
transform: translateX(-50%); transform: translateX(-50%);
+1 -1
View File
@@ -70,7 +70,7 @@ $_footer_conter = wp_kses_post(trim((string) $footer_customize_code));
<div class="container-fluid container-footer"> <div class="container-fluid container-footer">
<?php if ($_has_cols) : ?> <?php if ($_has_cols) : ?>
<ul class="list-inline"> <ul class="flex ac gap20 footer-contact-box list-inline">
<?php if ($_has_brand) : ?> <?php if ($_has_brand) : ?>
<li class="<?php echo esc_attr(trim($_brand_xs_cls)); ?>" style="max-width: 300px;"> <li class="<?php echo esc_attr(trim($_brand_xs_cls)); ?>" style="max-width: 300px;">
<?php if ($_logo_html !== '') : ?> <?php if ($_logo_html !== '') : ?>
@@ -13,6 +13,7 @@ const controllerBase = read('src/Admin/ControllerBase.php')
const provider = read('src/Admin/SchemaProvider.php') const provider = read('src/Admin/SchemaProvider.php')
const settingsFacade = read('src/Settings/Settings.php') const settingsFacade = read('src/Settings/Settings.php')
const scriptsPart1c = read('src/Core/ScriptsPart1c.php') const scriptsPart1c = read('src/Core/ScriptsPart1c.php')
const footerCss = read('assets/css/frontend/footer/zibll-shell.css')
function activeRepositorySource() { function activeRepositorySource() {
const roots = ['assets/admin/src', 'assets/js', 'inc', 'src', 'templates'] const roots = ['assets/admin/src', 'assets/js', 'inc', 'src', 'templates']
@@ -160,6 +161,10 @@ test('front-end page-display consumers read only the canonical section contracts
assert.match(termMeta, /get_category_page_settings/) assert.match(termMeta, /get_category_page_settings/)
assert.match(termMeta, /get_tag_page_settings/) assert.match(termMeta, /get_tag_page_settings/)
assert.match(footer, /get_footer_template/) assert.match(footer, /get_footer_template/)
assert.match(footer, /<ul class="flex ac gap20 footer-contact-box list-inline">/)
assert.match(footerCss, /\.footer \.list-inline\s*\{[^}]*display:\s*flex;[^}]*align-items:\s*center;[^}]*gap:\s*20px;/s)
assert.doesNotMatch(footerCss, /\.footer \.footer-miniimg\s*\{[^}]*display:\s*inline-block;/s)
assert.match(footerCss, /\.footer \.footer-miniimg img\s*\{[^}]*width:\s*90px;[^}]*margin:\s*0 6px;/s)
assert.match(settingsFacade, /public static function get_footer_template\(\): string\s*\{\s*return HomeCms::get_footer_template\(\);\s*\}/) assert.match(settingsFacade, /public static function get_footer_template\(\): string\s*\{\s*return HomeCms::get_footer_template\(\);\s*\}/)
assert.equal(scriptsPart1c.includes('cartUrl'), false) assert.equal(scriptsPart1c.includes('cartUrl'), false)
assert.doesNotMatch(scriptsPart1c, /\$runtime_routes\[['"]cart['"]\]/) assert.doesNotMatch(scriptsPart1c, /\$runtime_routes\[['"]cart['"]\]/)