自 2010 年 · 每月支援超過 200 萬次工具執行
自 2010 年
加到 Chrome

我的工具箱

自動模式

尚未收藏任何工具。

升級為高級版
相關工具
CSS Grid 生成器CSS盒陰影產生器漸變產生器
主頁 > 網站管理工具
 

CSS Flexbox 演練場

互動練習 CSS Flexbox,即時預覽並逐項調整 flex-direction、justify-content、align-items 與 gap。內建聖杯版面、卡片網格、導覽列與彈窗範例,可一鍵匯出 CSS。

免費使用無需註冊即時出結果
CSS Flexbox 演練場立即免費試用 ▼
⚡ 快速啟動佈局 (點擊載入)
▦ 即時預覽
主軸 (main axis) 交叉軸 (cross axis) 0 個項目 提示:點擊任何項目即可編輯
⚙ 容器 (.flex-container)
flex-direction ?
flex-wrap ?
justify-content ?
align-items ?
align-content ?
gap (間距) 8px
8px
✦ 已選項目 (.flex-item)
點擊預覽中的項目以編輯其屬性。
📖 快速速查表 — 常見模式
我想要…使用此設置
完美居中單個項目justify-content: center; align-items: center
等寬欄位每個項目都設置 flex: 1
將一個項目推向最右側在該項目上設置 margin-left: auto
小螢幕上換行卡片flex-wrap: wrap + flex: 1 1 240px
在行動端反轉順序在媒體查詢中設置 flex-direction: row-reverse
將頁尾固定在視窗底部body: display: flex; flex-direction: column; min-height: 100vh
項目之間均等間距justify-content: space-between
禁止項目縮小在該項目上設置 flex-shrink: 0
產生的 CSS
產生的 HTML

Embed CSS Flexbox 演練場 Widget

CSS Flexbox 演練場

CSS Flexbox 演練場 是一個互動式學習環境和代碼產生器,專為現代 CSS 彈性盒子佈局(Flexible Box Layout)模組設計。您可以調整容器屬性(flex-direction, justify-content, align-items, gap)以及每個項目的單獨屬性(flex-grow, flex-shrink, flex-basis, align-self, order),並即時觀察佈局變化。當您調整出滿意的效果時,可以直接複製可用於專案的 CSS 和 HTML 代碼。

什麼是 CSS Flexbox?

CSS Flexbox(彈性盒子佈局)是一種一維佈局模型,旨在沿著單一軸線(行或列)分配空間並對齊容器內的項目。它取代了過去用於導覽列、卡片排版、內容居中以及任何需要元素自然適應容器的舊技術(如浮動 floats 和 inline-block 技巧)。與二維的 CSS Grid 不同,Flexbox 擅長於只需在一個方向上控制對齊的簡單排列。

如何使用此演練場

  1. 選擇預設(選填): 選擇聖杯佈局、卡片網格、導覽列、Hero 區塊、彈窗或固定頁尾,以載入真實場景的起點。每個預設都是一個完整的、可運行的佈局,供您研究或修改。
  2. 調整容器屬性: 使用右側面板中的分段控制按鈕來設置 flex-direction, flex-wrap, justify-content, align-items, align-contentgap。視覺舞台會立即更新。
  3. 編輯單個項目: 點擊預覽中的任何項目以選中它。您可以獨立於其他項目覆蓋其 order, flex-grow, flex-shrink, flex-basisalign-self。具有自定義屬性的項目會標有小圖示。
  4. 新增或刪除項目: 使用「新增項目」和「刪除選中項」來更改項目數量,觀察佈局如何反應。
  5. 複製代碼: 底部「產生的代碼」部分始終反映您當前的佈局。一鍵即可複製 CSS、HTML 或兩者。

容器屬性參考

Flex 容器是設置了 display: flex 的父元素。這些屬性控制其所有子元素的共同行為。

屬性效果
flex-direction row · row-reverse · column · column-reverse 設置主軸方向。row 為從左到右排列(預設);column 為垂直堆疊。
flex-wrap nowrap · wrap · wrap-reverse 控制當空間不足時,項目是保持在單行還是換行到多行。
justify-content flex-start · center · flex-end · space-between · space-around · space-evenly 沿主軸對齊項目。將剩餘空間分配到兩側或項目之間。
align-items stretch · flex-start · center · flex-end · baseline 沿交叉軸(與主軸垂直)對齊項目。
align-content stretch · flex-start · center · flex-end · space-between · space-around 沿交叉軸對齊換行後的行。僅在項目換行為多行時生效。
gap 長度值,例如 8px, 1rem 設置 Flex 項目之間的間距。取代了舊有的基於 margin 的間隔模式。

項目屬性參考

這些屬性應用於個別的 Flex 項目(容器的子元素),並僅針對該項目覆蓋容器的預設行為。

屬性效果
order 整數(預設為 0 在不改變 HTML 的情況下調整項目的視覺順序。數字越小越靠前;負值可將項目移至開頭。
flex-grow 數字(預設為 0 定義該項目相對於兄弟元素應吸收多少容器剩餘空間。所有項目設為 1 則平分空間。
flex-shrink 數字(預設為 1 定義空間不足時項目的縮小程度。0 表示永不縮小——項目保持其宣告的大小。
flex-basis auto · 長度值 · 百分比 在分配剩餘空間之前設置項目的初始大小。實際上設置了項目的「理想」主軸大小。
align-self auto · 與 align-items 相同的值 針對單個項目覆蓋容器的 align-items 設置。

justify-content 和 align-items 有什麼區別?

justify-content 控制沿主軸的對齊,而 align-items 控制沿交叉軸的對齊。主軸由 flex-direction 決定——row 時為水平,column 時為垂直。當您將 flex-directionrow 改為 column 時,兩個軸線會交換,因此 justify-content 變成了控制垂直方向,而 align-items 變成了控制水平方向。這種交換是學習 Flexbox 時最常見的困惑來源;預覽下方的軸線指示器可以幫助您視覺化這一點。

如何使用 Flexbox 讓元素居中?

要讓單個元素在水平和垂直方向上完全居中:

三行代碼:
display: flex;
justify-content: center;  /* 水平居中 */
align-items: center;  /* 垂直居中 */

這是取代舊有 margin: autotransform: translate(-50%, -50%)position: absolute 等居中技巧的現代方法。您可以通過選擇彈窗居中 (Modal Center) 預設在演練場中嘗試。

真實場景佈局預設解析

聖杯佈局 (Holy Grail Layout)

經典的三欄式頁面佈局:左側欄、主內容區、右側欄,配有頁首和頁尾。過去用浮動(floats)很難實現,但 Flexbox 讓它變得非常簡單。中間欄使用 flex: 1,因此它會吸收所有剩餘的水平空間,而兩側欄則保持其宣告的寬度。

卡片網格 (Card Grid)

一組會自動換行的卡片,隨著視窗縮小流向新行。使用 flex-wrap: wrap 並為每張卡片設置 flex: 1 1 240px,意味著卡片會增長和縮小,但寬度絕不會小於 240px。

導覽列 (Navbar)

水平導覽列,左側為標誌(Logo),右側為連結。技巧是使用 justify-content: space-between,並將標誌和連結組作為兩個子元素,連結組內部可以再使用一個 Flex 容器。

Hero 區塊

內容在水平和垂直方向都居中的垂直堆疊——非常適合著陸頁的 Hero 區域。在一個較高的容器上使用 flex-direction: column, justify-content: centeralign-items: center

彈窗居中 (Modal Center)

在遮罩層中完全居中的彈窗對話框。使用上述的三行居中秘訣,應用於全屏的遮罩容器。

固定頁尾 (Sticky Footer)

當內容較少時停留在視窗底部,內容較長時被推下的頁尾。通過給 body 設置 display: flex; flex-direction: column; min-height: 100vh 並給主內容區設置 flex: 1 來實現。

flex-grow、flex-shrink 和 flex-basis 之間有什麼區別?

這三個屬性(可組合成簡寫屬性 flex)描述了項目如何處理空間:

簡寫 flex: 1 會擴展為 flex: 1 1 0%——等比例增長、等比例縮小、基準值為零——這意味著所有項目將無視內容大小,平均分配容器空間。flex: auto 則擴展為 flex: 1 1 auto,它會尊重內容的原始大小作為基準。

什麼時候應該使用 Flexbox 而不是 Grid?

對於項目沿單一方向流動的一維佈局,請使用 Flexbox——例如一排按鈕、導覽列或單列卡片。Flexbox 是內容導向的,非常適合讓項目根據自身大小進行排列。

對於需要同時控制行和列的二維佈局,請使用 CSS Grid——例如全頁面佈局、圖片庫或儀表板。Grid 是佈局導向的,讓您可以將項目放入預定義的軌道中。

兩者是互補的。許多現實設計會結合使用:用 Grid 進行頁面佈局,內部則使用 Flexbox 構建導覽列和卡片行。

掌握 Flexbox 的小貼士

瀏覽器支援與兼容性

CSS Flexbox 已在所有現代瀏覽器中得到支援,包括 Chrome, Firefox, Safari, Edge 以及所有主流行動端瀏覽器。Flex 容器中的 gap 屬性在 2021 年實現了全球瀏覽器通用支援。較舊的遺留瀏覽器 (IE10/11) 需要供應商前綴,且存在幾個已知的 Bug;對於這些受眾,請參考 flexbugs

常見問題

為什麼我的 Flex 項目溢出了容器?

Flex 項目根據其內容具有隱式的 min-width: auto。長單詞、代碼塊或預格式化文字可能會強制項目寬度大於容器。通過在項目上設置 min-width: 0(或在列佈局中設置 min-height: 0)來修復此問題。

space-between, space-around 和 space-evenly 有什麼區別?

space-between 兩端不留空,項目之間間距相等。space-around 兩端留出半個間距,項目之間留出完整間距。space-evenly 兩端和項目之間的間距完全相等。在演練場中切換它們以感受差異。

Flex 屬性可以製作動畫嗎?

可以。flex-grow, flex-shrink, flex-basis, ordergap 都可以進行過渡動畫(transition)。但不支援為 flex-direction, justify-contentalign-items 製作動畫,因為它們是離散的枚舉屬性。

演練場支援離線工作嗎?

所有的 Flexbox 計算都使用原生 CSS 在您的瀏覽器中完成。頁面載入後,您可以在沒有網路的情況下使用演練場——無需 API 調用或服務端計算。

產生的代碼可以直接用於生產環境嗎?

可以。導出的 CSS 使用所有常青瀏覽器都支援的標準屬性。HTML 使用語義化類名(flex-container, flex-item),您可以根據專案規範對其進行重命名。

其他資源

引用此內容、頁面或工具為:

"CSS Flexbox 演練場" 於 https://MiniWebtool.com/zh-tw/css-flexbox-演練場/,來自 MiniWebtool,https://MiniWebtool.com/

由 miniwebtool 團隊開發。更新日期:2026年4月25日

網站管理工具:

熱門與最新工具:

Less 到 CSS 編譯器SCSS轉CSS編譯器CSS壓縮器查看全部 →
主頁 > 網站管理工具 > CSS Flexbox 演練場