image-set实现Retina屏幕下图片显示详细介绍


Posted in HTML / CSS onDecember 24, 2012

在不支持image-set的浏览器下,他会支持background-image图像,也就是说不支持image-set的浏览器下,他们解析background-image中的背景图像;
支持image-set:如果你的浏览器支持image-sete,而且是普通显屏下,此时浏览器会选择image-set中的@1x背景图像;
Retina屏幕下的image-set:如果你的浏览器支持image-set,而且是在Retina屏幕下,此时浏览器会选择image-set中的@2x背景图像。
上面就是有关于“image-set”的简单介绍。
为什么要使用image-set而不使用Media Queries?
如果你有阅读有关于Retina的文章,你就会知道,在Retina屏幕下实现图像显示的方法有很多种,比如说“img”标签方法、javascript和方法,还有“Media Queries”方法,特别是“Media Queries”方法(如果你不清楚这些方法,可以点击 这和这)。既然有这么多种方法要以实现Retina屏幕下的图像显示,那么为什么还要使用“image-set”方法。这个问题问得非常的好。Jason Grigsby 在“Safari 6 and Chrome 21 add image-set to support retina images ”中把为什么要使用“image-set”而不使用CSS3的“Media Queries”实现Retina屏幕下图像方法做了两点描述。

不像Media Queries,image-set不需要告诉浏览器使用什么图像,而是直接提供了图像让浏览器选择。在未来,我希望有人在使用Retina设备浏览网页,但网速慢时,告诉设备采用低分辨率的图像。甚至会更好,他能根据网速智能的选择需要的图像。

使用“Media Queries”的问题是,在高分辨率显示器下他没有选择的权利。也就是说,浏览器分辨率等于1或2或者其他的时候,浏览器必须加载指定的图像。
image-set的好处是,在支持image-set的浏览器会在高分辨下匹配需要的图像,而没有其他额外的功能。但我相信,为浏览器提供不同的图像选择,这浏览器在不同的分辨下选择正确的图像。
image-set能让各种不同分辨下的图像都显示在CSS中的同一个地方。而使用media queries显示不同图像时,你可能会隔开很多行代码,难于寻找到对应的图像。

image-set真的好强大,很可惜的是,他仅支持background-image属性,而不能使用在“<img>”标签中。
前面也说过了,目前image-set只能使用webkit浏览器的私有属性“-webkit”在“Safari6”和“Chrome21”下运行。现在在IOS 6得到 支持。不过很遗憾的是,目前别的浏览器还是不支持image-set,现在他仅是CSS4的一个草案,希望将来能写到标准中,造福于苦逼的前端人员。

image-set虽然目前是一个全新的属性,没有几个浏览器支持,但这是一种新技术,我们需要用起来,只有用的人多了,将来才有机会写入标准的规范中,正所谓“世上本无路,走的人多了,路就出来了”。但话说回来,这种技术用来解决Retina屏幕下的图像显示,是一种绝佳的方法,如果你开会的项目中有汲及到Retina设备的,不仿大胆的使用起image-set,就像qq.com这大佬一样。
东一榔头西一棒的说完了image-set,如果你不知道他是怎么一回事,其实不要紧,你只要先知道这样使用能帮你解决问题就OK,因为有太多的为什么我们无能力现在解决,但随着时间的累积,我们终有一天能搞明白他的原理。最后希望这篇文章能帮到大家,如果你有更好的方法,记得与我们一起分享。

