所謂的響應式設計,是指在不同的螢幕分辨率,不同的像素密度比,不同寬度的終端設備中,網頁佈局可以自適應的調整。響應式設計的本意是使原本PC上的網站相容於行動終端,大部分的響應式網頁是透過媒體查詢,載入不同樣式CSS檔案實現。這樣的彈性化佈局使網站在不同的設備終端佈局都比較合理。本文主要介紹了詳解HTML5中的picture元素響應式處理圖片,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟著小編過來看看吧,希望能幫助大家。
雖然響應式設計的好處多多,但是也有許多缺陷。由於PC端和行動終端存取的是同一個網站,PC端可以不計較流量限制,但是行動端不可能不計較。
為適合不同終端機型的螢幕寬度和像素密度,我們一般會使用以下方法設定圖片的CSS樣式:
<style> img{ max-width:100%; height:auto; } </style>
將圖片的最大寬度設定為100%,以確保圖像不會超出其父級元素的寬度,如果父級元素的寬度發生改變,圖片的寬度也隨之改變,height:auto 可以確保圖片的寬度發生變化時,圖片的高度會依據自身的寬高比例進行縮放。
這樣當我們在行動裝置上存取響應式網頁裡的圖片時,只是把圖片的解析度做了縮放,下載的還是PC端的那張大圖,這樣不僅浪費流量,而且浪費頻寬,而且會拖慢網頁的開啟速度,嚴重影響使用者的使用體驗。
新的解決方案:
#
是HTML5的新元素; 如果
元素與當前的 可以根據不同的條件載入不同的映像,這些條件可以是視窗目前的高度(viewport),寬度(width ),方向(orientation),像素密度(dpr)等;
舉幾個栗子
如下栗子中針對不同螢幕寬度載入不同的圖片;當頁面寬度在320px到640px之間時載入minpic.png;當頁面寬度大於640px時載入middle.png
<picture> <source> <source> <img src="/static/imghwm/default1.png" data-src="img/picture.png" class="lazy" alt="HTML5中的picture元素響應式處理圖片方法" > </source></source></picture>
2.如下栗子中新增了螢幕的方向作為條件;當螢幕方向為橫屏方向時載入_landscape.png結尾的圖片;當螢幕方向為垂直螢幕方向時載入_portrait.png結尾的圖片;
<picture> <source> <source> <source> <source> <img src="/static/imghwm/default1.png" data-src="img/picture.png" class="lazy" alt="HTML5中的picture元素響應式處理圖片方法" > </source></source></source></source></picture>
3.如下栗子中加入了螢幕像素密度作為條件;當像素密度為2x時載入_retina.png 2x 的圖片,當像素密度為1x時載入無retina後綴的圖片;
<picture> <source> <source> <img src="/static/imghwm/default1.png" data-src="img/picture.png,img/picture_retina.png 2x" class="lazy" alt="HTML5中的picture元素響應式處理圖片方法" > </source></source></picture>
4.如下栗子中新增圖片檔案格式作為條件,當支援webp格式圖片時載入webp格式圖片,當不支援時載入png格式圖片;
<picture> <source> <img src="/static/imghwm/default1.png" data-src="img/picture.png" class="lazy" alt="HTML5中的picture元素響應式處理圖片方法" > </source></picture>
5.如下範例中新增寬度描述;頁面會根據目前尺寸選擇載入不大於目前寬度的最大的圖片;
<img src="/static/imghwm/default1.png" data-src="picture-160.png" class="lazy" alt="HTML5中的picture元素響應式處理圖片方法" >
6.如下範例中新增sizes屬性;當視窗寬度大於等於800px時載入對應版本的圖片;
<img src="/static/imghwm/default1.png" data-src="picture-160.png" class="lazy" alt="HTML5中的picture元素響應式處理圖片方法" >
相容性:
目前只有Chrome , Firefox , Opera 對其相容性較好,具體相容性如圖:
#優點:
載入適當大小的映像文件,使可用頻寬充分利用;
載入不同剪裁並具有不同橫縱比的圖像,以適應不同寬度的佈局變化;
載入更高的像素密度,顯示更高解析度的圖片;
步驟:
建立
標籤; 在這些標籤內建立一個你想用來執行任何一個特性的
標籤;
#新增一個media屬性,用來包含你想要的特性,如寬度(max-width,min-width),方向(orientation)等;
新增一個srcset屬性,屬性值為對應的圖像檔案名稱,進行載入。如果你想提供不同的像素密度,例如Retina顯示屏,可以添加額外的文件名到srcset屬性中;
srcset (必需)
接受單一的圖片檔案路徑(如:srcset=”img/minpic.png”).
或是逗號分隔的用像素密度描述的圖片路徑(如:srcset=” img/minpic.png,img/minpic_retina.png 2x”),1x 的描述是預設不使用的。
media (可選)
接受任何驗證的media query,你可以看到在CSS @media選擇器(如:media=”(min-width: 320px)”).
在之前的
sizes(可選)
接收單一的寬度描述(如:sizes=”100vw”)或單一的media query寬度描述(如:sizes=”(min-width: 320px ) 100vw”).
或逗號分隔的media query對寬度的描述(如:sizes=”(min-width: 320px) 100vw, (min-width: 640px) 50vw, calc(33vw - 100p )”) 最後的一個被當作預設的。
type(可選)
接受支援的MIME類型(如: type=”image/webp” or type=”image/vnd.ms-photo”)
#瀏覽器會根據這些提示和屬性來載入確切的圖片資源。根據標籤的列表順序。瀏覽器會使用第一個適當的
加入最後的元素
元素在
標籤是必須得,如果你忘記了,將不會有圖片顯示出來。
用來宣告預設的圖片顯示。將
標籤放到
標籤之前會忽略
文中藉鑒了許多其他的文章,到這裡針對於picture的所有介紹就結束了,那麼現在就去試試它吧~
#相關推薦;
以上是HTML5中的picture元素響應式處理圖片方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

