建立自動換欄 Grid
卡片可依容器寬度從多欄縮成單欄。
CHAPTER 07 · 180 MINUTES
完成會隨寬度自動換欄、間距一致,而且長網址不會衝破邊界的作品卡片牆。
LEARNING GOALS
卡片可依容器寬度從多欄縮成單欄。
用 gap 管理整面卡片牆,不逐張推位置。
長網址會換行且完整保留,不用 hidden 把內容切掉。
PROBLEM & ANALOGY
Flex 像排隊;Grid 像先畫好置物櫃格子,再把作品卡片放進去。長網址則像過長物品,要讓它能折放,而不是把櫃門切掉。
本章要解決:固定欄數在窄畫面過擠、每張卡間距不一致,以及不含空白的網址撐破卡片。
接住上一章:Flex 已能管理一條隊伍,這次處理同時需要列與欄對齊的作品列表。
SCOPE
grid container、欄、gap、repeat、minmax、auto-fit 與基本 overflow 排查。
固定三欄與自動換欄的差異,以及內容是否有斷行機會。
命名網格線、複雜跨列定位與 masonry。
CORE IDEAS
repeat(auto-fit, minmax(...))
讓欄數由可用空間決定,不需替每種寬度手算欄數。
gap 同時管理列與欄的共同間距。DEBUG
課堂刻意錯誤:把換行規則加在 grid container,而不是長網址連結,觀察問題仍留在卡片內。
.project-link 後重測多個寬度。
先查:先查是否仍寫死三欄,再看 repeat、auto-fit 與 minmax。
先查:確認 gap 寫在 grid container,不要用多份 margin 補洞。
先查:在窄視窗找出真正超出的 link,再給它合理斷行機會。
PRACTICE CONTRACT
檔案:style.css
位置:.project-grid
結果:作品卡片依寬度自動排成多欄
檔案:style.css
位置:.project-grid
結果:卡片之間留有整齊空隙
檔案:style.css
位置:.project-link
結果:長網址會換行且不超出卡片
EVIDENCE
我的 grid container 是 ______;欄數由 ______ 決定;溢出的真正元素是 ______,我用 ______ 修正。
不要用 overflow:hidden 把問題藏起來;要能指出是內容子元素撐破卡片。
提交桌機、平板、手機三種寬度截圖,網址全文必須仍可讀。
下一章:替卡片加入角落標籤,並讓返回按鈕固定在視窗右下角。