HTML / CSS 相关文章推荐
纯css3实现宠物小鸡实例代码
Oct 08 HTML / CSS
浅谈CSS3 动画卡顿解决方案
Jan 02 HTML / CSS
CSS实现进度条和订单进度条的示例
Nov 05 HTML / CSS
5分钟弄清楚html5的drag and drop(小结)
Apr 10 HTML / CSS
html5中canvas学习笔记2-判断浏览器是否支持canvas
Jan 06 HTML / CSS
html5实现多文件的上传示例代码
Feb 13 HTML / CSS
HTML5到底会有什么发展?HTML5的前景展望
Jul 07 HTML / CSS
HTML5中使用postMessage实现两个网页间传递数据
Jun 22 HTML / CSS
Html5页面二次分享的实现
Jul 30 HTML / CSS
如何让pre和textarea等HTML元素去掉滚动条自动换行自适应文本内容高度
Aug 01 HTML / CSS
浅析HTML5 Landmark
Sep 11 HTML / CSS
Html分层的box-shadow效果的示例代码
Mar 30 HTML / CSS
今天学到的CSS最新技术(与图片背景相关)
Dec 24 #HTML / CSS
CSS3系列教程:背景图片(背景大小和多背景图) 应用说明
Dec 19 #HTML / CSS
css3实现背景颜色渐变让图片不再是唯一的实现方式
Dec 18 #HTML / CSS
css3制作动态进度条以及附加jQuery百分比数字显示
Dec 13 #HTML / CSS
CSS3线性渐变简单实现以及该属性在浏览器中的不同
Dec 12 #HTML / CSS
CSS实现圆形放大镜狙击镜效果 只有圆圈里的放大
Dec 10 #HTML / CSS
CSS3制作半透明边框(Facebox)类似渐变
Dec 09 #HTML / CSS
You might like
基于文本的访客签到簿
2006/10/09 PHP
php中DOMElement操作xml文档实例演示
2013/03/26 PHP
基于php中使用excel的简单介绍
2013/08/02 PHP
php生成图形验证码几种方法小结
2013/08/15 PHP
jquery对元素拖动排序示例
2014/01/16 Javascript
js获取select默认选中的Option并不是当前选中值
2014/05/07 Javascript
JavaScript原生对象之Date对象的属性和方法详解
2015/03/13 Javascript
轻松学习jQuery插件EasyUI EasyUI创建树形网络(1)
2015/11/30 Javascript
Bootstrap安装环境配置教程分享
2016/05/27 Javascript
JS实现鼠标框选效果完整实例
2016/06/20 Javascript
js添加千分位的实现代码(超简单)
2016/08/01 Javascript
JS判断输入字符串长度实例代码(汉字算两个字符,字母数字算一个)
2016/08/02 Javascript
javascript简写常用的12个技巧(可以大大减少你的js代码量)
2020/03/28 Javascript
Vue-路由导航菜单栏的高亮设置方法
2018/03/17 Javascript
Js中使用正则表达式验证输入是否有特殊字符
2018/09/07 Javascript
详解小程序云开发数据库
2019/05/20 Javascript
vue-cli3中vue.config.js配置教程详解
2019/05/29 Javascript
详解微信小程序开发(项目从零开始)
2019/06/06 Javascript
使用微信SDK自定义分享的方法
2019/07/03 Javascript
浅谈TypeScript 用 Webpack/ts-node 运行的配置记录
2019/10/11 Javascript
[02:58]献给西雅图的情书_高清
2014/05/29 DOTA
Python中Class类用法实例分析
2015/11/12 Python
Python判断文本中消息重复次数的方法
2016/04/27 Python
Python 模拟登陆的两种实现方法
2017/08/10 Python
python__name__原理及用法详解
2019/11/02 Python
解决Python3下map函数的显示问题
2019/12/04 Python
高中的自我鉴定
2013/12/16 职场文书
网吧消防安全责任书
2014/07/29 职场文书
2014小学教师个人工作总结
2014/11/10 职场文书
幼儿园感谢信
2015/01/21 职场文书
事业单位个人总结
2015/02/12 职场文书
中学生逃课检讨书
2015/02/17 职场文书
初中毕业生自我评价
2015/03/02 职场文书
OpenCV-Python 实现两张图片自动拼接成全景图
2021/06/11 Python
Python天气语音播报小助手
2021/09/25 Python
Apache Linkis 中间件架构及快速安装步骤
2022/03/16 Servers