亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > HTML > 正文

詳解HTML5中的picture元素響應式處理圖片

2024-08-26 00:20:15
字體:
來源:轉載
供稿:網友

響應式設計

所謂的響應式設計,是指在不同的屏幕分辨率,不同的像素密度比,不同寬度的終端設備中,網頁布局可以自適應的調整。響應式設計的本意是使原本PC上的網站兼容移動終端,大部分響應式網頁是通過媒體查詢,加載不同樣式的CSS文件實現的。這樣的彈性化布局使網站在不同的設備終端布局都比較合理。

雖然響應式設計的好處多多,但是也有諸多缺陷。由于PC端和移動終端訪問的是同一個網站,PC端可以不計較流量限制,但是移動端不可能不計較。

HTML5,picture元素,響應式處理圖片

為適配不同終端機型的屏幕寬度和像素密度,我們一般會使用如下方法設置圖片的CSS樣式:

<style>    img{        max-width:100%;        height:auto;    }</style>

將圖片的最大寬度設置為100%,以確保圖像不會超出其父級元素的寬度,如果父級元素的寬度發生改變,圖片的寬度也隨之改變,height:auto 可以確保圖片的寬度發生改變時,圖片的高度會依據自身的寬高比例進行縮放。

這樣當我們在移動設備上訪問響應式網頁里的圖片時,只是把圖片的分辨率做了縮放,下載的還是PC端的那張大圖,這樣不僅浪費流量,而且浪費帶寬,而且會拖慢網頁的打開速度,嚴重影響用戶的使用體驗。

新的解決方案:<picture>

  1. <picture>是HTML5的一個新元素;
  2. 如果<picture>元素與當前的<audio>,<video>元素協同合作將增強響應式圖像工作的進程,它允許在其內部設置多個<source>標簽,以指定不同的圖像文件名,根據不同的條件進行加載;
  3. <picture>可以根據不同的條件加載不同的圖像,這些條件可以是視窗當前的高度(viewport),寬度(width),方向(orientation),像素密度(dpr)等;

舉幾個栗子

如下栗子中針對不同屏幕寬度加載不同的圖片;當頁面寬度 在320px到640px之間時加載minpic.png;當頁面寬度大于640px時加載middle.png

<picture>    <source media="(min-width: 320px) and (max-width: 640px)" srcset="img/minpic.png">    <source media="(min-width: 640px)" srcset="img/middle.png">    <img src="img/picture.png"    <source media="(min-width: 320px) and (max-width: 640px) and (orientation: landscape)" srcset="img/minpic_landscape.png">    <source media="(min-width: 320px) and (max-width: 640px) and (orientation: portrait)" srcset="img/minpic_portrait.png">    <source media="(min-width: 640px) and (orientation: landscape)" srcset="img/middlepic_landscape.png">    <source media="(min-width: 640px) and (orientation: portrait)" srcset="img/middlepic_portrait.png">    <img src="img/picture.png"    <source media="(min-width: 320px) and (max-width: 640px)" srcset="img/minpic.png,img/minpic_retina.png 2x">    <source media="(min-width: 640px)" srcset="img/middle.png,img/middle_retina.png 2x">    <img src="img/picture.png,img/picture_retina.png 2x"    <source type="image/webp" srcset="img/picture.webp">    <img src="img/picture.png"     sizes="90vw"      srcset="picture-160.png 160w,             picture-320.png 320w,             picture-640.png 640w,             picture-1280.png 1280w">

6.如下例子中添加sizes屬性;當窗口寬度大于等于800px時加載對應版本的圖片;

<source media="(min-width: 800px)"        sizes="90vw"         srcset="picture-landscape-640.png 640w,                picture-landscape-1280.png 1280w,                picture-landscape-2560.png 2560w"><img src="picture-160.png"     sizes="90vw"      srcset="picture-160.png 160w,             picture-320.png 320w,             picture-640.png 640w,             picture-1280.png 1280w">

兼容性:

目前只有Chrome , Firefox , Opera 對其兼容性較好,具體兼容性如圖:

HTML5,picture元素,響應式處理圖片

