<button id="g80sy"></button>
  • <abbr id="g80sy"></abbr>
  • <button id="g80sy"></button>
    <rt id="g80sy"><delect id="g80sy"></delect></rt>
  • 響應式設計與自適應設計

    程序猿 2021-02-26 15:16:59 1823瀏覽 加載中

    響應式設計與自適應設計

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

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

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


    具體使用方法如下:


    1、meta標簽的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-scale和maximum-scale都將被忽略,用為根本不可能縮放。所有縮放的值都必須在0.01-10的范圍之內。


    2、media query(兩種方式)


    a:通過link標簽

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

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

    b:CSS中直接設置

    @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,對于那些老式瀏覽器(主要是IE6、7、8),需要使用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),而只能使用相對大?。╡m)設置body字體為100%,即字體大小是頁面默認大小的100%,也是16px。例如:p{ font-size: 1.5em; },即p的大小是默認大小的1.5倍(24px( 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 Marcotte的imgSizer.js

    addLoadEvent(function(){

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

    imgSizer.collate(imgs);

    })

     

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

    兩者區別與選擇:

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

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

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

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


    標簽:
    最后修改:2025-03-26 13:04:25

    非特殊說明,本博所有文章均為博主原創。

    主站蜘蛛池模板: 昆山市| 华坪县| 康平县| 搜索| 冕宁县| 浪卡子县| 湾仔区| 昔阳县| 莫力| 西昌市| 清水县| 和龙市| 阳新县| 星座| 黑山县| 延边| 长阳| 泰顺县| 昭平县| 临夏市| 吴江市| 罗源县| 佳木斯市| 金门县| 确山县| 乌拉特中旗| 南漳县| 长岭县| 远安县| 南和县| 永城市| 贺州市| 青川县| 若尔盖县| 德令哈市| 阜新| 瓮安县| 韶山市| 新巴尔虎右旗| 澄迈县| 常德市|