一、什麼是響應式佈局?
響應式設計:Responseive design,就是一個網站,一套程式碼能在所有終端能夠正常展示,並不是為每個終端做一個特定版本,響應式是為解決移動網際網路瀏覽器而誕生的。
二、響應式設計步驟
2.1、viewport 設定
大多數移動端瀏覽器都將html頁面的寬度作為可視區的檢視以符合螢幕解析度,所以我們需要利用 meta 設定 viewport ,將網頁寬度設為裝置寬度。
在head中新增meta標籤,設定裝置的寬度作為檢視大小,禁止縮放。程式碼如下:
<meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1,minimum-scale=1,user-scalable=no" />
2.2、媒體查詢
媒體查詢:Media Queries,是響應式佈局的核心,瀏覽器會根據條件選擇需要渲染的html和css內容。多種螢幕裝置的寬度主要分為四個區間。
超小螢幕 |
小螢幕 |
中等螢幕 |
大螢幕 |
媒體查詢有兩種引入方式:內部引入和外部引入。
2.2.1、內部引入
/* 手機端樣式 */
@media screen and (max-width:768){}
/* ipad終端樣式 */
@media screen and (min-width:768px) and ( max-width:992px ){}
/*筆記本樣式*/
@media screen and (min-width:992px) and (max-width:1200px){}
/* 桌上型電腦大屏 */
@media screen and (min-width:1200px){}
2.2.2、外部引入
/* 手機端樣式 */
<link rel="stylesheet" media="screen and (max-width:768px)" />
/* ipad終端樣式 */
<link rel="stylesheet" media="screen and (min-width:768px) and ( max-width:992px )" />
/*筆記本樣式*/
<link rel="stylesheet" media="screen and (min-width:992px) and (max-width:1200px)" />
/* 桌上型電腦大屏 */
<link rel="stylesheet" media="screen and (min-width:1200px)" />
注意:
- 使用媒體查詢的時候,要把公共樣式放到最前邊,媒體查詢程式碼放到最後。
- 寫媒體查詢的時候要按照螢幕從小到大的設定。
- 外層包裹的元素寬度處理要使用百分比。
- 圖片縮放處理的時候容易失真,所以嘗試給圖片新增最大最小的寬度。
三、響應式佈局例項
eg:製作一個展示圖片的列表,大屏展示一行4張圖片,ipad一行展示3張圖片,手機一行展示兩張圖片。
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> <style> .list{ width:100%; max-width:1200px; padding:0; margin:0 auto; } .pic{ float:left; list-style:none; box-sizing: border-box; padding:10px; margin:15px 0px; } .picture{ width:100%; height:100px; background:#eaeaea; } @media screen and (max-width:768px) { .pic{ width:50%; } } @media screen and (min-width:768px) and (max-width:992px) { .pic{ width:33%; } } @media screen and (min-width:992px) { .pic{ width:25%; } } </style> </head> <body> <ul class="list"> <li class="pic"><div class="picture"></div></li> <li class="pic"><div class="picture"></div></li> <li class="pic"><div class="picture"></div></li> <li class="pic"><div class="picture"></div></li> <li class="pic"><div class="picture"></div></li> <li class="pic"><div class="picture"></div></li> <li class="pic"><div class="picture"></div></li> <li class="pic"><div class="picture"></div></li> <li class="pic"><div class="picture"></div></li> <li class="pic"><div class="picture"></div></li> <li class="pic"><div class="picture"></div></li> <li class="pic"><div class="picture"></div></li> </ul> </body> </html>
執行以後不斷改變瀏覽器的寬度,圖片元素佈局會自動改變。
bootstrap框架用的就是媒體查詢原理,我們做響應式佈局的時候,基本都會借用bootstrap框架提高工作效率。
四、響應式優缺點
4.1、優點:
- 面對不同解析度裝置靈活性強。
- 能夠快捷解決多裝置顯示的適應問題。
4.2、缺點:
- 響應式網站無法區分移動端,所以會出現隱藏部分無用內容,浪費寬度,載入耗時長。響應式佈局使用移動端窄屏時,隱藏內容依然會載入,低解析度載入高質量圖片或視訊,不同螢幕尺寸都提供相同的網頁,載入內容多,浪費流量,速度慢,容易造成使用者流失。
- 相容所有終端,工作量大,效率低下。
- 僅適用佈局、資訊、框架並不複雜的部門型別網站。
- 響應式對於 低版本IE瀏覽器簡直是悲劇。響應式裡運用了很多html5新特性,而這些特性只要高階瀏覽器才支援,所以在IE6、7、8幾乎是看不了的。
- 響應式設計不利於百度關鍵詞優化和排名。使用者在不同終端搜尋習慣不同,百度對移動端和PC端的關鍵詞處理策略也不同,百度搜尋排名也是有PC和移動端之分的,所以如果要做優化,不建議響應式佈局。
建議你的網站最好分別製作移動端和PC端,這樣網站效能、使用者體驗、使用者留存相對來說會好很多。大公司它們的網站都是獨立的,很少使用響應式佈局。