响应式图片

前几日看了一篇关于响应式图片的文章,回想一下平时做的移动端开发,为了适配retina屏幕,一般都是直接选择2x图片来进行加载,并没有针对不同的DPR进行适配。

文章里面讲到了srcset属性的一些应用场景,可以用来很好的处理响应式图片的问题。关于srcset属性,文章介绍了第一代标准和第二代标准,看完之后,我又查了一些资料和博文。在这里,就对srcset属性的使用做一下总结,结合自己写的示例代码,聊聊对W的理解。

srcsetsrizes都是HTML5对于img标签的属性。

首先来看一下第一代标准的使用场景。
<img src="logo@1x.png" srcset="logo@1x.png 1x, logo@2x.png 2x"/>
这个例子非常简单,首先设置默认的图标为logo@1x.png,然后用srcset设置了1x场景和2x场景的适配图。经过这样的设置之后,2xDPR的显示屏会加载高清的图片。(如果浏览器不支持srcset,则显示src设置的图片)

鑫哥的博文里面有句话写的非常好。

旧的srcset 是人主导,
而现在新的srcset 是浏览器主导

我是这样理解的,第一代标准的使用,就好比是把js代码的逻辑简单的搬到了img标签中,什么样的条件加载什么样的图片,代码里面可以看到很强的逻辑关系。第二代标准,是一种新的思路,我们提供不同的图片资源,给予一定的条件,最终把选择权交给浏览器,浏览器来选择最佳的图片进行适配。

新标准的例子。(2014年)
<img src="logo-128.png" srcset="logo-128.png 128w,logo-256.png 256w,logo-512.png 512w" sizes="(max-width:500px) 340px,512px" />

sizes属性中可以进行媒体查询,后面是对应的宽度,上面的例子就是最大宽度小于500px时,图片限制宽度为340px,其他情况为128px。

首先看一下,浏览器对于不同DPR的处理,将浏览器宽度调整为1024px,此时根据媒体查询,应该显示128px的图片,如果此时浏览器模拟1x设备,则加载logo-128.png。如果模拟2x设备,则加载logo-256.png。如果模拟3x设备,则加载logo-512.png。但是最终的显示宽度都是128px。因为浏览器会找到最佳适配图片进行加载,我们只要提供不同的图片规格就可以了。

再来理解一下w。我们现在将宽度调整为500px,图片宽度应该为340px,此时如果是1x设备,浏览器会选择logo-512.png进行加载。
过程:媒体查询,刚好为500px,匹配340px,340px对应340w,而logo-128.png对应128w,未达标;logo-256.png对应256w,未达标。最后选择了最适合的logo-512.png进行加载。
当然,这里举这个例子,是为了理解wsizes的关系,平时使用的时候,并不会这样的奇怪的匹配。

新的标准,浏览器为我们做了很多事情,非常的简介智能,chrome38+可以支持该属性。
兼容性当然是一个问题,可是要提醒自己多抽时间了解新特性~

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,736评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,167评论 1 291
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,442评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,902评论 0 204
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,302评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,573评论 1 216
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,847评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,562评论 0 197
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,260评论 1 241
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,531评论 2 245
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,021评论 1 258
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,367评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,016评论 3 235
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,068评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,827评论 0 194
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,610评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,514评论 2 269

推荐阅读更多精彩内容