響應式網頁

解決跨裝置不同寬度顯示問題

RWD 與 AWD

RWDAWD
網址數量12
維護數量12
SEO重複內容與流量分散
載入速度更快
開發成本較低
維護成本較低
相容性較低

Fluid image

img 這個不太受控的元素,常常會導致實作 RWD 時破版

.fluid-image {
    width: 100%;
    height: auto;
}

由於在意的是寬度會不會破版,所以將 width 限制在 100%

高度設定 auto 是因為圖片有比例問題,如果高度也設定固定高度,會造成圖片比例失真

寬高其中一邊為固定,另外一邊必定為 auto

設定 width:100% 有個問題,如果圖片寬度不夠時,會被硬拉到滿版,此時也可能會造成圖片顯示失真,改為 max-width 解決此問題

.fluid-image {
    max-width: 100%;
    // width: 100%;
    height: auto;
}

Media Query

依據不同條件套用對應 CSS 樣式

@media <not | only> <media type> and (<media feature> <and | or | not> <media feature>){
    // CSS
}

media type

typedescription
all全部 (預設)
print印表機
braille點字機
screen視窗螢幕大小
handheld行動裝置
tv電視
projection投影機

常用的有 screenprint

列印學生成績

media feature

featuredescription
device-width裝置寬度
device-height裝置高度
width視窗寬度
height視窗高度
max-device-width最大裝置寬度
max-device-height最大裝置高度
max-width最大寬度
max-height最大高度
min-device-width最小裝置寬度
min-device-height最小裝置高度
min-width最小寬度
min-height最小高度
orientation裝置方向,portrait(直向) landscape(橫向)

常用的有 min-widthmax-width

min-width 大於等於時套用

max-width 小於等於時套用

一個網站 min-widthmax-width 不要同時使用,避免規則衝突

練習

  • 設定一個區塊,背景顏色黃色
  • 小於等於 800px 時變藍色
  • 小於等於 600px 時變紅色

此範例有什麼問題

Grid System

使用 class 讓頁面適應各種裝置寬度

格數 Column

每一列切割的數量,可自定義,常見為 12 格系統 (12 column grid system)

溝槽 Gutter

格與格之間的距離,可使用 marginpadding 實作

flexboxgrid

主流 CSS 框架都有實作 grid system,不用自己實作,知道原理即可