CSS 發布驗收 · 2026
2026 年遠端 Mac 前端發布驗收:
Container Queries、@layer 與 Safari/Chromium
2026.04.03
MacWww Lab
約 6 分鐘閱讀
當元件庫全面採用Container Queries與@layer,Linux CI 上的 Chromium 綠燈仍可能與使用者端 Safari在邊界條件上分歧。租用遠端 Mac的價值,在於用同一組建置產物銜接 Safari.app 與 Chromium 家族,把「語法支援」與「真實排版結果」分開驗收。下文提供差異對照表、發布前三步、結構化資料建議與FAQ。延伸:Vite/Webpack 部署與 Safari 驗證、Web 專題:部署前冒煙、技術見解列表。
01 為何要在遠端 Mac 做雙引擎驗收
02 Safari(WebKit)與 Chromium(Blink)對照表
下表聚焦易引發客訴的差異;請以專案最低 Safari/Chrome 版本為準,設計權杖或容器結構變更後重跑。
| 驗收面向 | Safari(WebKit) | Chromium(Blink) | 發布前建議 |
|---|---|---|---|
| 容器類型與尺寸 | inline-size 常見;size 須留意高度與 BFC |
對齊規格;DevTools 容器標註較直觀 | 容器加語意標記;設計稿標明量測層級 |
cqw/cqh 與捲動 |
overflow 邊界下與 Chromium 可能有 1px 級取整差 |
較易與設計稿像素對齊 | 斷點旁預留容差或用 clamp();比對時同縮放、同字型 |
| 巢狀容器查詢 | 深層巢狀加重排;低耗電、背景分頁影響動效 | Performance 取樣工具較成熟 | 限制查詢深度與活躍容器數;prefers-reduced-motion 兩端各驗 |
@layer 宣告順序 |
依載入與 @import 解析序;與 <link> 阻塞須實測 |
類似;差異多在分割與 async 時序 | 文件化層名與檔序;禁止依賴未記載的載入序 |
@layer 與第三方樣式 |
廣告/小工具常帶高特異性或 !important |
類似;瀏覽器擴充僅 Chromium 驗得到 | 維護覆寫清單;P0 在無擴充、乾淨設定下各驗一次 |
| 除錯體驗 | Inspector 漸強容器/層資訊;iOS 另排期 | Styles 對 layer、container 提示較完整 | 截圖附完整版本號;大改版留 before/after |
03 發布前三步清單
三步須共用同一建置產物(同一 artifact hash 或靜態目錄),並寫入發布紀錄。
- 第一步:鎖定矩陣與產物。最低 Safari/Chromium 版本、source map 與 CSS 二次轉譯設定須與 CI 一致。
- 第二步:依對照表勾選。兩引擎各驗容器斷點、cq 邊界、@layer 順序與第三方穿透;異常附截圖與元素路徑。
- 第三步:真機簽核。遠端 Mac 上 Safari.app 與 Chrome(或 Edge)開 P0 與元件代表頁,至少一頁含動態工具列與捲動容器,通過後才可標記可發布。
04 結構化資料(JSON-LD)建議
建議在 <head> 以 @graph 合併型別;本篇已內嵌範例:
- BlogPosting:標題、日期、摘要、關鍵字、代表圖。
- BreadcrumbList:首頁 → 技術見解 → 本文,與麵包屑一致。
- HowTo:對應發布前三步,每步完整句描述。
- FAQPage:與正文 FAQ 文案一致;避免重複相同問答。
若有教學影片可加 VideoObject 並 isPartOf 指向本文。
05 常見問題(FAQ)
只在 Chromium 開發,為何還要驗 Safari?
取整與捲動邊界在 WebKit/Blink 仍可能分歧;字體與動態工具列需真 Safari 覆蓋。
@layer 能取代 !important 嗎?
不能。!important 仍壓過一般層內規則;須盤點第三方遺留並雙引擎實測。
驗收要附什麼?
瀏覽器版本、勾選表、P0 雙引擎截圖或短錄影、已知限制清單。
Tailwind/CSS-in-JS 影響 @layer 嗎?
會。應以編譯後 CSS的層名與順序為準。
首頁 · 技術見解列表 · Web 專題:部署前冒煙 · 購買/租用 · 幫助中心 · Tailwind v4/PostCSS 矩陣