html5的div元素默认一行不可以放两个。div是一个块级元素,一个元素会独占一行,两个div默认无法在同一行显示;但可以通过给div元素添加“display:inline;”样式,将其转为行内元素,就可以实现多个div在同一行显示了。

html5中列表和表格的区别:1、表格主要是用于显示数据的,而列表主要是用于给数据进行布局;2、表格是使用table标签配合tr、td、th等标签进行定义的,列表是利用li标签配合ol、ul等标签进行定义的。

固定方法:1、使用header标签定义文档头部内容,并添加“position:fixed;top:0;”样式让其固定不动;2、使用footer标签定义尾部内容,并添加“position: fixed;bottom: 0;”样式让其固定不动。

html5中不支持的标签有:1、acronym,用于定义首字母缩写,可用abbr替代;2、basefont,可利用css样式替代;3、applet,可用object替代;4、dir,定义目录列表,可用ul替代;5、big,定义大号文本等等。

HTML5中画布标签是“<canvas>”。canvas标签用于图形的绘制,它只是一个矩形的图形容器,绘制图形必须通过脚本(通常是JavaScript)来完成;开发者可利用多种js方法来在canvas中绘制路径、盒、圆、字符以及添加图像等。

html5废弃了dir列表标签。dir标签被用来定义目录列表,一般和li标签配合使用,在dir标签对中通过li标签来设置列表项,语法“<dir><li>列表项值</li>...</dir>”。HTML5已经不支持dir,可使用ul标签取代。

3种取消方法:1、给td元素添加“border:none”无边框样式即可,语法“td{border:none}”。2、给td元素添加“border:0”样式,语法“td{border:0;}”,将td边框的宽度设置为0即可。3、给td元素添加“border:transparent”样式,语法“td{border:transparent;}”,将td边框的颜色设置为透明即可。

因为html5不基于SGML(标准通用置标语言),不需要对DTD进行引用,但是需要doctype来规范浏览器的行为,也即按照正常的方式来运行,因此html5只需要写doctype即可。“!DOCTYPE”是一种标准通用标记语言的文档类型声明,用于告诉浏览器编写页面所用的标记的版本。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

ZendStudio 13.5.1 Mac
強大的PHP整合開發環境

SublimeText3 Linux新版
SublimeText3 Linux最新版

MantisBT
Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

Atom編輯器mac版下載
最受歡迎的的開源編輯器

mPDF
mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),