CSS Grid Generator 只需一次點擊即可產生一條完整且通過驗證的 .grid 規則:一個 display: grid 宣告、由 repeat(n, minmax(0, 1fr)) 建構的明確 grid-template-columns 與 grid-template-rows、一個共用像素間距,以及 justify-items 與 align-items 的四種安全值之一。批量作業——在不必手動重寫每組軌道清單的情況下產生許多相似但相異的網格——正是這個有界建構器的設計加速目標,因為每個數值欄位僅接受規格實際需要的值,而同一個序列化器同時供應即時預覽與複製的 CSS。您再也不必手動輸入 1fr 1fr 1fr 1fr 1fr 1fr,再也不必記住 gap 使用一個還是兩個引數,也不必為了讓瀏覽器悄悄裁切軌道的那種錯字除錯。編輯任一控制項會立即清除舊的區塊、舊的狀態文字,以及任何待處理的複製計時器,讓您可以從一個網格迭代到下一個,不會留下前一次的輸出殘留。

CSS Grid Generator 會產生什麼
CSS Grid Generator 為每次產生輸出一條符合標準的 .grid 規則。該規則以 display: grid 開頭以建立網格格式化上下文,接著使用 repeat(n, minmax(0, 1fr)) 宣告 grid-template-columns 與 grid-template-rows,其中 n 是您輸入的數量。一個 gap: Npx 宣告設定跨兩個軸的單一共用間距值。規則結尾是您從下拉選單中選擇的 justify-items 與 align-items 值。每個宣告都由實作固定,不會從您的文字中插入任何選擇器、屬性、值、註解或樣式表片段。輸出以 W3C CSS Grid Layout Module Level 2 規格為基準,並交叉對照 MDN 上關於 grid-template-columns、gap、justify-items 與 align-items 的參考頁面。
為何有界驗證對批量作業至關重要
有界驗證是讓批量產生可靠的關鍵功能。每個數值欄位在字串產生開始前,就會拒絕超出範圍的文字:
- 欄與列僅接受 1 到 12 之間的整數十進位數。
- 間距僅接受 0 到 100 像素之間的整數十進位數。
- 超出範圍、帶正負號、含小數、含空白填補、首尾加單位、空值或過長的數值文字會產生明確錯誤,且不會產生任何 CSS。
- 對齊下拉選單僅接受 stretch、start、center 或 end;即使繞過可見的選取控制項,類似 center 後接另一個宣告這種刻意構造的值也會被拒絕。
- 超過 32 個 UTF-16 程式碼單位的原始文字會在解析開始前被拒絕。
這表示同一個序列化器對於給定輸入永遠會產生相同結構,您永遠不必猜測 101 是否被悄悄限制為 100、「5.5」是否被四捨五入,或某個多餘的單位是否偷偷通過。對批量作業而言,這種確定性正是其全部重點:每次成功產生都可以放心貼上,每次失敗都可以放心忽略,下一次嘗試會從乾淨狀態重新開始。
批量產生 CSS Grid 程式碼
- 在瀏覽器中開啟 CSS Grid Generator。產生與預覽皆在本機執行,不會將任何程式碼片段傳送到伺服器。
- 輸入介於 1 到 12 之間的整數欄數,以及介於 1 到 12 之間的整數列數。請勿附加單位、小數、正負號或空白。
- 輸入介於 0 到 100 像素之間的整數間距。0 為有效值,會移除所有。
- 從 justify-items 下拉選單中選擇一個值,並從 align-items 下拉選單中選擇一個值。提供的四個值為 stretch、start、center 與 end。
- 檢查始終可見的即時預覽。當每個欄位都有效時,預覽會立即顯示目前的軌道數量、間距與對齊值。當某個欄位無效時,預覽會重設為文件化的安全預設值——三欄兩列——而非顯示過時或部分解讀的輸入。
- 點擊 Generate CSS 以產生通過驗證的 .grid 規則。
- 點擊 Copy 將規則推送至剪貼簿。若剪貼簿權限被封鎖,工具會顯示手動複製訊息,並保留程式碼可選取狀態,以便使用瀏覽器內建複製指令。
- 編輯任一控制項以清除先前產生的區塊、任何先前的錯誤,以及任何先前的複製狀態。下一個有效的設定即可在不帶殘留狀態的情況下準備產生。
對高頻使用而言,迭代迴圈很短:更改數字、觀察預覽變動、點擊 Generate、點擊 Copy、貼上。序列化器在預覽與產生的 CSS 之間共用,因此您看到的儲存格比例就是您貼上的比例。
「批量」在有界建構器中的意涵
這個產生器刻意不是批量 API,也不接受設定清單。它是一個有界的視覺化編輯器,每次點擊產生一條 .grid 規則。在此脈絡下,「批量」意指您在單一作業階段中,能夠產生多少個相異網格而無須手動輸入軌道清單。十二條等大的軌道若手動撰寫,會是 1fr 1fr 1fr 1fr 1fr 1fr 1fr 1fr 1fr 1fr 1fr 1fr——容易數錯、重打乏味,且在實際渲染前無法以視覺檢閱。產生器會將這段文字收斂為 repeat(12, minmax(0, 1fr)),並以確定性的方式產生它。在單一工作階段中的多個版面——某區塊的卡片網格、另一區塊的儀表板框架、又一區塊的聯絡區——所節省的時間,正是您本會花在以略有不同的數量重打相同形狀上的時間。
| 情境 | 有界建構器的處理方式 |
|---|---|
| 建立 12 欄頁面框架 | 輸入 12 欄,選擇列數與間距,一次產生 repeat(12, minmax(0, 1fr)) |
| 在單一階段中產生若干相似但相異的網格 | 每次編輯、重新產生、複製;編輯時會清除先前的輸出、錯誤與複製計時器 |
| 建立非等軌道分布的網格 | 不支援;軌道一律透過 repeat(n, minmax(0, 1fr)) 等分 |
| 建立能適應視窗大小的回應式網格 | 不支援;每次產生一個明確網格,再手動加入媒體查詢 |
| 將項目放在特定網格線上 | 不支援;本工具設定預設項目對齊,而非 grid-column 或 grid-row |
對大量處理無關輸入而言,另一個具備類似本機優先保證的瀏覽器工具於 Convert Text to HTML Paragraphs in Bulk Without a Server 中介紹,採用相同的私有、確定性模式。
解讀產生的 CSS
一個 4 欄 3 列、間距 16px、兩個軸皆置中對齊的網格,其產生規則如下:
.grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); grid-template-rows: repeat(3, minmax(0, 1fr)); gap: 16px; justify-items: center; align-items: center; }
三個細節是刻意設計的。首先,軌道使用 repeat(n, minmax(0, 1fr)) 而非 1fr 1fr 1fr 1fr,因此數字僅出現在數量處,其餘部分則是永遠不會在產生之間變動的固定語法。其次,minmax 中的 min 為 0,這讓彈性軌道能夠在最長字詞或固定寬度子項目之下縮短,而非擴張至超出容器之外。內容本身仍可能需要額外的溢位處理,但軌道之間的間距仍會保持可預期。第三,gap 使用單一長度,因為列與欄共用相同的間距;若您日後決定列與欄需要不同的間距,則已超出有界建構器的範疇,應自行手動編輯規則。
一眼看懂接受與拒絕的輸入
| 欄位 | 接受 | 產生前拒絕 |
|---|---|---|
| 欄數 | 1–12 之間的整數 | 0、13 以上、帶正負號、含小數、加單位、空值、含空白填補、過長 |
| 列數 | 1–12 之間的整數 | 與欄數相同的拒絕清單 |
| 間距 | 0–100 px 之間的整數 | 負數、101 以上、含小數、加單位、空值、含填補、過長 |
| justify-items | stretch、start、center、end | 任何其他文字,包括後接另一個宣告的值 |
| align-items | stretch、start、center、end | 與 justify-items 相同的拒絕清單 |
項目對齊與軌道對齊的差別
兩個對齊下拉選單控制每個網格項目在其自身網格區域內的定位方式。justify-items 處理行內軸(在由左至右書寫的語言中即列方向);align-items 處理區塊軸(即欄方向)。產生器提供的四個值直接對應 MDN 參考:
- stretch 在項目尺寸允許時填滿相關軸。
- start 將項目移向對應邊緣。
- center 將項目置於兩邊緣之間。
- end 將項目移向相反邊緣。
這些並非 justify-content 或 align-content——後兩者是用來在較大容器內對齊軌道群組。它們也不指定個別的 grid-row、grid-column 或 grid-area 放置位置。若需要讓某個項目橫跨兩欄,請在該項目上明確使用 grid-column 來放置,而非期待僅供產生的 .grid 選擇器代勞。
為實際版面調整輸出
產生器只會輸出一個明確的網格,而非響應式系統。repeat(n, minmax(0, 1fr)) 模式是一個實用的等寬軌道起點;它本身並不會根據視口調整軌道數量。若要讓版面在窄螢幕上從四欄縮減為兩欄,請加入媒體查詢、容器查詢,或使用替代範本將 repeat(4, minmax(0, 1fr)) 替換為 repeat(2, minmax(0, 1fr)) 或 repeat(auto-fit, minmax(...))。若需要命名區域、隱含軌道、自動放置控制、子網格(subgrid)、masonry、來源順序變更、跨距,或個別項目對齊,請在產生的規則上手動撰寫額外的宣告。視覺上的網格重排絕不應取代語意的文件順序,因為鍵盤導覽與輔助科技仍依賴有意義的來源結構。請先加入語意 HTML,再依據實際內容與專案的響應式需求調整產生的宣告。