Skip to content

Instantly share code, notes, and snippets.

@ywwwtseng
Last active April 20, 2025 08:41
Show Gist options
  • Save ywwwtseng/6d2d3ffb512baf0ab06f300590912216 to your computer and use it in GitHub Desktop.
Save ywwwtseng/6d2d3ffb512baf0ab06f300590912216 to your computer and use it in GitHub Desktop.

響應式設計 (Responsive Design)

什麼是響應式設計?

響應式設計(Responsive Design)是一種網頁設計方法,旨在使網頁的佈局和元素能根據不同設備的螢幕尺寸、解析度以及視窗大小自動調整。這樣的設計方式可以提供用戶在各種裝置上都能獲得最佳的瀏覽體驗。

為什麼使用響應式設計?

  • 適應不同裝置:隨著智慧型手機、平板電腦和桌面電腦等設備的多樣化,響應式設計確保網站能夠在各種設備上無縫顯示。
  • 提升用戶體驗:提供一致的設計體驗,無論用戶使用什麼設備,頁面都能自動調整。
  • 提高SEO排名:搜索引擎(如 Google)優先考慮具有響應式設計的網站,並給予較高的排名。

基本概念

  • 流式佈局(Fluid Layouts):使用相對單位(如百分比)來設置元素的尺寸,讓它們能隨著螢幕大小改變而自適應。
  • 媒體查詢(Media Queries):根據設備的特性(如螢幕寬度、解析度等)應用不同的CSS規則。
  • 靈活的圖片(Flexible Images):圖片尺寸可以自動調整,以適應不同螢幕大小。

Mobile First vs Desktop First

Mobile First(移動優先)

  • 定義:從小螢幕設備(如手機)開始設計,然後逐步擴展到大螢幕設備(如桌面)。
  • 優點
    • 由於移動設備通常擁有較小的螢幕和較慢的網路連接,從小螢幕開始設計有助於優化性能和加載速度。
    • 這種方法能確保網站能在移動設備上提供最佳體驗。
  • 實踐:使用 media queries 來根據不同的螢幕大小進行調整。

Desktop First(桌面優先)

  • 定義:從桌面設備開始設計,再根據需要調整為移動設備的佈局。
  • 優點
    • 在桌面端設計可以使用更多空間來處理布局和設計。
  • 缺點:較不適合當前趨勢,因為現在移動端的使用率遠高於桌面端。

常用技術

1. Media Queries

媒體查詢是一種CSS技術,允許根據設備的特性(如螢幕寬度、高度、解析度)來應用不同的樣式。

/* 默認樣式:適用於小螢幕 */
body {
  font-size: 14px;
}

.container {
  width: 100%;
}

/* 螢幕寬度大於 768px 時 */
@media (min-width: 768px) {
  body {
    font-size: 16px;
  }

  .container {
    width: 80%;
  }
}

/* 螢幕寬度大於 1024px 時 */
@media (min-width: 1024px) {
  body {
    font-size: 18px;
  }

  .container {
    width: 70%;
  }
}

2. Flexbox

Flexbox 是一種強大的布局模型,能讓容器內的項目自動調整位置,並且可以輕鬆處理響應式設計中的排列問題。

.container {
  display: flex;
  flex-wrap: wrap;
}

.item {
  flex: 1;
}

3. Grid

CSS Grid 是另一種強大的佈局系統,它允許設計複雜的網格結構,可以更靈活地調整網站的佈局。

.container {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
}

.item {
  grid-column: span 1;
}

4. 相對單位(em, rem, %, vh, vw)

使用相對單位(如 em、rem、%、vh、vw)來設計元素,這樣可以確保設計能隨螢幕大小而自適應。

  • em:相對於當前元素的字體大小。
  • rem:相對於根元素(html)的字體大小。
  • %:相對於父元素的尺寸。
  • vh / vw:相對於視窗的寬度(vw)或高度(vh)。

5. 自適應圖片

為了確保圖片能適應不同設備的顯示,使用 srcset 或 picture 標籤來根據設備的解析度選擇適合的圖片。

<img src="image.jpg" srcset="image-small.jpg 480w, image-medium.jpg 768w, image-large.jpg 1200w" alt="Responsive Image">

響應式設計的實踐建議

從小螢幕開始設計:從移動端開始設計,然後逐步增強佈局以適應大螢幕。

設置靈活的容器:使用百分比、vw、vh 等單位設置元素的寬度和高度,使其能自適應不同螢幕。

使用現代布局模型:如 Flexbox 和 Grid,可以幫助在不同螢幕尺寸下維持一致的佈局結構。

優化圖片:根據設備解析度選擇不同尺寸的圖片,減少載入時間。

測試不同設備:經常測試網站在不同設備和解析度上的顯示效果,確保設計能提供一致的體驗。

小結

響應式設計是一種針對不同設備和螢幕尺寸的自適應設計方法,能夠提升網站的可訪問性、性能和用戶體驗。隨著移動設備的普及,採用響應式設計已經成為現代網頁設計的標準。透過 media queries、Flexbox、Grid 等技術,可以實現高度自適應的網站佈局。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment