Javascript 在srcset中定义多个描述符安全吗?
我需要存储图像的宽度和高度(每种大小),以便稍后通过JS解析它们。我使用的语法定义了Javascript 在srcset中定义多个描述符安全吗?,javascript,html,responsive-design,Javascript,Html,Responsive Design,我需要存储图像的宽度和高度(每种大小),以便稍后通过JS解析它们。我使用的语法定义了w和h描述符: <img srcset="small.jpg 600w 400h, medium.jpg 1024w 500h, large.jpg 1600w 900h" alt=""> 首先,h描述符在规范中被称为“future-compat-h”描述符。它被添加到解析规则中,以便浏览器(仅支持宽度描述符)在开发人员指定和使用h描述符时不会失败 这意
w
和h
描述符:
<img srcset="small.jpg 600w 400h,
medium.jpg 1024w 500h,
large.jpg 1600w 900h"
alt="">
首先,h描述符在规范中被称为“future-compat-h”描述符。它被添加到解析规则中,以便浏览器(仅支持宽度描述符)在开发人员指定和使用h描述符时不会失败 这意味着它可以保存以供使用,但目前任何浏览器都不支持(甚至没有指定如何为高度受限的图像写入sizes属性的确切方式)。但请注意,picturefill 2.x无法正确解析此类
srcset
字符串,您应该使用以下任一方法:
srcset
字符串,您应该使用以下任一方法:
srcset
实施目前考虑了高度,但这是长期计划的一部分,因此,这些h
描述符最终可能会影响显示的源。如果您正在编写的JS行为是为了匹配本机实现处理h
描述符的方式,那么我会走这条路,但要谨慎行事,没有办法说将来会有什么样的规范/实现。如果没有,我肯定会坚持使用data-
属性
旁边一点:你需要一个
size
。如果省略该属性,则行为仍默认为100vw
,但需要进行验证。Nosrcset
实现目前考虑了高度,但它是长期计划的一部分,因此,这些h
描述符可能最终会影响显示的源。如果您正在编写的JS行为是为了匹配本机实现处理h
描述符的方式,那么我会走这条路,但要谨慎行事,没有办法说将来会有什么样的规范/实现。如果没有,我肯定会坚持使用data-
属性
旁边一点:你需要一个size
。如果省略该属性,则行为仍默认为100vw
,但这是验证所必需的。此处是
规范的共同作者
技术上是安全的,只是因为我们明确允许h
描述符用于将来的compat。只要您正确使用它(对于实际高度,与w
相同),当我们最终启用对基于高度的选择的支持时,您应该是安全的
但你不能做任何其他事情;任何无法识别的描述符(除了x
、w
或h
)都会导致候选人被淘汰。此处是
规范的合著者
技术上是安全的,只是因为我们明确允许h
描述符用于将来的compat。只要您正确使用它(对于实际高度,与w
相同),当我们最终启用对基于高度的选择的支持时,您应该是安全的
但你不能做任何其他事情;任何无法识别的描述符(除了x
、w
或h
)都会导致候选人被淘汰。高度完全在规范中,所以我会说它不安全。高度完全在规范中,所以我会说它不安全。
<img srcset="small.jpg 600w,
medium.jpg 1024w,
large.jpg 1600w"
data-my-sizes="600x400 1024x500 1600x900"
alt="">