響應式設計與自適應設計

響應式設計與自適應設計

相信從事前端頁面設計的人都知道,頁面呈現的效果及用戶體驗是非常重要的。當今社會移動設備的使用已超過了pc端,面對不同分辨率的設備,怎樣做到頁面體驗的效果一樣呢?這就成了最頭疼的事情。

下面我們來看看響應式設計與自適應設計兩者用法:

響應式Web設計(Responsive Web Design) :主要利用CSS3媒介查詢(Media QueryViewport解決問題。通過媒介查詢的設置,根據屏幕寬度、屏幕方向等各個屬性來加載不同場景下不同的CSS文件來渲染頁面的視覺風格。

具體使用方法如下

1meta標籤viewport屬性

<meta name=”viewport” content=”width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0”/>

視窗寬度width=device-width設備寬度

視窗縮放initial-scale=1不可縮放狀態   maximum-scale=1不可放大

user-scalable=0 是否允許用戶調整縮放,如果設置爲yes則允許用戶對其改變反之則爲no如果設置no,那麼minimum-scalemaximum-scale都將忽略,用爲根本不可能縮放。所有縮放的值都必須在0.01-10範圍之內。

2media query(兩種方式)

a:通過link標籤

<link rel=”stylesheet” type=”text/css” media=”screen and(max-width: 600px)” href=”style1.css”/>

示例代碼代表當前屏幕寬度小於600px的時候,加載style1.css文件來渲染頁面。

bCSS直接設置

@media screen and(max-width: 600px){

/* 具體CSS屬性設置 */

}

從上面的例子可以看出,字符間以空格相連,選取條件包含括號內only(限定某種設備,省略)and(邏輯與not排除某種設備邏輯關鍵字,多種設備用逗號分隔,這一點繼承了CSS基本語法。

3

面對不同分辨率設備靈活性

能夠快捷解決多設備顯示適應問題

4、缺點

兼容各種設備工作量大,效率低下

代碼累贅會出現隱藏無用的元素加載時間加長

一定程度改變了網站原有佈局結構,會出現用戶混淆的結果

 

自適應網頁設計(Adaptive Web Design):指能使網頁自適應顯示在不同大小終端設備上網頁設計及技術。

主要注意的問題如下

1首先在網頁代碼頭部,加入一行viewport標籤

<meta name=”viewport” content=”width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0”/>

所有主流瀏覽器都支持這個設置,包括IE9對於那些老式瀏覽器(主要IE678需要使用css3-mediaqueries.js

<![if lt IE 9]>

<script src=http://css3-mediaqueries-js.googlecode.com/svn/trunk/css3-mediaqueries.js”></script>

<![endif]-->

2、不使用絕對寬度由於網頁會根據屏幕寬度調整佈局,不能使用width: xxx px具體的像素值,使用百分比width:xxx %或者width:auto

3、相對大小的字體字體也不使用絕對大小px,而只能使用相對大小(em)設置body字體爲100%,即字體大小是頁面默認大小100%也是16px例如p{ font-size: 1.5em; }p大小默認大小的1.524px 24/16=1.5 ))

4、流動佈局各個區塊的位置都是浮動的,不是固定不變的

.left {

float: left;

width: 20%;

}

.right {

float: right;

width: 75%;

}

Float好處是,如果寬度太小放不下兩個元素,後面的元素會自動滾到前面元素的下方,不會再水平方向溢出,避免了水平滾動條的出現。:絕對定位position: absolute使用,也要非常小心。

5、圖片的自適應

img { max-width: 100%; height: auto }

這行代碼對於大多數嵌入網頁的視頻也有效果,所以可以寫成:

img object { max-width: 100%; height:auto}

老版本Ie不支持max-width,所以只好寫成

img { width: 100%; height:auto}

此外windows平臺縮放圖片可能出現圖像失真現象,這可以嘗試使用IE專有命令:

Img { -ms-interpolation-mode: bicubic }

或者Ethan MarcotteimgSizer.js

addLoadEvent(function(){

var imgs = document.getElementById(“content”).getElementsByTagName(“img”);

imgSizer.collate(imgs);

})

 

注:自適應網頁設計的核心,就是CSS3引入的Media Query模塊,與響應式佈局設計的使用一樣。

兩者區別與選擇:

理論上說,響應式佈局在任何情況下都比自適應佈局好一些,但在某些情況下自適應佈局更切實際。

 自適應佈局可以讓你的設計更加可控,因爲你只需要考慮了了幾種狀態就萬事大吉了。但在響應式佈局中你可能需要面對非常多狀態——是的,大部分狀態之間的區別很小,但它們又的確是不同的——這樣一來就很難確切搞清你的設計會是什麼樣。同時這也帶來了測試上的難題,你很難有絕對的把握預測到它會怎樣。換個角度說,這也是響應式佈局的魅力所在。通過允許表面上的不確定因素存在,你可以獲得更高層次上的確定。雖然你無法在精確到像素級別準確預知你的設計如何在943px×684px視覺區域匯中展示,但你能確定的是它們一定能展示的很好——不管是表層特徵還是佈局結構都有條不紊。

     自適應佈局有它自己的優勢,因爲它們實施起來代價更低,測試更容易,這往往讓他們成爲更切實際的解決方案。自適應佈局可以看做響應式佈局的“窮兄弟”,在資源有限的情況下就可以讓它出馬。特別是改進現有網站的時候尤其奏效,因爲全部重寫代碼在這時並不可行。這種案例中,採用自適應佈局是一個不錯的出發點。

其實無論是哪種設計理念都是各有優缺的,還是要從個人實際去求出發去選擇!


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章