移動優先的響應式佈局

前面的話

  隨着移動互聯網的興起,不一樣設備的分辨率相差較大,若是在不一樣的設置上顯示同一個頁面,則用戶體驗差。響應式網頁設計是一種方法,使得一個網站可以兼容多個終端,而不用爲每一個終端製做特定的版本。它使得一個網站能夠在任何類型的屏幕上,均可以被輕鬆地瀏覽和使用。採用響應式設計,在不一樣設備中,網站會從新排列,展示出不一樣的設計風格,以完美的適配任何尺寸的屏幕前端

 

設計原則

  關於響應式設計,有漸進增長和優雅降級兩個設計原則android

  漸進加強(progressive enhancement),是指基本需求獲得知足、實現,再根據不一樣瀏覽器及不一樣分辨率設備的特色,利用高級瀏覽器下的新特性提供更好的體驗。好比,圓角、陰影、動畫等後端

  優雅降級(graceful degradation)則正好相反,現有功能已經開發完備,但須要向下兼容版本和不支持該功能的瀏覽器。雖然兼容性方案的體驗不如常規方案,但保證了功能可用性瀏覽器

  移動優先的響應式佈局採用的是漸進加強原則,製做響應式網站時,先搞定手機版,而後再去爲更大設備去設計和開發更復雜的功能。特徵是使用min-width匹配頁面寬度。從上到下書寫樣式時,首先考慮的是移動設備的使用場景,默認查詢的是最窄的狀況,再依次考慮設備屏幕逐漸變寬的狀況佈局

  由簡入繁易,由繁入簡難。若是是桌面優先,佈局端是桌面端代碼,只有在media中,纔是手機端代碼,加載了多餘的桌面端代碼。若是是圖片文件,則下載的無用資源更多優化

  不管從界面設計仍是代碼執行效率的角度而言,移動優先都有明顯優點動畫

 

三要素

  響應式設計包括三個要素:彈性佈局、媒體查詢和彈性圖片網站

  彈性佈局和媒體查詢已經在其餘博客中詳細介紹,下面來重點介紹下彈性圖片spa

  彈性圖片,也稱爲響應式圖片,是指圖片可以跟隨父容器寬度變化而變化,同時寬度受限於父容器,不可按照圖片原始尺寸展示設計

  所以,最簡單的響應式圖片設置max-width爲100%便可

img{
  max-width: 100%;  
}

  只有一張圖片的狀況下,採用上面代碼便可。若是提供了高清圖,要根據設備大小加載不一樣的圖片,則須要額外的處理。有以下幾種處理方式

  一、採用picture元素,IE瀏覽器、android4.4.4-瀏覽器不兼容

<picture>
  <source media="(min-width:50em)" srcset="img/l.jpg">
  <source media="(min-width:30em)" srcset="img/m.jpg">
  <img src="img/s.jpg" alt="#">
</picture>

  二、採用img元素的srcset和sizes屬性,IE瀏覽器、android4.4.4-瀏覽器不兼容

<img
  src="img/480.png"
  srcset="img/480.png 480w,img/800.png 800w, img/1600.png 1600w"
  sizes="(min-width:800px) 800px,100vw"
/>

  三、採用js,根據window的resize事件,修改圖片的路徑

function makeImageResponsive(){
    var width = $(window).width();
    var img = $('.content img');
    if(width <=480){
        img.attr('src','img/480.png');
    }else if(width <=800){
        img.attr('src','img/800.png');
    }else{
        img.attr('src','img/1600.png');
    }
}
$(window).on('resize load',makeImageResponsive);

  四、後端配置,前端傳遞給後端當前設備的一些特徵,後端經過這些特徵決定作怎樣的響應。但目錄兩個後端響應式解決方案Responsive_Images和Adaptive-Images都再也不維護

 

優缺點

【優勢】

  一、減小工做量,網站、設計、代碼、內容都只須要一份

  二、節省時間

  三、解決了設備之間的差別化展現

  四、搜索優化 

  五、更好的用戶體驗

【缺點】

  一、須要加載更多的樣式和腳本資源,加載速度受到影響

  二、設計比較難精肯定位和控制

  三、老版本瀏覽器兼容很差

 

響應模式

  下面介紹四種響應模式

【Column Drop 列下沉】

  手機上每個大塊單獨佔據一行,隨着屏幕尺寸拉伸會在同一行上造成多個 column 列

【Mostly Fulid 基本流體式】

  基本上跟 Column Drop 同樣,可是有一點點「固定佈局「的特色:當到達必定寬度後,主體內容部分再也不變寬,成爲固定寬度

【Layout Shifter 變換式】

  變換式,也就是沒必要遵循原有內容順序,能夠根據最佳展現須要來調整大塊順序

【Off Canvas 抽屜式】

  抽屜式,屏幕不夠寬的時候,隱藏,經過按鈕呼出。足夠寬的屏幕上,始終顯示

相關文章
相關標籤/搜索