跳至內容
Astera Technology

同一視窗內,元件也可以各自轉版

視窗闊,不代表元件也闊;按自己的容器尺寸,決定要不要分欄。

host 只有 280px,即使視窗闊,內容仍上下排列。

下載完整個案資料及參考答案 ↓

先看這個例子

host 闊 280px,設為 inline-size 容器。內層只在 host 達 400px 才轉兩欄。視窗本身有 960px,並不代表元件條件已滿足。

輸入與瀏覽器原生結果
情況輸入或查看方法結果與意思
窄容器視窗 960;host 280一欄
闊容器視窗不變;host 500兩欄
判斷對象查看符合條件的上層容器是 host,不是視窗
下載可編輯 CSV ↓

瀏覽器怎樣處理

尺寸 container query 按符合條件的上層容器判斷。要轉版的元素在 host 裏面,不是查自己的闊度。host 改闊,視窗不變,也可以令配置改變。支援情況須按所記錄引擎核對,不能只憑原始碼推定。

視窗條件會錯用另一個闊度

反例對同一個 280px host,改用視窗 media query。

反例原始碼,請另開例子核對
<style>body{margin:8px}</style>
<style>.host{width:280px}.inner{display:grid;gap:8px}@media(min-width:400px){.inner{grid-template-columns:1fr 1fr}}</style><section class="host"><section class="inner"><p>原始文字</p><p>顯示結果</p></section></section>

視窗 960px 時已轉兩欄,即使 host 仍只有 280px。

試着修正

視窗維持 960px,正例 host 從 280px 改成 500px,會改變甚麼?

查看參考答案

host 跨過 400px 容器條件,內層由一欄轉兩欄。

  • host 和視窗闊度分開記。
  • 核對真正支援及子元素位置。

原始例子檔案

相關資源