
最後幾天了!封面來喝個珍珠奶茶~ (ノ>ω<)ノ 🧋
直接進入今天的主題!
隨著螢幕尺寸變化,版面會從小變大、從窄變寬,排版方式也需要跟著調整。以下將介紹響應式網頁中常用的版面轉換技巧。
flex 或 grid 的排版方式,改變元件的排列方向。inline 效果的屬性(如:inline、inline-block、inline-flex),讓元素自然水平排列,自動換行。padding、margin 保持視覺平衡。
44px × 44px 才方便點擊。16px。rem 保持比例協調。clamp()、vw 等彈性單位,實現平滑的動態調整,而非在固定斷點突然改變。display: none; 隱藏次要資訊,搭配媒體查詢在不同斷點能隱藏對應版型,顯示適合當前裝置的介面結構。text-overflow: ellipsis 截斷過長文字。order 或 grid 屬性重新排列內容順序。overflow 屬性處理內容超出問題。當內容過多時使用 overflow: auto 顯示捲軸;若出現意外捲軸,檢查超出元素後使用 overflow: hidden 隱藏。input[type="radio"] 搭配 :checked 偽類實現內容分頁切換。aspect-ratio 屬性設定統一的圖片顯示比例。object-fit: cover 讓圖片填滿容器並裁切多餘部分。max-width: 100% 和 height: auto 確保圖片不會超出容器。min-width、max-width 限制圖片的顯示範圍。overflow-x: scroll 或 overflow-x: auto 啟用水平捲動。::-webkit-scrollbar 這個選擇器,可以自訂捲軸外觀,讓使用者更容易發現。height: 100vh; 會擋到下方元件。
100vh 時,下方需預留空間給瀏覽器介面。dvh 可以動態取得手機瀏覽器可視高度,但因為瀏覽器 UI 會動態顯示/隱藏,可能造成內容跳動。為避免跳動,可改用 lvh(瀏覽器 UI 隱藏時高度)或 svh(瀏覽器 UI 顯示時高度)。hover 效果。於行動裝置上時,應轉換為適合觸控裝置的操作模式。
@media (hover: hover) 偵測裝置是否支援懸停效果。:focus、:active 或 JavaScript 控制的 class 取代 :hover 效果。display: none; 在不同斷點隱藏對應版型,只顯示適合當前裝置的介面結構。Container Query 是較新的 CSS 功能,能讓元素根據父容器的尺寸來調整樣式,而非像 Media Query 依據視窗尺寸調整樣式。
.container {
container-type: inline-size; /* 啟用容器查詢 */
}
@container (min-width: 600px) {
.card {
display: grid;
grid-template-columns: 200px 1fr;
}
}
@container (max-width: 599px) {
.card {
display: block;
}
}
Container Query 的優勢:
這幾天介紹了響應式網頁設計(RWD)的核心概念與實作技巧,從基礎的 viewport 設定到進階的媒體查詢應用。透過這些知識,你現在能夠:
clamp() 函數實現彈性的尺寸設定掌握這些技巧後,你將能夠創建在各種裝置上都能提供優質瀏覽體驗的網頁。確認網頁版面時,可以拖拉瀏覽器視窗大小來檢查樣式是否正確套用,或使用瀏覽器開發者工具(F12),模擬多種裝置尺寸來瀏覽網頁。
