現有網頁簡易改成支援RWD
現有網頁視覺設計的結構若沒有很複雜,可以通過CSS架構重組,利用模組化結構簡易實現RWD自適應頁面的效果。
- 依循Box觀念的結構化架框
頁面版面框架結構若未依循Box結構規範,先修訂為結構化架框(參照下方全寬視覺版面結構修訂)
- 在<head></head>內加入viewport宣告
<meta name="viewport" content="width=device-width; initial-scale=1; maximum-scale=1; user-scalable=0;">
- 主box寬度用%來定寬度
當列區有2欄以上的版面結構時,用BOX區塊並設為float來達成多欄效果。
最外框的box,將寬度換算成%來訂,不要用px來指定寬度,padding-lef和padding-right需為0
每一欄需有邊界時,在每一欄的box內再建一個box來定padding-lef和padding-right
最外框的box,將寬度換算成%來訂,不要用px來指定寬度,padding-lef和padding-right需為0
每一欄需有邊界時,在每一欄的box內再建一個box來定padding-lef和padding-right
- Media Queries調整不同寬度時的CSS變化
建議可以另建一個css檔,建media rule都放在這個CSS檔內會比較好管理
幾個必要的寬度定義,小於最大閱讀寬度時,最小手機寬度等等...
@media screen and (max-width:999px){內放符合此寬度要改變的CSS定義}
@media screen and (max-width:500px){內放符合此寬度要改變的CSS定義}
建議順序一致,也就是用max-width來判斷時,最好由上到下都是max-width,是min-width則都用min-width,這樣會比較好控管
細節可以參考 http://www.w3schools.com/cssref/css3_pr_mediaquery.asp 說明
幾個必要的寬度定義,小於最大閱讀寬度時,最小手機寬度等等...
@media screen and (max-width:999px){內放符合此寬度要改變的CSS定義}
@media screen and (max-width:500px){內放符合此寬度要改變的CSS定義}
建議順序一致,也就是用max-width來判斷時,最好由上到下都是max-width,是min-width則都用min-width,這樣會比較好控管
細節可以參考 http://www.w3schools.com/cssref/css3_pr_mediaquery.asp 說明
- 其他相關
- 文字可以盡量用em替代px,1em=13px來換算,可以為小數
- image 以CSS定義width=100%,若圖片原始大小小於media width時則要加設max-width
- 在@media中最好加上 !important (優先權)以避免tag為class無優先權時無法變更原來屬性的問題
全寬視覺的版面結構
按照主背景不同由上而下切分為幾個橫列,每個橫列的Box就各各自塞入背景圖
用wrap_ct來控制和調整內容區的寬度並自動置放於螢幕中間
box有塞背景圖,min-height: hight:100% backgroud-color 保持彈性
用wrap_ct來控制和調整內容區的寬度並自動置放於螢幕中間
box有塞背景圖,min-height: hight:100% backgroud-color 保持彈性
.wrap_ct {
<div id="(ROW1區)">
<div id="(ROW2區)">
<div id="(ROW3區)">
max-width: 999px;//閱讀視覺的寬度
width: 100%;//必要條件
height: 100%;//可選
margin-right: auto; margin-left: auto;//必要條件
}
width: 100%;//必要條件
height: 100%;//可選
margin-right: auto; margin-left: auto;//必要條件
}
<div id="(ROW1區)">
<div class="wrap_ct"></div>
</div><div id="(ROW2區)">
<div class="wrap_ct"></div>
</div><div id="(ROW3區)">
<div class="wrap_ct"></div>
</div>