透過設定五個經過驗證的控制項——flex-direction、flex-wrap、justify-content、align-items,以及介於 0 到 100 的整數像素 gap——並複製所產生的 .container 規則,即可取得 Flexbox CSS 宣告。此工具在本機目前的瀏覽器分頁中負責驗證、預覽、序列化與剪貼簿複製,因此絕不會上傳任何設定或產生的 CSS。這種作法能提供一個符合 W3C Flexbox 與 Box Alignment 規範的確定性起點,同時不允許你將任意屬性名稱、選擇器、單位文字或可執行的樣式字串貼入表單。預覽與複製的輸出永遠衍生自同一組已驗證的設定,因此視覺展示與你實際部署的 CSS 不會在不知情的情況下產生分歧。接著,你可以在自己審核過的樣式表中加入子規則、響應式限制以及書寫模式考量。在實際部署前,請搭配真實內容、視窗大小、縮放層級與輔助功能設定來使用此結果,因為項目大小、書寫模式、容器尺寸與可用空間仍會影響版面實際的換行與對齊方式。

how to get flexbox
how to get flexbox

經過驗證的 Flexbox 產生器實際輸出的內容

Flexbox 產生器會產生單一確定性的 .container 規則,其中以固定順序包含正好六個宣告:display:flex、flex-direction、flex-wrap、justify-content、align-items 以及 gap。宣告名稱、宣告順序與可設定屬性的集合都是不可變動的,而這正是讓輸出可供稽核的原因。你不會得到完整的響應式版面系統,也得不到廠商前綴、子層 flex 簡寫、flex-basis、grow 或 shrink 因子、order、align-content、place-content、尺寸、overflow、媒體查詢或後援機制。這個工具是一個安全的容器起點——一個乾淨的 W3C Flexbox 宣告區塊——你可以閱讀、複製,然後在自己審核過的樣式表中加以擴充。

每一個進入預覽樣式物件或產生的文字字串,都會重新對照一份封閉且不可變的 CSS 關鍵字列舉進行驗證。關鍵字清單直接取自 W3C Flexbox 與 Box Alignment 規範,因此你能做的選擇僅限於具備穩定且已登錄意義的值。gap 欄位會以嚴格的 base-10 整數文法進行解析,僅接受 0 到 100 之間(含端點)的數值,並拒絕負值、小數、科學記號、單位文字、空輸入、CSS 標點、像 00 這樣的前導零形式,以及超過 100 的值。超出支援範圍的數字會以驗證錯誤回報,而不是悄悄被縮減為 100,而超過 32 個 UTF-16 字碼單位的原始 gap 文字會直接失敗,不會被截斷。

五個控制項及其背後的關鍵字集合

產生器對外僅提供剛好五個使用者介面控制項。前四個是 CSS 關鍵字的封閉列舉,第五個是有限範圍的數值欄位。下表將每個控制項對應到其 CSS 屬性與可接受的關鍵字,並簡要說明各項實際的作用。

控制項CSS 屬性可接受的關鍵字或範圍控制內容
Flex 方向flex-directionrow、row-reverse、column、column-reverse建立主軸與項目排列順序
換行flex-wrapnowrap、wrap、wrap-reverse項目維持同一行或形成額外行
主軸分配justify-contentflex-start、flex-end、center、space-between、space-around、space-evenly沿主軸分配項目
交叉軸項目對齊align-itemsstretch、flex-start、flex-end、center、baseline在每條 flex 線內沿交叉軸定位項目
間距gap0 到 100(僅限整數像素)相鄰 flex 項目與 flex 線之間的間距

由於 flex-direction 決定了主軸,從 row 切換到 column 會改變 justify-content 作用的方向。在 row 中,justify-content 以水平方式排列項目;在 column 中,則以垂直方式排列。align-items 永遠作用於每條 flex 線內的交叉軸,因此它始終與所選方向所設定的主軸保持正交。這與 MDN 的 flexbox 基本概念中所描述的模型相同——主軸是 flex 項目排列的方向,而交叉軸則與其垂直。

如何逐步取得 Flexbox 宣告

從產生器取得可用的 Flexbox 規則,是一個簡短且確定性的程序。每個步驟都只有唯一正確的結果,而且這個工具不會讓你跳過驗證。

  1. 從封閉的下拉選單中選擇 flex-direction、flex-wrap、justify-content 與 align-items。由於表單會拒絕任何不在支援關鍵字清單中的值,因此這四個屬性關鍵字必定取自已知的詞彙集。
  2. 輸入介於 0 到 100 的整數像素 gap 值。小數、負數、科學記號、單位後綴、像 00 這樣的前導零形式,以及超過 100 的值,都會驗證失敗,而且錯誤訊息會反映被拒絕的內容。原始 gap 文字同樣限制為 32 個 UTF-16 字碼單位;剛好等於上限的輸入會被處理,較長的輸入則會直接失敗而不被截斷。
  3. 檢視五個固定的預覽項目。預覽僅在每個欄位都有效時才會更新,而且它是由與產生的 CSS 完全相同的已驗證設定所建構,因此可見的排列與複製的宣告不會在不知情的情況下不一致。
  4. 點擊 Generate CSS。產生器會驗證完整的目前狀態,並以固定順序輸出一個正好包含六個宣告的 .container 區塊:display:flex、flex-direction、flex-wrap、justify-content、align-items、gap。
  5. 使用 Copy 按鈕複製規則,或手動選取可見的程式碼。由於 Clipboard API 是非同步的,每次複製都會收到一個產生識別,因此來自先前編輯的過時完成結果無法還原已被複製的狀態。複製失敗時,CSS 仍然保持可見,讓你仍能手動選取。
  6. 編輯任何控制項或 gap 以清除先前產生的 CSS、任何驗證錯誤以及複製確認訊息。下一次 Generate 呼叫會從頭重新驗證完整狀態,再恢復輸出。

