From 251fe8652729bb5d8d8537d812b8aae654c8dbf0 Mon Sep 17 00:00:00 2001 From: unknown Date: Fri, 21 Aug 2026 14:49:34 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E4=BA=86=E4=B8=80=E4=BA=9B?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- assets/css/frontend/header-userbox.css | 19 +++++++++++++++++++ .../page-display-contract.test.cjs | 4 ++++ 2 files changed, 23 insertions(+) diff --git a/assets/css/frontend/header-userbox.css b/assets/css/frontend/header-userbox.css index f6f63c45..01cee717 100644 --- a/assets/css/frontend/header-userbox.css +++ b/assets/css/frontend/header-userbox.css @@ -113,6 +113,25 @@ margin: 0; } +/* Anchor the VIP preview to the full navigation row instead of relying on + * the absolute panel's static position beside the compact CTA. */ +.navbar-top .aksrt-navbar-actions .navbar-vip-hover { + position: relative; + align-self: stretch; + align-items: center; + overflow: visible; +} + +.navbar-top .aksrt-navbar-actions .navbar-vip-hover > .sub-vip-card { + top: 100%; + right: 0; + left: auto; + width: max-content; + max-width: calc(100vw - 24px); + margin: 0; + z-index: 1002; +} + /* Keep the drop-down search panel above a fixed header (z-index: 999). */ .navbar-search { z-index: 1001; diff --git a/tests/widget-system/page-display-contract.test.cjs b/tests/widget-system/page-display-contract.test.cjs index f21b0415..43ae6d17 100644 --- a/tests/widget-system/page-display-contract.test.cjs +++ b/tests/widget-system/page-display-contract.test.cjs @@ -132,6 +132,8 @@ test('VIP navigation purchase switches are saved and consumed end to end', () => }) test('header VIP hover cards match the Zibll markup and style contract', () => { + assert.match(headerMenuButtons, //) + assert.match(headerMenuButtons, /