WebKit的已实施srcset图像响应属性
WebKit已经发布了一些官方新闻,终于落实srcset的属性。作为W3C的响应图像社区组的主席,我一直希望这一刻到来有一段时间了。所以,对所有参与方是个好消息,用户浏览网页时的体验是最重要的。
所有事项有关的到“有求必应图像”:它是复杂的,它可能很难跟上所有的噪音信号。下面是你需要知道什么。
它有什么作用呢?
正如最初提议,允许开发人员指定的图像属性,根据用户的显示屏上的像素密度来设置srcset属性组合:
<img src="low-res.jpg" srcset="high-res.jpg 2x">
这标记太吓人了,在纯英文:
“使用low-res.jpg,这IMG作为源低分辨率显示器上,任何浏览器不明白的srcset属性。使用high-res.jpg的作为源这个IMG了解的srcset属性的浏览器上的高分辨率显示。“
事情开始看起来很吓人,有一小会儿。部分由于高分辨率设备的平均网站现在几乎整个兆字节的图像。现在,开发人员可以针对用户对高分辨率显示器具有高分辨率的图像源。同时,较低的像素密度显示屏上的用户不会背负下载一个巨大的高清晰度图像的带宽成本,没有看到任何好处。
使用JavaScript我们能不能做到这一点?
表面上,srcset的是不是做什么特别的东西,它选择一个合适的源属性和交换内容IMG标签的SRC。交换的内容属性,是自远古以来,我们一直在做的JavaScript。90年代以来,无论如何。所以,这是什么让我们获得?
实际上,我们尝试这种方法上BostonGlobe.com,任何形式的“响应图像”的解决方案利用较早的网站之一。在几个主要的浏览器越来越具有侵略性的预取,请求一个图像的src很久以前我们有机会申请任何自定义脚本:我们将最终使我们每一个图像显示两个请求,打败整个目的。我记录了一些其他地方的这些努力,所以我会饶你血淋淋的细节在这里。
利用CSS我们能不能做到这一点?
“是”和“否”与背景图像,我们可以做到这一点很容易不够,像素密度有关媒体查询结合使用。srcset由WebKit的实现是非常相似,最近的图像设置功能,他们推出了CSS 图像设定允许你指定一个背景图像的来源和决议清单,哪一个是最合适的很熟悉的东西,让浏览器作出决定。我们没有什么非表象的内容图像沿着这些线路,然而,到现在为止。
使用CSS来管理内容的图像被打破,默认情况下,保持我们关注的问题分开。这是一个完美感的方法,可能使一个快速演示页面的范围内,但看台上迅速失控,在生产网站。我们的CMS生成背景图像的样式表的分数就没有野餐,从开发商的角度来看。然而,更糟糕的是,是,它会导致样式表和图像的请求,用户可能并不需要,除非做得非常,非常仔细。除此之外,它使得我们的图像,没有双关语意人迹罕至的用户浏览辅助技术的方式。
最接近我们已经找到了一个基于CSS的方法将基于在HTMLs数据属性值设置交换图像的来源,使用一些拟议的CSS技巧,其中大部分只是理论上的,可能永远不会发生。但是,它仍然没有占到双下载高分辨率和低分辨率图像资产相同的问题,我们遇到的JavaScript。即使像尼古拉斯应该成为我们的技术,我们仍然会面临同样的问题,许多基于脚本的解决方案:尝试解决浪费,冗余请求。
它是做什么的关于带宽?
无论屏幕密度,也有一些分辨率较低的图像源的情况下,可能是可取的:视网膜MacBook Pro的拴到3G,例如,或不稳定的会议WiFi网络,这两种情况下,我们都一直在大量的倍。
除了 简单地为我们提供了一种内嵌速记分辨率媒体查询,对带宽的srcset账户,在一定意义上。它埋在神秘的规范发言,但真正令人兴奋的方面srcset之一是,它的定义为一组建议的浏览器。然后,浏览器可以使用环境的启发式或用户的喜好来决定,它要取一个较低的分辨率的图像,尽管高解析度显示:设想一个偏好高清晰度图像,只要求您的手机浏览器,允许同时连接到WiFi,或手动浏览器偏好,让您低分辨率的图像时,只要求你的连接是摇摇欲坠。
理想情况下,我们很乐意只发送这些图像的设备是专门为每个屏幕分辨率调整大小。我们的目的是节省带宽,使图像下载更快针对性的屏幕上。à 响应图像常见的使用案例。
这不是WebKit的的早期srcset实现的一部分,但它确实铺平道路,为他们的除了我们的标记,而无需任何改动。我们开发者,可以放心地使用srcset今天,这些优化可能出现“免费”在未来。
这是什么意思的图片元素?
这里的事情变得有趣。
由WebKit实施的版本srcset,匹配原建议使用srcset,敏感的图像社区集团一直致力的版本。我们可以认为这个srcset化身速记媒体查询有关决议的整体转换,一个关键的区别在哪里,浏览器可以选择覆盖适用源根据用户的喜好。
虽然此实现匹配原来srcset建议,,当前srcset规格试图扩充的语法,一些用例的图片元素满足,使用microsyntax的执行了一些,但远不及媒体查询的功能。
<img src="fallback.jpg" srcset="small.jpg 640w 1x, small-hd.jpg 640w 2x, large.jpg 1x, large-hd.jpg 2x" alt="…">
在我们看来并不理想,这样的标记图案。我们限制相当于最大宽度媒体查询,像素,一个的高深莫测microsyntax,为了复制媒体查询功能。幸运的是,既不是Web开发人员,也没有浏览器的代表都特别喜欢这种过度的语法希望,它永远不会看到光明的一天。
图片元素的存在是为了解决这些应用情况下,使用更灵活的和熟悉的语法。图片使用媒体源元素上的属性,类似的视频元素。这使我们能够针对图像源因素的组合:视区高度和/或宽度,以像素或EM Ş,可以使用最小或最大的值,就像在我们的CSS媒体查询。
<picture>
<source src="med.jpg" media="(min-width: 40em)" />
<source src="sm.jpg" />
<img src="fallback.jpg" alt="" />
</picture>
picture记住这的减少srcset语法规范写的,所以它可以用于图片的源元素以及IMG元素。
<picture>
<source srcset="med.jpg 1x, med-hd.jpg 2x" media="(min-width: 40em)" /><source srcset="sm.jpg 1x, sm-hd.jpg 2x" /><img src="fallback.jpg" alt="" />
</picture>
在讨论会上,两个标记模式给了我们一个令人难以置信的灵活性,根据它们的上下文,什么样的影像来源,我们向用户提供服务。
因此,这是好消息。www.rswebun.com
虽然srcset WebKit的实施并没有解决所有响应的图像用例,但它确实代表一个早该有的解决方案,希望许多第一次迈进了一大步。
让我们希望遵循WebKit的其他浏览器,因为它最初提出的率先实现此功能,图片在不同分辨率的浏览工具上自动响应交互。
WebKit的已实施srcset图像响应属性的更多相关文章
- Art-Directing SVG图像viewBox属性
Art-Directing SVG图像viewBox属性 作者:彦子 日期:2015-06-02 点击:992 svg 译者注:根据Google Dev文档的解释,Art Direction在这篇文章 ...
- 详细解读XMLHttpRequest(二)响应属性、二进制数据、监测上传下载进度
本文主要参考:MDN 分析并操作 responseXML属性 如果你使用 XMLHttpRequest 来获得一个远程的 XML 文档的内容,responseXML 属性将会是一个由 XML 文档解析 ...
- CSS 背景图像 background属性简写
background属性简写 background属性可以像margin padding属性一样,有简写方法,它的简写顺序是: background-color background-image ba ...
- CSS背景图像位置属性background-position百分比详解
百分比值同关键字很接近,但其操作方式不一样.用百分比值来居中一幅背景图像,也很简单: body { background-image;url(beijing.gif); background-repe ...
- java this 子类调父类,父类再调用子类已覆盖的方法及属性(又一次理解)
之前一直以为 this关键字 是指调用者对象,但是这次才真正理解,this代表当前对象,但是指向调用者对象,其实就是多态的用法,如下所示:B 继承了 A,在B 中调用A类的方法,在A 中用this 访 ...
- css样式(二)(伪类 | 伪元素 | 导航 | 图像拼合 | 属性选择器 )
一.rgb值: RGBA 颜色 RGBA 颜色值得到以下浏览器的支持:IE9+.Firefox +.Chrome.Safari 以及 Opera +. RGBA 颜色值是 RGB 颜色值的扩展,带有一 ...
- JavaScript对象的创建之外部属性定义方式(基于已有对象扩充其属性和方法)
var person = new Object(); person.name = "luogk"; person.age = 33; person.say = function() ...
- 遍历ArcMap已加载数据的属性
import arcpy f = open("D:\workspace\coords.txt","w") with arcpy.da.SearchCursor( ...
- sql server对已创建的表增加属性(自动增序)
新建此表时把ID设为INT类型,然后设Identity为yes,种子为1递增就可以了.如果这张表已经建了,你在最后加一个字段叫ID,然后和上面一样操作,然后保存即可自增.(一定要设置完在保存) alt ...
随机推荐
- js 变量、函数提升 与js的预编译有关
参考网址:http://www.codesec.net/view/178491.html 先简单理解下作用域的概念,方便对变量与函数提升的概念的理解 function foo() { var x = ...
- 20145314郑凯杰《网络对抗技术》实验1 逆向及Bof基础实践
20145314郑凯杰<网络对抗技术>实验1 逆向及Bof基础实践 1.1 实践目标 本次实践的对象是一个名为pwn1的linux可执行文件. 该程序正常执行流程是:main调用foo函数 ...
- Xilinx Uboot网卡驱动分析
1.MAC控制器.网卡.PHY.MDIO.mii.gmii.rgmii概念扫盲 网卡在功能上包含OSI模型的两个层,数据链路层和物理层.物理层定义了数据传送与接收所需要的电与光信号.线路状态.时钟基准 ...
- 操作数据库的时候,使用自带的DbProviderFactory类 (涉及抽象工厂和工厂方法)
微软自带的DbProviderFactory https://msdn.microsoft.com/en-us/library/system.data.common.dbproviderfactory ...
- HDU 3435 A new Graph Game(最小费用流:有向环权值最小覆盖)
http://acm.hdu.edu.cn/showproblem.php?pid=3435 题意:有n个点和m条边,你可以删去任意条边,使得所有点在一个哈密顿路径上,路径的权值得最小. 思路: 费用 ...
- c语言 找最小值
#include <stdio.h> #define N 10 #define MIN(X,Y) ((X<Y)?(X):(Y)) int f(int arr[],int len,in ...
- 由 '' in 'abc' return True 引发的思考----Python 成员测试操作
最近遇到判断字典中是否存在空字符串‘’,这个很好判断,直接用:‘’ in ['a','b','c'],就可以直接判断出来:但是当我对字符串使用 “in” 方法进行判断的时候,发现:‘’ in ‘abc ...
- Gitea docker-compose.yaml
docker-compose.yaml version: "2" networks: gitea: external: false services: server: image: ...
- Coderforce-574C Bear and Poker(素数唯一分解定理)
题目大意:给出n个数,问能不能通过让所有的数都乘以2的任意幂或乘以3的任意幂,使这n个数全都相等. 题目分析:最终n个数都是相等的,假设那个数为x,根据素数唯一分解定理,x能分解成m*2p3q.所以, ...
- asp.net(c#)开发中的文件上传组件uploadify的使用方法(带进度条)
上文件传很常见,现在就文件上传利用HTML的File控件(uploadify)的,这里为大家介绍一下(uploadify)的一些使用方法.在目前Web开发中用的比较多的,可能uploadify(参考h ...