移動優先的響應式布局

前面的話

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

?

設計原則

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

  漸進增強(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?抽屜式】

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

?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/370113.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/370113.shtml
英文地址,請注明出處:http://en.pswp.cn/news/370113.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

python中英文字符和中文字符存儲長度不同_Django如何正確截取中英混合字符串及表單中限制中文字符中長度...

中文字符和英文字符所占的字節長度是不一樣&#xff0c;一個是2個字節&#xff0c;一個是1個字節&#xff0c;這給我們用英文的web框架開發中文app帶來了麻煩。比如Django自帶過濾器truncatewords并不支持截取中文&#xff0c;另外模型中CharField中的max_length選項用于限制中…

使用RESTful客戶端API進行GET / POST

互聯網上有很多如何使用RESTful Client API的東西。 這些是基礎。 但是&#xff0c;盡管該主題看起來微不足道&#xff0c;但仍然存在一些障礙&#xff0c;尤其是對于初學者而言。 在這篇文章中&#xff0c;我將嘗試總結我的專業知識&#xff0c;以及我如何在實際項目中做到這…

南昌互聯網行業協會籌辦者祝真和華罡團隊-2014年12月江西IDC排行榜

&#xfeff;&#xfeff;他出自軍營&#xff0c;擁有一身正氣。 他在南昌創業&#xff0c;立意卓越。 從站點開始、到微營銷、到線上教育&#xff0c;全面開花。 他在朋友圈看到不對的內容&#xff0c;就會即時批評。 他對朋友&#xff0c;又是很的和藹可親。 他就是南昌華罡網…

Linux下查看某個進程的網絡帶寬占用情況

說明&#xff1a; 1、可能查看某個進程的帶寬占用需要明確知道PID、進程名字、發送速度、接收速度。 2、很遺憾&#xff0c;在Linux原生的軟件中沒有這樣的一款&#xff0c;只能額外裝&#xff0c;最符合以上的情況就只有nethogs。 3、nethogs可以指定網卡&#xff0c;但是不能…

android中的add方法,Android入門之addWindow

前面說到&#xff0c;應用程序添加窗口時&#xff0c;會在本地創建一個ViewRoot&#xff0c;然后通過IPC(進程間通信)調用WmS的Session的addWindow請求WmS創建窗口&#xff0c;下面來看看addWindow方法。addWindow方法定義在frameworks/base/services/java/com.android.server.…

CSS屬性速查表

前面的話 本文將按照布局類屬性、盒模型屬性、文本類屬性、修飾類屬性這四個分類&#xff0c;對CSS常用屬性進行重新排列&#xff0c;并最終設置為一份stylelintrc文件 布局類 1、定位 positionz-indextopbottomleftright 2、浮動 floatclear 3、多列布局 columnscolumns-width…

我應該使用32位還是64位JVM?

這是我在企業軟件開發生涯中多次遇到的問題。 我不得不每隔一段時間就提供有關配置特定新環境的建議。 而且&#xff0c;很多時候&#xff0c;手頭的問題與“我應該使用32位或64位JVM”有關。 老實說&#xff0c;一開始我只是擲硬幣。 而不是給出合理的答案。 &#xff08;對不…

python安裝pyecharts清華_基于Python安裝pyecharts所遇的問題及解決方法

最近學習到數據可視化內容&#xff0c;老師推薦安裝pyecharts&#xff0c;于是pip install 了一下&#xff0c;結果...掉坑了&#xff0c;下面是我的跳坑經驗&#xff0c;如果你有類似問題&#xff0c;希望對你有所幫助。第一個坑:這個不難理解&#xff0c;缺少pyecharts-jupyt…

C語言內存分配

C語言內存分配 C語言的內存分配主要有5個區域&#xff1a; 1、棧區&#xff1a;在運行函數時&#xff0c;函數內的局部變量&#xff08;不包含static變量&#xff09;、函數返回值的存儲單元在棧區上創建。函數運行結束時這些存儲單元自己主動被釋放。棧區內存分配運算內置于處…

在Ajax方式產生的浮動框中,點擊選項包含某個關鍵字的選項

#!usr/bin/env python #-*- coding:utf-8 -*- """ author: sleeping_cat Contact : zwy24zwy163.com """ #在Ajax方式產生的浮動框中&#xff0c;點擊選項包含某個關鍵字的選項 #通過模擬鍵盤下箭頭進行選擇懸浮框選項from selenium imp…

android studio點擊圖片,如何在Android Studio中的模擬器圖庫中添加圖像?

如何在Android Studio中的模擬器圖庫中添加圖像&#xff1f;我正在開發圖像過濾器應用程序。 但是&#xff0c;如果我沒有任何圖像&#xff0c;就無法真正嘗試。我知道我可以在電話中對其進行測試&#xff0c;但這并不相同&#xff0c;因為我需要錯誤消息和其他內容。我只想從A…

移動端學習目錄

前面的話 iphone4發布是幾年前的事情&#xff0c;而如今早已是移動互聯網的時代。人們不再正襟危坐在電腦前&#xff0c;而更愿意把時間耗費在手機上&#xff0c;隨時隨地地享受互聯網。在移動端可以使用最新最炫的前端技術&#xff0c;而不用再考慮老版本IE的兼容性。當前&…

實踐中的構建者模式

我將不深入討論該模式&#xff0c;因為已經有大量的帖子和書籍對此進行了詳細的解釋。 相反&#xff0c;我將告訴您為什么以及何時應該考慮使用它。 但是&#xff0c;值得一提的是&#xff0c;這種模式與《 四人幫》一書中介紹的模式有些不同。 雖然原始模式著重于抽象化構造步…

python計算汽車的平均油耗_用python對汽車油耗進行數據分析

原標題&#xff1a;用python對汽車油耗進行數據分析- 從http://fueleconomy.gov/geg/epadata/vehicles.csv.zip下載汽車油耗數據集并解壓- 進入jupyter notebook(ipython notebook)并新建一個New Notebook- 輸入命令[python]view plaincopyimportpandas as pdimportnumpy as np…

git常用命令2

##一、git常用命令 ###1、 push文件 * 打開cmd窗口 * 輸入f:&#xff0c;進入f:&#xff08;自己隨便在自己的電腦上找個位置就行了&#xff0c;這里的f:&#xff0c;表示的是f盤&#xff09; * 然后輸入mkdir workSpace&#xff0c;會自動在f盤下生成一個workSpace文件夾 * 然…

android移動應用基礎教程源代碼,Android移動應用基礎教程 【程序活動單元Activity】...

本章目錄一、Activity的生命周期1、生命周期狀態2 、生命周期方法3、橫豎屏切換時的生命周期二、Activity的創建配置和關閉1、Activity的創建2、配置Activity3、開啟和關閉Activity三、Intent與IntentFilter1、Intent介紹1.1 意圖的概念1.2 顯式意圖1.3 隱式意圖2、IntentFilte…

elasticsearch中cluster和transport知識

elasticsearch cluster 概述 elasticsearch節點間通信的基礎transport轉載于:https://www.cnblogs.com/wzj4858/p/8126033.html

Python中使用subplot在一張畫布上顯示多張圖

subplot(arg1, arg2, arg3) arg1: 在垂直方向同時畫幾張圖arg2: 在水平方向同時畫幾張圖arg3: 當前命令修改的是第幾張圖 t np.arange(0,5,0.1) y1 np.sin(2*np.pi*t) y2 np.sin(2*np.pi*t) plt.subplot(211) plt.plot(t,y1,b-.) plt.subplot(212) plt.plot(t,y2,r--) plt.s…

Java 8:從PermGen到元空間

您可能已經知道&#xff0c;現在可以下載JDK 8 Early Access 。 這使Java開發人員可以嘗試Java 8的一些新語言和運行時功能。這些功能之一是完全刪除自Oracle自JDK 7發行以來就宣布的Permanent Generation&#xff08;PermGen&#xff09;空間。例如&#xff0c;自JDK 7起&…

oracle symonym_ORACLE SYNONYM詳解

以下內容整理自Oracle 官方文檔一 概念A synonym is an alias for any table, view,materialized view, sequence, procedure, function, package, type, Java classschema object, user-defined object type, or another synonym. Because a synonymis simply an alias, it re…