CHAPTER 07 · PRACTICE WORKSPACE

Grid 卡片牆、換行與 overflow

完成整齊且不溢出的作品卡片列表

03 Checkpoint 2 2/3
  1. 01Starter讀懂作品骨架
  2. 02Checkpoint 1加入第一項能力
  3. 03Checkpoint 2累積第二項能力
  4. 04Solution核對完整結果

TASK STATUS

三項任務目前狀態

TASK-01已完成

建立自動調整欄數的 Grid

修改檔案:style.css

完成後看見:作品卡片依寬度自動排成多欄

TASK-02已完成

加入一致的卡片間距

修改檔案:style.css

完成後看見:卡片之間留有整齊空隙

TASK-03本階段處理

處理過長網址溢出

修改檔案:style.css

完成後看見:長網址會換行且不超出卡片

WORKSPACE

本階段實作區

已完成 TASK-02;先核對可見結果,再前往 TASK-03。

FOCUS TASK · TASK-03

現在只處理:處理過長網址溢出

修改:style.css

完成後:長網址會換行且不超出卡片

講解時展開:2 個小型比較

overflow-wrap vs overflow hidden|長網址怎麼處理

比較:換行保留內容可讀性,隱藏只把問題藏起來;長網址應優先能在卡片內換行。

現在做:在 Checkpoint 2 的 DevTools 先把 .project-link 暫時設為 overflow-wrap: anywhere,於 390px 寬度觀察網址完整換行;移除後改成 overflow: hidden、white-space: nowrap、text-overflow: ellipsis,比較內容被保留與被截斷的差異;最後恢復 overflow-wrap: anywhere。

看預期與證據

預期:能用同一條長網址分辨換行是保留內容、hidden/ellipsis 是隱藏內容;標準答案要讓網址全文可讀,不能用裁切消除證據。

證據:留下 390px 寬度的換行與截斷對照,並展示最後 .project-link 的 computed overflow-wrap 與頁面 scrollWidth/clientWidth。

長網址 vs 一般文字|邊界案例要單獨驗收

比較:一般文字能換行不代表長 URL 也能換行,必須用最長內容實際驗證。

現在做:在 Checkpoint 2 的 Elements 暫時把第二張卡的「查看作品」文字換成不含空白的長 URL,於 390px 重跑原操作;再恢復一般文字,對照兩種內容的換行結果,最後用第一張長 URL 做正式驗收。

看預期與證據

預期:能說明一般文字正常換行不代表沒有空白的 URL 也安全;只有用邊界內容實測,才能證明 .project-link 的規則真的保護卡片。

證據:留下第二張卡替換前後的 390px 對照,並指出正常文字與長 URL 都沒有造成頁面水平捲動。

需要排錯時查看:任務循環(觀察 → 預測 → 實作 → 故障 → 驗收)
  1. A|觀察:在 Checkpoint 2 切到 390px,確認 Grid 與 20px 間距正常,接著定位仍撐出卡片的超長網址。
  2. B|預測:把視窗縮到 390px,確認長網址會換行且頁面沒有水平捲動。
  3. C|實作:在 style.css 的 .project-link 完成「處理過長網址溢出」,一次只處理本任務責任。
  4. D|故障:若結果不一致,先依原操作重現,再檢查 .project-link 與 style.css,最後重跑原操作。
  5. E|驗收:長網址會換行且不超出卡片

完成條件:DONE-03:長網址會換行且不超出卡片

第 06 章交棒

Flex 排好隊,現在讓卡片入住格子

上一章已完成橫向導覽與左右兩欄;本章把共同父層的排列責任擴成同時管理列與欄,並處理長內容。

我的作品

活動報名頁

清楚呈現活動資訊與報名流程。

查看作品

個人介紹頁

整合文字、圖像與學習歷程。

查看作品

作品查看區

這是本地練習目標;卡片連結都指向這個頁內區塊,長網址文字用來驗收卡片內換行,不需要連線。

CONTINUE

繼續完成 TASK-03

前往 Solution,依要求完成「處理過長網址溢出」。

前往 Solution:完成 TASK-03