移動優先的響應式佈局

来源:https://www.cnblogs.com/xiaohuochai/archive/2018/05/14/7157856.html
-Advertisement-
Play Games

前面的話 隨著移動互聯網的興起,不同設備的解析度相差較大,如果在不同的設置上顯示同一個頁面,則用戶體驗差。響應式網頁設計是一種方法,使得一個網站能夠相容多個終端,而不用為每個終端製作特定的版本。它使得一個網站可以在任何類型的屏幕上,都可以被輕鬆地瀏覽和使用。採用響應式設計,在不同設備中,網站會重新排 ...


前面的話

  隨著移動互聯網的興起,不同設備的解析度相差較大,如果在不同的設置上顯示同一個頁面,則用戶體驗差。響應式網頁設計是一種方法,使得一個網站能夠相容多個終端,而不用為每個終端製作特定的版本。它使得一個網站可以在任何類型的屏幕上,都可以被輕鬆地瀏覽和使用。採用響應式設計,在不同設備中,網站會重新排列,展現出不同的設計風格,以完美的適配任何尺寸的屏幕

 

設計原則

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

  漸進增強(progressive enhancement),是指基本需求得到滿足、實現,再根據不同瀏覽器及不同解析度設備的特點,利用高級瀏覽器下的新特性提供更好的體驗。比如,圓角、陰影、動畫等

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

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

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

  無論從界面設計還是代碼執行效率的角度而言,移動優先都有明顯優勢

 

三要素

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

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

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

  因此,最簡單的響應式圖片設置max-width為100%即可

img{
  max-width: 100%;  
}

  只有一張圖片的情況下,採用上面代碼即可。如果提供了高清圖,要根據設備大小載入不同的圖片,則需要額外的處理。有如下幾種處理方式

  1、採用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>

  2、採用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"
/>

  3、採用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);

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

 

優缺點

【優點】

  1、減少工作量,網站、設計、代碼、內容都只需要一份

  2、節省時間

  3、解決了設備之間的差異化展示

  4、搜索優化 

  5、更好的用戶體驗

【缺點】

  1、需要載入更多的樣式和腳本資源,載入速度受到影響

  2、設計比較難精確定位和控制

  3、老版本瀏覽器相容不好

 

響應模式

  下麵介紹四種響應模式

【Column Drop 列下沉】

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

【Mostly Fulid 基本流體式】

  基本上跟 Column Drop 一樣,但是有一點點“固定佈局“的特點:當到達一定寬度後,主體內容部分不再變寬,成為固定寬度

【Layout Shifter 變換式】

  變換式,也就是不必遵循原有內容順序,可以根據最佳展示需要來調整大塊順序

【Off Canvas 抽屜式】

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

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 使用JS實現文字搬運工 效果圖: 代碼如下,複製即可使用: 如果您有更好的方法或更多的功能,可以和我們大家一起來分享哦,如有錯誤,歡迎聯繫我改正,非常感謝!!! ...
  • setTimeout()可以使用clearTimeout()關閉 setInterval() 方法會不停地調用函數,直到 clearInterval() 被調用或視窗被關閉。 ...
  • 一.組件的3種使用方式 *.vue文件,用於單頁/多頁應用中,不同於以上兩種全局組件。 ...
  • ajax在註冊用戶表單中的使用 1.驗證用戶名是否被使用 2.獲取手機簡訊驗證碼 3.點擊表單中的圖片刷新,可實現刷新圖片驗證碼 ...
  • JQUERY的父,子,兄弟節點查找方法 jQuery.parent(expr) 找父親節點,可以傳入expr進行過濾,比如$("span").parent()或者$("span").parent(".class") jQuery.parents(expr),類似於jQuery.parents(exp ...
  • 大家哈好!我又來了,最近打算從新順一順vue的知識。先從cli腳手架開始跟大家分享,我做的都是簡單的入門的知識。希望對大家有所幫助,有什麼不足的地方也是希望大家指出!互相成長! vue-cli開始吧騷年!! 第一步 安裝vue-cli: 1.檢查是否安裝node 和npm 以及版本,最好更新到最新版 ...
  • /******************************************************************************* * 驗證文件尾碼名是否滿足條件 * * @param filePath * 文件名(可以含文件路徑) * @param allowedFi ...
  • 最近不知道寫什麼,node的源碼有點不知道怎麼入手,所以還在努力學習中…… 在寫微信公眾號的時候遇到了一個小bug,有一個tab欄,在開發者工具、IOS手機上都OK,但是一到我的小米note上就GG了,怎麼切換都無法觸發對應的請求,核心代碼如下: 點擊切換後,會重置分頁的index參數,然後將滾輪弄 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...