- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我已经编写了一个 JavaScript 填充器来实现 srcset
,但我需要阐明指定的行为。
虽然 srcset
允许您指定宽度或分辨率的条件,但我不知道是否可以指定两者。例如:
<img src="images/oh1x408.jpg"
srcset="images/oh1x192.jpg, images/oh1x408.jpg 420w,
images/oh2x192.jpg 2x, images/oh2x408.jpg 2x 420w">
这应该涵盖单分辨率和双分辨率,以及更小和更宽的屏幕。
我没有看到同时指定宽度和分辨率的示例。问题是:
srcset
示例中的最后一张图片是否符合规范?谢谢
最佳答案
不可以,您只能指定两者之一。看来,您不了解宽度描述符的工作原理。一旦使用宽度描述符,就不再需要 x 描述符了。
这是一个例子:
<img srcset="img-300.jpg 1x, img-600.jpg 2x" />
上面的例子也可以用宽度描述符来描述,看起来像这样:
<img srcset="img-300.jpg 300w, img-600.jpg 600w" sizes="300px" />
srcset 是关于分辨率切换的(无艺术指导)。虽然密度描述符只能处理静态宽度图像,但宽度描述符还可以使用 sizes 属性处理自适应图像。宽度描述符以物理像素描述每个候选图像的宽度,大小属性以布局像素描述图像的(不同)宽度。
这是一个更复杂的例子:
<img srcset="img-300.jpg 300w, img-480.jpg 480w, img-720.jpg 720w" sizes="(min-width: 480px) 400px, 100vw" />
上面的例子说我们有 3 个候选者,一个宽度为 300,另一个宽度为 480,最后一个宽度为 720 像素,此外,如果视口(viewport)为 min-width: 480px,图像将以 400 像素显示,否则为以全视口(viewport)宽度 (100vw) 显示。
然后浏览器会根据您的尺寸属性自动计算宽度。例如,如果您正在查看 360 像素宽的设备,则采用 100vw 尺寸(因为它比 480 像素低)并计算为 360 像素布局像素。然后浏览器通过划分计算每个候选的密度:宽度描述符/计算的大小):
300 / 360 = 0.83
480 / 360 = 1.34
720 / 360 = 2
然后浏览器根据您设备的像素比选择最适合该设备的候选者。因此它在 1x 设备上拍摄 480 宽图像,在 2x 设备上拍摄 720 宽图像。
如您所见,您不再需要使用密度描述符。密度描述符只是一个较短的版本。
是的,已经有一个 polyfill 可以很好地处理这个问题。
关于HTML srcset 规范 : Clarification,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31465675/
我的目标是为同一图像提供不同版本(分辨率/尺寸),它应该占据视口(viewport)宽度的 100%,因此我可以为移动设备(或者通常是显示器更小或更慢的设备)提供 800px 版本连接),1366px
这是我的图片标签的样子: 对于桌面设备,我使用小拇指 (270x190)。对于移动设备,我使用大拇指 (690x486)。但是,如何使用中号拇指 (540x380) 为 Retina 桌面创建规则?
我有这个带有几个不同 src 的图片标签,它只加载了一个。我觉得我是按照说明操作的,但它只加载了 600 像素宽度的图像(w_600 图像)。 这是一个 Live Demo 我试图让它在桌面上加载最
我将其用于我的新页面的移动版本(媒体查询): 目前在手机和 DPR 手机上工作正常...... 所以现在下一步是添加平板电脑(768 像素)。 我认为应该可以这样: 所以这将结合 DPR 和设备
如果 srcset 不存在,我正在尝试将其更改为默认图像。 如果窗口低于 465px,则如果 Small.jpg 不存在,则 img 行将使用默认值。如果图像不存在,我就无法更改 srcset。有任何
我正在尝试根据设备宽度提供响应式/自适应图像。 原图: 使用 Srcset: 我面临两个问题: 1) 即使在较小的设备(如 iPhone 6s)上,也会加载宽度为 2000px 的图像(它应该加载
据我所知,srcset 和 sizes 属性更侧重于为设备的尺寸和分辨率应用适当缩放的图像。 似乎没有工具可以使用这些属性来根据屏幕尺寸选择替代图像,例如裁剪或方向不同的图像。 这样理解正确吗?这是否
有没有办法在不在 sizes 属性中指定原始宽度的情况下将 scrset 添加到图像? 例如,我有这张图片: 原始尺寸为 555px。正如预期的那样,它在大于 480 像素的视口(viewport)
这是我的 img 标签: 我正在使用 imgix,它根据 dpr 查询参数以正确的像素密度返回图像。以上似乎不起作用,图像未以正确的大小呈现。我没有使用正确的格式吗? 最佳答案 您不能在 srcse
我正在尝试在我的网站上实现视网膜 (2x) 图像。我们的页面是从模板构建的,我们只使用标准的内联图像: 我想我可以很聪明,用 srcset 更新它: 但是,我们还没有许多这些图像的 2x 变体。
我一直在尝试使用以下 HTML 实现新的 srcset 方法来响应图像 我使用的是 chrome 40,我得到的只是最大的图像,调整浏览器大小、清除缓存没有任何作用。 我在某处读到我
我正在尝试在新窗口中打开图像并根据 srcset 加载正确的图像,以便根据分辨率打开正确的图像尺寸 html: jQuery $(".gallery-cell").on("click",
我有一个带有 srcset 属性的图像标签,其中包含一个值(url)。现在我还需要为 src 属性获取并生成相同的内容。 $('img').attr('srcset') 上面的代码不起作用并返回未定义
我正在使用功能检测来确定浏览器是否支持 .webp 格式并仅为这些浏览器加载 javascript。我在客户端执行此操作的原因是 PHP 解决方案(使用 .htaccess)不起作用,可能是因为我的
我正在尝试将 srcset 与来自 Bootstrap 的 container-fluid 结合使用。 我知道,有问题,但我不知道是什么!我正在尝试使用 calc,因为我没有图像宽度的确切数字。 在@
我有一张带有 srcset 的图片: 我想知道当前显示的是哪些候选人,理想情况下我会返回 2x.png 或 4x.png,具体取决于哪个图像浏览器已选择。 我认为 img.src 会这样做,但据我从
假设我有一张图片 现在这也可以是 这样的格式 此外,(不是有效的 HTML) 现在我如何提取具有最高分辨率图像的 URL。 我想拆分 srcset 然后提取大小,但问题是大小可以在 1200w
我想升级我的标记以使用“图片”元素,同时依赖我作为后备编写的响应式图像脚本。 有什么方法可以有条件地仅在不支持该元素的浏览器中触发我的响应式图像脚本? Modernizr 似乎直到 v.3 才提供此测
我目前正在尝试在我的网站上制作更好的响应图像。经过一些研究,我发现了 srcset 和 sizes 属性。 我的目标如下: 当屏幕尺寸大于 600 像素或小于 300 像素时,我想提供 250x250
我在流体布局上将 lazysizes 插件与 srcset 结合使用。我不知道如何让浏览器将页面加载到正确的长度,而不是在滚动时扩展页面。 我用bootstrap框架做了一个codepen来演示一下
我是一名优秀的程序员,十分优秀!