跳至內容
Astera Technology

Flex 會在哪裏換行?把間距也計進去

兩個項目加間距剛好放得下;窄一像素,就會改成逐行排列。

首行剛好放兩項 120px,加一個 10px 間距。

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

先看這個例子

三個工具標籤各佔 120px,一行闊 250px、間距 10px,容許換行。兩項剛好用 250px,第三項須另起一行。

輸入與瀏覽器原生結果
情況輸入或查看方法結果與意思
首行120+10+120250px;編輯器、瀏覽器同一行
第三項查看檢查工具的頂部位置在下一條 flex 行開始
較窄邊界把一行闊度改成 249px三項各自一行
下載可編輯 CSV ↓

瀏覽器怎樣處理

Flex 分行時會計項目尺寸和間距。flex:0 0 120px 令本例項目不縮窄,臨界點才清楚。這是闊度實驗,不是要求所有正式工具列都寫死這些尺寸。

漏計間距,就會估錯可放數量

反例只把容器窄一像素,項目闊度和間距不變。

反例原始碼,請另開例子核對
<style>body{margin:8px}</style>
<style>.tools{display:flex;flex-wrap:wrap;width:249px;gap:10px}.tools p{margin:0;flex:0 0 120px}</style><section class="tools"><p>編輯器</p><p>瀏覽器</p><p>檢查工具</p></section>

只計 120+120 看似放得下,但必需 10px 間距令合計變 250px,實際因此分成三行。

試着修正

三項固定闊度要放同一行,最少需要多少闊度?

查看參考答案

380px,即三項各 120px,加兩個 10px 間距。

  • 臨界點前後,比較各項頂部座標。
  • 只計項目之間的間距,不在外邊額外加一個。

原始例子檔案

相關資源