写点什么

Chrome 38 通过<picture>元素支持 Art Direction

  • 2014-10-22
  • 本文字数:1310 字

    阅读完需:约 4 分钟

Google 在最近发布的 Chrome 38 中,增加了对元素的支持,让开发者能够针对不同类型的媒体查询(media queries)请求,指定多种不同的图像来源。

对于同样的图片,与传统的 PNG 或 JPG 图像格式相比,采用 Google 带来的 WebP 图像格式,下载流量最多将能够减少 25-34%。不过,尽管该图像格式能够降低网络传输数据量,从而使 Web 页面的上传速度将得以小幅提升,但为了满足 Web响应式设计的需求,还需要引入其他解决方案。

例如,根据 DPR``(设备 -``像素 -``比率),<img>``元素的 srcset``属性可以用来渲染若干固定尺寸图像中的一幅,如下图所示:

复制代码
<img src="/images/100-example.jpg"     
srcset="/images/150-example.jpg 1.5x, /images/200-example.jpg 2x"     
alt="" width="100" height="150">

而另一个方案是基于视区(viewport)大小,呈现经过缩放的图像:

复制代码
<img sizes="100vw" srcset="example-200.jpg 200w, example-600.jpg 600w,
example-1200.jpg 1200w” src="example-200.jpg">

Responsive Images Community Group (RICG)公布的信息来看,Chrome 34+、Safari 和 Firefox 33+(带有状态 flag)都支持 srcset 属性。微软则正在考虑为 IE 实现该特性。而 Opera 21+ 由于使用了 Chrome 的 Blink 引擎,所以同样支持该特性。WHATWG 小组详细列出了srcset 属性及其用法(点击查看详情)

有时候,用户代理需要呈现完整图片,或是呈现部分图片并排除不相干的部分,而这取决于设备的物理大小、屏幕分辨率、朝向(垂直或水平)及其他方面的因素。我们可以从如下示例图片(由 responsiveimages.org 提供)来了解这个被称为 Art Direction 的方法。

尽管也可以使用 JavaScript 来实现这一功能,但是实际上我们并不提倡这种做法,因为某些用户代理会在加载和运行任何脚本之前就下载页面图片;另一些则会在运行脚本、下载图片之前,让页面呈现出空白图片占位。因此,推荐的解决方案是使用<a href="https://html.spec.whatwg.org/multipage/embedded-content.html#the-picture-element">picture</a>元素,它让开发者能够指定多重图像来源,并将它们与媒体查询结合。

下面的示例展示了为多种 DPR 提供不同图片来源的方法:

复制代码
<picture>   <source media="(max-width: 500px)"
srcset="banner-phone.jpeg, banner-phone-HD.jpeg 2x">   <
img src="banner.jpeg" srcset="banner-HD.jpeg 2x"
alt="The Breakfast Combo"> </picture>

当浏览器无法识别元素时,将使用元素作为回滚方案。 HTML 规范包含了其他示例,展示如何使用多重图像来源,用于图像的裁切或不同的图像格式。

Google 最近还在其稳定版分支(stable channel)中公布了一份可以用在 Chrome 38 中进行测试运行的 Art Direction 的示例。运行该示例的时候,用户要想观测到效果,需要调整浏览器窗口的大小,强迫浏览器呈现不同的图片。

目前,只有Chrome 38+ 和Opera 25+ 能够完整地支持元素。Firefox 33+ 也支持这一元素,但需要人工启用。而对IE 或Safari 来说,具体的情况目前尚不清楚。对于尚不支持这一特性的浏览器,想要创建响应式图片的开发者可以使用 Picturefill Polyfill 作为替代方案。

查看英文原文: Chrome 38 Supports Art Direction through the picture Element

2014-10-22 03:151711
用户头像

发布了 256 篇内容, 共 81.1 次阅读, 收获喜欢 10 次。

关注

评论

发布
暂无评论
发现更多内容

软件测试/测试开发丨Pytest 自动化测试框架(五)

测试人