優點:

  1. 加載適當大小的圖像文件,使可用帶寬得到充分利用;
  2. 加載不同剪裁并具有不同橫縱比的圖像,以適應不同寬度的布局變化;
  3. 加載更高的像素密度,顯示更高分辨率的圖像;

步驟:

  1. 創建<picture></picture>標簽;
  2. 在這些標簽內創建一個你想用來執行任何一個特性的<source></scource>標簽;
  3. 添加一個media屬性,用來包含你想要的特性,如寬度(max-width,min-width),方向(orientation)等;
  4. 添加一個srcset屬性,屬性值為相應的圖像文件名稱,進行加載。如果你想提供不同的像素密度,例如Retina顯示屏,可以添加額外的文件名到srcset屬性中;
  5. 添加一個回退的<img>標簽;

<picture>的工作原理

<picture>語法

由上面的示例代碼可知,在沒有引入js和第三方庫,CSS中沒有包含media queries的情況下,<picture>元素可以實現只用HTML來聲明響應式圖片;

<source>元素

<picture>標簽它本身沒有屬性。神奇的地方是<picture>被用來當做<source>的容器。
<source>元素,是用來加載多媒體的比如視頻和音頻,已經被更新用到圖片的加載并且一些新的屬性已經被添加:

srcset (必需)

接受單一的圖片文件路徑(如:srcset=”img/minpic.png”).

或者是逗號分隔的用像素密度描述的圖片路徑(如:srcset=”img/minpic.png,img/minpic_retina.png 2x”),1x 的描述是默認不使用的。

media (可選)

接受任何驗證的media query,你可以看到在CSS @media選擇器(如:media=”(min-width: 320px)”).

在之前的<picture>語法的例子里已經用到了。

sizes(可選)

接收單一的寬度描述(如:sizes=”100vw”)或者單一的media query寬度描述(如:sizes=”(min-width: 320px) 100vw”).

或者逗號分隔的media query對寬度的描述(如:sizes=”(min-width: 320px) 100vw, (min-width: 640px) 50vw, calc(33vw - 100px)”) 最后的一個被當做默認的。

type(可選)

接受支持的MIME類型(如: type=”image/webp” or type=”image/vnd.ms-photo”)

瀏覽器會根據這些提示和屬性來加載確切的圖片資源。根據標簽的列表順序。瀏覽器會使用第一個合適的<source>元素并忽略掉后面的<source>標簽。

添加最后的<img>元素

<img>元素在<picture>內部用來當瀏覽器不支持時或者沒有源標簽匹配時的顯示。在<picture>內使用<img>標簽是必須得,如果你忘記了,將不會有圖片顯示出來。

用<img>來聲明默認的圖片顯示。將<img>標簽放到<picture>內的最后,瀏覽器在找到<img>標簽之前會忽略<source>的聲明。這個圖片標簽也需要你寫上它的alt屬性。

文中借鑒了很多其他的文章,到這里針對于picture的所有介紹就結束了,那么現在就去試試它吧~

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VeVb武林網。


