首先使用 Flexbox Froggy 練習沿著座標軸對齊,然後使用 Grid Garden 練習在網格線之間放置元素。完成每個遊戲練習後,在你自己的小頁面上重現這個想法。一個有用的成果是能夠解釋為什麼在佈局變更時某個聲明仍然有效,而不是僅僅記住某個關卡的答案。
如何透過遊戲學習 CSS 並將其應用
此課程結合了兩個遊戲和三個原創練習。它適合能夠閱讀簡單 CSS 規則並希望獲得直覺回饋的人。這並非完整的 Web 開發課程:實際的介面還需要可讀的內容、響應式設計、鍵盤存取以及針對不同文字量的測試。
選擇與您的問題相關的練習
| 您的問題 | 從這裡開始 | 然後嘗試 |
|---|---|---|
| 如何沿行移動項目? | Flexbox Froggy | 練習 1:將組移到最後 |
| 為什麼切換到列時對齊方式改變了? | Flexbox Froggy | 練習 2:更改主軸 |
| 如何讓一個元素跨越指定的欄? | Grid Garden | 練習 3:將卡片放在兩條網格線之間 |
這些遊戲由 Codepip 開發。 Cozcade 將每個託管遊戲連結到其對應的指南:Flexbox Froggy 及其指南;Grid Garden 及其指南。原始的 Froggy 和 Grid Garden 頁面提供了作者自己的版本。請在此處使用鍵盤進行程式碼練習。
選擇屬性前,先分清主軸與交叉軸
Flexbox 具有主軸和交叉軸。 flex-direction 設定主方向;justify-content 將元素沿主軸定位,而 align-items 則與交叉軸相關。在普通的從左到右的行中,主軸是水平的。將方向變更為列,主軸則變為垂直。這些定義在 MDN 的 Flexbox 簡介 中有詳細介紹。
在 Froggy 中嘗試聲明之前,請先指定元素的移動方向。然後,根據當前主軸為該方向命名。這樣可以將錯誤的答案轉換為一個具體的問題:您是否選擇了錯誤的屬性、錯誤的值或錯誤的軸?
練習 1:將一組元素移到最後
在一個容器內建立三個小元素。這是一個原創練習,並非複製遊戲關卡或答案。
<div class="practice-row">
<span>A</span><span>B</span><span>C</span>
</div>.practice-row {
display: flex;
gap: 0.5rem;
min-height: 8rem;
padding: 1rem;
border: 2px solid;
direction: ltr;
}你的目標是將這三個元素一起移向右側,同時保持順序不變,也不分別為元素設定外邊距。先預測結果,再將 justify-content: flex-end 加到容器中。
現在將其與 justify-content: space-between 進行比較。第一個選項移動了這組元素;第二個選項則在元素之間分配了可用空間。嘗試使用窄容器和寬容器。解釋一下,對於三個需要保持緊密排列的按鈕,你會選擇哪個版本。最終的視覺效果比記住一個數值更重要。
練習 2:保持指令不變,改變座標軸
重複使用此容器,新增 flex-direction: column,設定 height: 12rem,並保留 justify-content: flex-end。現在,這些項目聚集在底部。您的聲明並沒有變成“向右移動”命令:它仍然沿著您更改的主軸生效。
接下來,新增 align-items: flex-start。比較添加前後的排列。按照指定的從左到右方向,項目沿著交叉軸向左對齊。移除該聲明,再次觀察預設的拉伸行為。
請簡要解釋這兩個更改,不要使用「它就生效了」這樣的表述。例如,指出座標軸、空白區域以及正在定位的群組。如果您無法解釋結果,請將範例簡化為兩個項目,並一次只更改一個聲明。這是遊戲中需要養成的習慣。
接下來,區分網格軌道和邊界。
Grid 透過列與欄兩側的網格線定位元素。五欄顯式網格共有六條欄網格線。從第 3 條欄網格線放到第 5 條,元素會跨越兩欄,而不是三欄。網格軌道、儲存格與網格線的差別可參閱 MDN 的 Grid 入門說明。
在 Grid Garden 中,先確定起始與結束網格線,再嘗試放置元素。如果容易把網格線與中間的空格混淆,可以在自己的頁面上畫出或標註這些邊界。
練習 3:將卡片放在兩條網格線之間
創建一個五列的棋盤,並在上面放置一張卡片:
<div class="practice-grid">
<div class="practice-card">Two-column card</div>
</div>.practice-grid {
display: grid;
grid-template-columns: repeat(5, minmax(0, 1fr));
grid-template-rows: repeat(3, 4rem);
gap: 0.5rem;
direction: ltr;
}
.practice-card {
grid-column: 3 / 5;
grid-row: 2;
background: #d9ceff;
color: #201538;
}在打開頁面之前預測卡片會出現在哪裡。然後,僅透過改變卡片的列位置,使其佔據整個棋盤。在上面的五欄顯式網格中,grid-column: 1 / 6 會從第一條網格線延伸到最後一條。
最後,將文字變更為更長的句子,並縮小瀏覽器視窗。放置規則可能仍然正確,但卡片的固定高度顯示方式不再適合其內容。解決遊戲練習可以學習佈局的一部分;建立一個可用的頁面還需要檢查內容。
將遊戲進度當作回饋,而不是掌握的證明。
成功完成練習後,更改一個假設:方向、項目數量、可用寬度或文字長度。在查看結果之前先預測結果。如果你能靈活運用思路並解釋變化,那麼你學到的就不僅僅是簡單的答案了。
返回遊戲時,請確保開啟的是相同版本和瀏覽器環境。 Cozcade 帳號收藏夾用於標記你想重玩的遊戲;但這並不保證遊戲內部的學習進度會在不同裝置間同步。在查看進度時,請避免刪除已儲存的網站數據,並且僅在特定遊戲提供匯出功能時才使用。
繼續查看對應遊戲的攻略
使用Froggy 指南進行軸線和對齊練習,使用Grid Garden 指南進行定位題練習。如果之後你想進行其他類型的練習,請瀏覽學習遊戲。
以上練習是為本文而寫的。參考頁已於2026年10月11日審核。我們記錄的遊戲測試僅涵蓋少量桌面交互,並非所有關卡的完成或完整的行動裝置課程。本文教授一套練習流程;它不授予任何資格證書,也不能取代您自行測試介面。
您可以在 Cozcade 上玩的遊戲
設備和進度問題
Cozcade 帳號是否會儲存所有遊戲的進度?
帳戶收藏夾可協助您儲存遊戲清單。遊戲的內部棋盤、分數或課程進度是獨立的,取決於該遊戲的儲存功能。請勿假設登入後會在瀏覽器或裝置之間傳輸存檔。請查看具體遊戲和版本的說明。
清除瀏覽器資料會刪除我的遊戲進度嗎?
刪除網站或遊戲的儲存資料可能會清除本地保存的進度。瀏覽器設定會區分快取檔案、Cookie 和其他網站存儲,但清理選項可能會同時刪除幾種類型的檔案。請檢查您要刪除的內容,並在刪除資料之前使用遊戲提供的匯出功能(如果有)。
哪些遊戲可以在我的裝置上運作?
使用遊戲目錄中的裝置選項,然後閱讀所選遊戲頁面上的控制說明。某些操作需要鍵盤或精確的指針輸入。頁面在手機上載入本身並不能保證遊戲支援觸控操作。