软件测试 自动化测试 测试开发 pytest alure

数仓实践丨主动预防-DWS关键工具安装确认

华为云开发者联盟

数据库 后端 华为云 华为云开发者联盟 企业号 4 月 PK 榜

华为亮相KubeCon EU 2023 新云原生开源项目Kuasar推动“云上演进”

华为云开发者联盟

开源 后端 华为云 华为云开发者联盟 企业号 4 月 PK 榜

软件测试/测试开发丨Pytest 自动化测试框架(四)

测试人

软件测试 自动化测试 测试开发 pytest

区块链数字代币燃烧模式开发技术方案丨(成熟技术)

I8O28578624

今天一定要搞清楚Spring事务

Java spring Spring事务

强强联合,ByteHouse携手亚马逊云科技,新一代云数仓服务重磅升级

字节跳动数据平台

数据仓库 云原生 Clickhouse 企业号 4 月 PK 榜

Josh × 微帧科技,为印度TOP短视频平台提供视频编码服务

微帧Visionular

音视频 视频编码 音视频技术

分布式多级缓存系统设计与实战

分布式 系统设计 多级缓存

让GitHub低头认错的这份阿里内部绝密Java面试八股文手册有多强?

Java你猿哥

Java 面试 ssm 面经 八股文

多位P8大牛联袂推出:国内最牛的Java面试八股,不接受反驳

Java你猿哥

Java 面试 ssm 面经 八股文

泰库辣!京东首席架构师:亿级流量网站架构核心技术,肝完薪资飙升

Java你猿哥

架构 高可用 ssm 高并发 架构设计

深扒Sentinel背后的实现原理之后,我终于明白它为什么这么强了

Java你猿哥

Java spring ssm Sentine

阿里逆天级调优方案,内部这套Java性能调优实战宝典,堪称教科书

Java 性能优化 性能调优

震撼!阿里架构师全新产出Java面试突击宝典。我觉得泰库辣!

Java你猿哥

Java redis spring Spring Boot JVM

用户订阅付费如何拆解分析?看这篇就够了

HarmonyOS SDK

HMS Core

C4D渲染器到底该怎么选?

Finovy Cloud

C4D

华为ISDP亮相长沙电力行业信息化年会,分享数字化转型实践与技术创新

平平无奇爱好科技

华为ISDP数字化现场作业亮相第十七届工程建设行业信息化发展大会

平平无奇爱好科技

路由器、网桥和交换机

测吧(北京)科技有限公司

测试

Docker不香了?只能说阿里这套K8S手册更香

Java Kubernetes k8s

带你了解关于FastAPI快速开发Web API项目中的模板和Jinja

华为云开发者联盟

微服务 前端 华为云 华为云开发者联盟 企业号 4 月 PK 榜

如果不知道这4种缓存模式,敢说懂缓存吗?

Java你猿哥

缓存 架构 ssm 架构设计 cache

PostgreSQL插件那么多,怎样管理最高效?

华为云开发者联盟

数据库 后端 华为云 华为云开发者联盟 企业号 4 月 PK 榜

卧薪尝胆30天!啃透京东大牛的高并发设计进阶手册,终获P7意向书

Java 系统设计 高并发

百度APP iOS端包体积50M优化实践(二) 图片优化

百度Geek说

ios 开发语言 企业号 4 月 PK 榜

Java 应用程序在 Kubernetes 上棘手的内存管理

Java你猿哥

Kubernetes JVM ssm requests limits

校园共享电单车是否值得投放

共享电单车厂家

共享电动车厂家 共享电单车投放 校园共享电动车 本铯共享电动车

使用 IDEA 远程 Debug 调试(一篇懂所有)

Java你猿哥

Java Spring Boot ssm IDEA

openGauss数据库源码解析系列文章——执行器解析(三)

精彩回顾 | DTC模式构建全域消费者增长指南

游读分享

Chrome 38通过<picture>元素支持Art Direction_JavaScript_Abel Avram_InfoQ精选文章