注:相關教程知識閱讀請移步到HTML教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
精品视频一区在线视频| 插插插亚洲综合网| 亚洲在线视频观看| 久久免费视频在线| 精品视频在线播放色网色视频| 成人黄色av播放免费| 久久精品91久久香蕉加勒比| 久久伊人精品一区二区三区| 色悠久久久久综合先锋影音下载| 久久在线视频在线| 成人午夜激情免费视频| 国产男女猛烈无遮挡91| 亚洲欧美福利视频| …久久精品99久久香蕉国产| 最新日韩中文字幕| 91国产中文字幕| 午夜精品久久17c| 97超碰色婷婷| 欧美日韩久久久久| 亚洲欧美在线播放| 久久精品久久久久久国产 免费| 日韩视频免费观看| 欧美激情中文字幕在线| 久久深夜福利免费观看| 久久视频在线播放| 韩国19禁主播vip福利视频| 2020久久国产精品| 精品视频中文字幕| 日韩av免费一区| 夜色77av精品影院| 亚洲欧美国产日韩中文字幕| 色婷婷久久av| 欧美一二三视频| 国产精品一区二区三区成人| 国产精品老女人精品视频| 成人国产精品一区| 亚洲国产福利在线| 欧美性xxxx极品hd欧美风情| 成人免费自拍视频| 欧美精品做受xxx性少妇| 2021久久精品国产99国产精品| 91嫩草在线视频| 91丨九色丨国产在线| 91久久久久久久久久| 久久精品免费电影| 狠狠躁天天躁日日躁欧美| 日本午夜人人精品| 久久婷婷国产麻豆91天堂| 8x海外华人永久免费日韩内陆视频| 欧美精品制服第一页| 国产亚洲激情视频在线| 亚洲跨种族黑人xxx| 欧美网站在线观看| 亚洲美女av黄| 亚洲欧美一区二区精品久久久| 午夜精品久久久久久久99黑人| 欧美电影免费观看高清| 秋霞成人午夜鲁丝一区二区三区| 国内成人精品视频| 久青草国产97香蕉在线视频| 久久国产精品99国产精| 欧美激情精品久久久久久变态| 国模精品视频一区二区| 欧美猛少妇色xxxxx| 欧美日韩一区二区三区在线免费观看| 日韩精品丝袜在线| 国产精品综合网站| 欧美老女人性生活| 亚洲精品国产suv| 国产拍精品一二三| 亚洲精品一区二三区不卡| 狠狠综合久久av一区二区小说| 一区二区三区黄色| 亚洲区中文字幕| 97超级碰在线看视频免费在线看| 日韩电影网在线| 国产亚洲视频在线| 少妇精69xxtheporn| 国产在线播放91| 亚洲国产又黄又爽女人高潮的| 91精品视频免费观看| 最近中文字幕日韩精品| 亚洲美女av电影| 亚洲一级黄色片| 精品调教chinesegay| 久久激情视频久久| 亚洲欧美日韩精品久久| 狠狠躁夜夜躁人人爽超碰91| 91久久久亚洲精品| 黄色成人在线免费| 91免费的视频在线播放| 久久激情视频免费观看| 国产精品欧美一区二区三区奶水| 国产乱肥老妇国产一区二| 91网站在线免费观看| 欧美成人国产va精品日本一级| 亚洲精品之草原avav久久| 日韩精品久久久久| 亚洲精品在线看| 九九精品视频在线| 91精品国产91久久久久久最新| 中文字幕无线精品亚洲乱码一区| 午夜精品一区二区三区视频免费看| 欧洲精品毛片网站| 欧美日韩国产成人高清视频| 亚洲国产精品小视频| 不卡中文字幕av| 久久精品成人一区二区三区| 538国产精品一区二区在线| 国产精品欧美一区二区三区奶水| 亚洲视频综合网| **欧美日韩vr在线| 日韩电视剧在线观看免费网站| 精品国产一区二区在线| 成人xxxx视频| 国产精品入口尤物| 国产自摸综合网| 日韩av快播网址| 国产日产欧美精品| 成人综合网网址| 久久久91精品国产一区不卡| 亚洲欧美综合区自拍另类| 久久免费国产精品1| 日本成人免费在线| 亚洲一区二区免费| 亚洲成在人线av| 欧美多人乱p欧美4p久久| 国产欧美久久一区二区| 久久激情视频免费观看| 一本色道久久综合狠狠躁篇的优点| 97在线看免费观看视频在线观看| 日韩一级黄色av| 5252色成人免费视频| 亚洲人在线视频| 69影院欧美专区视频| 热99精品只有里视频精品| 亚洲天堂免费观看| 欧美富婆性猛交| 亚洲视频第一页| 91精品国产色综合久久不卡98| 久久精品视频亚洲| 久久99国产精品自在自在app| 欧美剧在线观看| 欧美xxxx综合视频| 久久精品亚洲一区| 亚洲综合中文字幕在线| 黄色一区二区三区| 欧美麻豆久久久久久中文| 欧美日韩中国免费专区在线看| 精品国产乱码久久久久酒店| 久久久成人av| 8090成年在线看片午夜| 久久精视频免费在线久久完整在线看| 欧美成人精品在线观看| 亚洲一级黄色片| 在线亚洲国产精品网| 国产精品国语对白| 精品国产91久久久久久| 国产97在线播放| 97不卡在线视频| 欧美日韩国产在线| 亚洲伊人久久大香线蕉av| 日本19禁啪啪免费观看www| 成人在线国产精品|