RWD 網頁設計(四):響應式版面設計技巧

前言
學會了 CSS 和媒體查詢後,接下來就是打造「會變形」的版面。 本章會介紹流式排版、Flexbox、Grid 這三種現代 RWD 版面設計技巧,讓你的網站不論在手機、平板還是桌機上都能自動排得漂亮!
流式排版(Fluid Layout)
流式排版是最早期的 RWD 技巧,核心概念是用「相對單位」讓元素隨螢幕寬度自動縮放。
常用單位
- 百分比(%):根據父元素寬度自動調整
- vw/vh:相對於視窗寬度(viewport width)或高度(viewport height)
- em/rem:相對於字體大小
範例
.container {
width: 90%;
max-width: 1200px;
margin: 0 auto;
padding: 2vw;
}
Flexbox 的響應式設計
Flexbox 是現代 CSS 排版的利器,能輕鬆實現橫向、直向、換行、對齊等彈性布局,非常適合 RWD。
基本語法
.parent {
display: flex;
flex-wrap: wrap; /* 允許自動換行 */
justify-content: space-between; /* 主軸對齊 */
align-items: center; /* 交錯軸對齊 */
}
.child {
flex: 1 1 200px; /* 彈性成長、縮小、基礎寬度 */
margin: 8px;
}
響應式應用
配合媒體查詢,可以讓 Flexbox 排列方式自動切換:
.parent {
flex-direction: row; /* 預設橫向 */
}
@media (max-width: 600px) {
.parent {
flex-direction: column; /* 手機改為直向 */
}
}
}
CSS Grid 的響應式設計
CSS Grid 是另一個強大的版面工具,適合做多欄、多列的複雜布局。
基本語法
.grid-container {
display: grid;
grid-template-columns: repeat(3, 1fr); /* 3 欄等寬 */
gap: 16px;
}
.grid-item {
background: #e0f7fa;
padding: 16px;
}
響應式應用
用媒體查詢讓欄數自動變化:
.grid-container {
grid-template-columns: repeat(3, 1fr);
}
@media (max-width: 800px) {
.grid-container {
grid-template-columns: repeat(2, 1fr);
}
}
@media (max-width: 500px) {
.grid-container {
grid-template-columns: 1fr;
}
}
響應式導航選單設計
RWD 網站常見的需求,就是在手機上將橫向選單變成「漢堡選單」或直式選單。
基本概念
- 桌機:橫向排列,所有選單項目一目了然
- 手機:收合成一個按鈕,點擊展開選單(可用 JavaScript 輔助)
簡單範例
.nav-list {
display: flex;
flex-direction: row;
}
@media (max-width: 600px) {
.nav-list {
flex-direction: column;
display: none; /* 預設收合 */
}
.nav-list.active {
display: flex; /* 點擊按鈕後展開 */
}
}
結論
流式排版、Flexbox 與 Grid 是現代 RWD 版型設計的三大支柱。 只要靈活運用這些工具,再搭配媒體查詢,就能讓網站在各種螢幕下自動排版、保持美觀。
分享這篇文章: