刚刚了解srcset属性。我试图运行它没有任何成功。当我在谷歌浏览器上为IPhone或IPad运行它时,我预计至少会看到1个图像加载,但没有任何显示。如何使用srcset图片属性?
<img srcset="img1.png 1x low-bandwidth, img2.png 2x high-bandwidth">
刚刚了解srcset属性。我试图运行它没有任何成功。当我在谷歌浏览器上为IPhone或IPad运行它时,我预计至少会看到1个图像加载,但没有任何显示。如何使用srcset图片属性?
<img srcset="img1.png 1x low-bandwidth, img2.png 2x high-bandwidth">
According to the w3c,srcset属性仍处于草稿状态。这意味着它还不被推荐使用它,因为规范仍然可以改变,并且网络浏览器不会被实现。
顺便说一下,请注意,low-bandwidth
和high-bandwidth
不是当前草案的一部分。很可能因为很难找到客观定义的“低”和“高”带宽,这在十年内仍然是合理的。
srcset
属性尚未在任何浏览器中实现。
此外 - 您的示例中的low-bandwidth
/high-bandwidth
零件不属于与srcset
相关的任何规范或提案。
第一个srcset
的实现刚落在WebKit中,请参阅announcement post。
这是在v34测试版的铬,现在v33是稳定版本。
因此,如果没有改变,它很快就会变成铬。
我跑V34这个测试和它的工作如预期 - 甚至不得不出高清晰度的图像与缩放级别的奖金在200,我没想到(但很明显,现在我想想)。您当然可以检查元素并实时进行更改,如果您没有高分辨率屏幕,则可以放大浏览器。镀铬的
<img src="unsupported.jpg"
srcset="[email protected] 1x,[email protected] 2x" width="100" height="100">
unsupported.jpg
[email protected]
正常屏幕和[email protected]
你通常把[email protected]
作为标准src
属性,这只是为了演示。记住这不会在iPad/iPhone尚未:-(
Firefox浏览器是不会支持它在不久的将来,你可以找到它的支持在这里。Srcset support in different browsers
没有在此属性的高带宽和低带宽元素。我们需要的URL,目标设备的宽度,你可以在这里找到它。
<img src="fallback.jpg" srcset="small.jpg 640w 1x, small-hd.jpg 640w 2x, large.jpg 1x, large-hd.jpg 2x" alt="…">
它可以与HTML5的图像元素来使用。如果你是intereste d详细了解它,请阅读这篇文章。 http://www.smashingmagazine.com/2013/08/21/webkit-implements-srcset-and-why-its-a-good-thing/
简而言之,Srcset
是一个新属性,它允许您为不同的屏幕尺寸/方向/显示类型指定不同类型的图像。用法很简单,你只需提供很多不同的图像,用逗号分隔它们即可:<img src="image.jpg" alt="image" srcset="<img> <descriptor>, ..., <img_n> <descriptor_n>">
。这里是一个例子:srcset="image.jpg 160w, image2.jpg 320w, image3.jpg 2x"
这是一个较长的答案,它解释了更多细节的事情。
首先你错过了要求src
属性为srcset
只增强img标签。
srcset与图片之间的区别。 srcset
和picture
的功能大致相同,但存在细微差别:picture
指示浏览器应该使用哪种图像,而srcset
则为浏览器提供了一种选择。很多东西可以用来选择这个选项,比如视口大小,用户偏好,网络条件等等。对srcset
的支持很不错,almost all current browsers或多或少支持它。 picture
元素的情况是little bit worse。
描述符只是一种显示资源后面隐藏了哪种图像的方法。有各种各样的描述符:
srcset="image.jpg, image-2X.jpg 2x"
显示密度值 - 1x,2x等被称为显示密度描述符。如果没有提供显示密度描述符,则假定为1x。瞄准视网膜显示的好变种。srcset="image-240.jpg 240w, image-640.jpg 640w"
。我相信这是不言自明的。唯一的问题是,自身的宽度描述符并不是真的有用。 Why? read heresrcset="image-160.jpg 160w, image-320.jpg 320w, image-640.jpg 640w, image-1280.jpg 1280w" sizes="(max-width: 480px) 100vw, (max-width: 900px) 33vw, 254px">
。浏览器的说明如下所示:(max-width: 480px) 100vw
- 如果视口宽度为480像素或更小,则图像将为视口宽度的100%。 (max-width: 900px) 33vw
- 如果视口宽度为480像素或更小,则由于之前的介质条件,此规则将永远不会到达。而254px是没有列出媒体条件时,假定其长度被认为是其他媒体条件都不符合时使用的默认值。只是为了完整性将增加在这里有在CSS背景图像和其他一些有用的链接here
<img sizes="(min-width: 1200px) 580px,
(min-width: 640px) 48vw,
98vw"
srcset="img/hello-300.jpg 300w,
img/hello-600.jpg 600w,
img/hello-900.jpg 900w,
img/hello-1200.jpg 1200w"
src="img/hello-900.jpg" alt="hello">
sizes
的image-set()属性都像媒体查询描述图像占用视口的空间。
srcset
只是告诉浏览器我们有什么图像可用,它们的大小是多少。
img/hello-300.jpg
是300像素宽,img/hello-600.jpg
为600像素宽,img/hello-900.jpg
是900px宽,img/hello-1200.jpg
是1200像素宽src
总是强制图像源。在与srcset
一起使用的情况下,如果浏览器不支持srcset
,则src
将提供后备图像。
<img src="img/hello-300.jpg" alt="hello"
srcset="img/hello-300.jpg 1x,
img/hello-600.jpg 2x,
img/hello-1200.jpg 3x">
srcset
使用srcset提供可用图像的列表,以及设备的像素比例x
描述符。
img/hello-300.jpg
img/hello-600.jpg
img/hello-1200.jpg
src
是总是强制性的图像源。在与srcset
一起使用的情况下,如果浏览器不支持srcset
,则src
将提供后备图像。
我没有注意到日期 – 2013-05-06 09:11:33
目前尚未得到广泛支持,甚至没有被所有主流浏览器支持:请查看我的博客文章,了解最佳解决方案,直到获得广泛支持:http://blog.benmarten.me/best -WAY到优化 - 网站 - 图片换所有可能的视网膜,尺寸/ – 2014-10-16 20:31:08