為何本機、封閉關鍵字的產生器優於自由文字輸入

以自由文字表單建立的 flexbox 規則,其安全性僅等同於接受它的解析器。一旦允許任意屬性名稱、選擇器、URL 片段或可執行的樣式字串進入輸入框,工具就必須猜測使用者意圖、防範 CSS 注入攻擊,並協調預覽樣式物件與序列化輸出之間的差異。Flexbox 產生器透過拒絕接受任何不在封閉清單上的內容來迴避這些問題。屬性本身沒有文字欄位——僅有下拉選單——唯一的數值輸入是 gap,並由嚴格且僅識別唯一合法形式的文法加以解析。

驗證、預覽渲染、序列化與剪貼簿操作,全部都在本機目前的瀏覽器分頁中完成。沒有任何設定或產生的 CSS 被上傳。此工具不建立檔案、不產生 Blob URL、不引用遠端樣式表、不嵌入框架,也不動態執行任何 CSS 字串。這點至關重要,原因有二。第一,你可以在內部或專屬的版面上使用這個產生器,而資料完全不會離開你的機器。第二,你貼到樣式表中的每一個位元組輸出,都來自單一經過稽核的程式碼路徑,這讓審閱與程式碼審查都變得簡單明瞭。

預覽是由與序列化輸出相同的已驗證型別設定所建構,而 gap 會以相同的已驗證數值序列化為明確的 px 字串。用於測試此工具的八組可執行黃金組合,涵蓋了所有支援的關鍵字、兩個 gap 邊界值、輸出順序、預覽一致性、列舉唯一性、格式錯誤的值,以及 CSS 注入嘗試,因此螢幕展示與複製的 CSS 之間的契約,在整個支援的值空間中皆能成立。

此工具刻意不產生的內容

明確指出你在輸出中不會看到的內容,是值得的,因為產生器的界線正是其安全性故事的一部分。下表總結了這些刻意的省略項目,並對照始終存在的六個宣告。

始終輸出刻意不輸出
display: flex廠商前綴(-webkit-、-ms-、-moz-)
flex-directionflex 簡寫、flex-basis、flex-grow、flex-shrink(套用於子層)
flex-wraporder、align-content、place-content
justify-content容器的 width、height、min/max 尺寸、overflow
align-items媒體查詢、容器查詢、舊版引擎的後援機制
gap(以 Npx 表示)animation、transition 或 transform 宣告

五個項目的預覽同樣是一項刻意的設計選擇。透過將項目在本機固定,此工具得以展示方向、換行、分配、對齊與 gap 之間如何互動,而無需你匯入任何標記或內容。在真實的樣式表中,項目大小、書寫模式、容器尺寸與可用空間仍會影響換行與對齊,因此將這些宣告複製到含有不同內容的容器時,自然可能產生與示範不同的換行結果。請在你自己的樣式表中加入子規則與響應式限制,並在實際部署前,搭配真實內容、書寫模式、視窗大小、縮放層級與輔助功能設定來測試結果。

Putting the Copied Rule to Work in Your Stylesheet

Once you have the .container rule, the next step is to use it as a base rather than a finished layout. A typical workflow is to paste the six declarations into your stylesheet, then add child rules for your actual content — width, min-width, flex shorthand, order, or align-self where individual items need to break from the container's default alignment. The generated rule uses display:flex as its starting point, so any container with that class will establish a flex formatting context as soon as it is parsed.

If your layout is responsive, layer media queries on top of the copied rule rather than asking the generator to produce them. If your layout needs a different cross-axis alignment for specific items, add align-self in child rules rather than overriding align-items at the container. If you need a different gap unit or a value outside 0–100, write that line yourself in your reviewed stylesheet, where it can be justified against the rest of your design system. The generator is a focused, auditable origin point; the rest of the layout belongs to your code.

For a broader, more conceptual walkthrough of how these five controls shape real layouts, see the practical guide on creating flexbox in CSS. For the underlying specification definitions and additional examples, the MDN reference for gap sits alongside the basic-concepts reference as the most directly relevant starting point.

Related reading: Border Radius Maker Online: Copy the Shortest CSS.