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动画效果抖动解决方法
Sep 03 HTML / CSS
使用 css3 实现圆形进度条的示例
Jul 05 HTML / CSS
用CSS3实现瀑布流布局的示例代码
Nov 10 HTML / CSS
使用css3做0.5px的细线的示例代码
Jan 18 HTML / CSS
CSS3实现王者匹配时的粒子动画效果
Apr 12 HTML / CSS
使用phonegap检测网络状态的方法
Mar 30 HTML / CSS
浅谈利用缓存来优化HTML5 Canvas程序的性能
May 12 HTML / CSS
利用HTML5绘制点线面组成的3D图形的示例
May 12 HTML / CSS
一些常用的HTML5模式(pattern) 总结
Jul 14 HTML / CSS
html5中audio支持音频格式的解决方法
Aug 24 HTML / CSS
HTML+CSS制作心跳特效的实现
May 26 HTML / CSS
HTML5 新增内容和 API详解
Nov 17 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
咖啡豆的最常见发酵处理方法,详细了解一下
2021/03/03 冲泡冲煮
thinkphp判断访客为手机端或PC端的方法
2014/11/24 PHP
jQuery示例收集
2010/11/05 Javascript
jQuery中判断一个元素是否为另一个元素的子元素(或者其本身)
2012/03/21 Javascript
关于textarea提交的内容无法换行的解决办法
2013/04/09 Javascript
JS定时关闭窗口的实例
2013/05/22 Javascript
js浮点数精确计算(加、减、乘、除)
2013/12/26 Javascript
extjs_02_grid显示本地数据、显示跨域数据
2014/06/23 Javascript
原生JS实现美图瀑布流布局赏析
2015/09/07 Javascript
深入解析AngularJS框架中$scope的作用与生命周期
2016/03/05 Javascript
【经典源码收藏】jQuery实用代码片段(筛选,搜索,样式,清除默认值,多选等)
2016/06/07 Javascript
将JSON字符串转换成Map对象的方法
2016/11/30 Javascript
基于JavaScript实现自动更新倒计时效果
2016/12/19 Javascript
Javascript中的神器——Promise
2017/02/08 Javascript
如何在postman测试用例中实现断言过程解析
2020/07/09 Javascript
浅谈Python实现贪心算法与活动安排问题
2017/12/19 Python
pygame游戏之旅 调用按钮实现游戏开始功能
2018/11/21 Python
基于wxPython的GUI实现输入对话框(2)
2019/02/27 Python
python opencv捕获摄像头并显示内容的实现
2019/07/11 Python
python pandas dataframe 去重函数的具体使用
2020/07/20 Python
matplotlib之多边形选区(PolygonSelector)的使用
2021/02/24 Python
解决tensorflow模型压缩的问题_踩坑无数,总算搞定
2021/03/02 Python
CSS3 开发工具收集
2010/04/17 HTML / CSS
详解CSS3 rem(设置字体大小) 教程
2017/11/21 HTML / CSS
基于zepto的插件之移动端无缝向上滚动并上下触摸滑动实例代码
2016/12/20 HTML / CSS
植村秀美国官网:Shu Uemura美国
2019/03/19 全球购物
什么是SCM(软件配置管理)
2014/08/16 面试题
旅游管理专业学生求职信
2013/09/28 职场文书
工程现场管理求职自荐信
2013/10/02 职场文书
集团公司党的群众路线教育实践活动工作总结
2014/03/03 职场文书
新学期教师寄语
2014/04/02 职场文书
七一建党日演讲稿
2014/09/05 职场文书
学校2014年度工作总结
2014/12/06 职场文书
餐厅营销的秘密:为什么老顾客会流水?
2019/08/08 职场文书
手写实现JS中的new
2021/11/07 Javascript
Elasticsearch 数据类型及管理
2022/04/19 Python