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系列之3D制作方法案例
Aug 14 HTML / CSS
纯CSS3实现地球自转实现代码(图文教程附送源码)
Dec 26 HTML / CSS
浅谈CSS3 动画卡顿解决方案
Jan 02 HTML / CSS
详解CSS3新增的背景属性
Dec 25 HTML / CSS
css3 利用transform打造走动的2D时钟
Oct 20 HTML / CSS
纯CSS3实现运行时钟的示例代码
Jan 25 HTML / CSS
你不知道的5个HTML5新功能
Jun 28 HTML / CSS
前端面试必备之html5的新特性
Sep 05 HTML / CSS
HTML5中判断用户是否正在浏览页面的方法
May 03 HTML / CSS
HTML5 Canvas实现烟花绽放特效
Mar 02 HTML / CSS
浅析HTML5中的 History 模式
Jun 22 HTML / CSS
纯CSS实现一个简单步骤条的示例代码
Jul 15 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
用PHP写的MySQL数据库用户认证系统代码
2007/03/22 PHP
php获得文件夹下所有文件的递归算法的简单实例
2016/11/01 PHP
php+croppic.js实现剪切上传图片功能
2018/08/14 PHP
你可能不再需要JQUERY
2021/03/09 Javascript
用js实现计算代码行数的简单方法附代码
2007/08/13 Javascript
jQuery的强大选择器小结
2009/12/27 Javascript
扩展JavaScript功能的正确方法(译文)
2012/04/12 Javascript
LABjs、RequireJS、SeaJS的区别
2014/03/04 Javascript
原生javascript实现图片按钮切换
2015/01/12 Javascript
IE下使用jQuery重置iframe地址时内存泄露问题解决办法
2015/02/05 Javascript
seajs加载jquery时提示$ is not a function该怎么解决
2015/10/23 Javascript
JS实现自定义简单网页软键盘效果代码
2015/11/05 Javascript
jQuery ztree实现动态树形多选菜单
2016/08/12 Javascript
Angularjs结合Bootstrap制作的一个TODO List
2016/08/18 Javascript
js实现背景图自适应窗口大小
2017/01/10 Javascript
node.js中EJS 模板快速入门教程
2017/05/08 Javascript
Vue中引入样式文件的方法
2017/08/18 Javascript
webpack安装配置与常见使用过程详解(结合vue)
2020/06/01 Javascript
JS判断数组是否包含某元素实现方法汇总
2020/06/24 Javascript
Python算法之栈(stack)的实现
2014/08/18 Python
老生常谈python之鸭子类和多态
2017/06/13 Python
Python使用openpyxl读写excel文件的方法
2017/06/30 Python
python之MSE、MAE、RMSE的使用
2020/02/24 Python
Python图像处理库PIL的ImageFilter模块使用介绍
2020/02/26 Python
python调用摄像头的示例代码
2020/09/28 Python
美国嘻哈首饰购物网站:Hip Hop Bling
2016/12/30 全球购物
DOUGLAS波兰:在线销售香水和化妆品
2020/07/05 全球购物
书法培训心得体会
2014/01/05 职场文书
个人党性剖析材料
2014/02/03 职场文书
大学生学习2014年全国两会心得体会
2014/03/12 职场文书
勾股定理课后反思
2014/04/26 职场文书
小学生母亲节演讲稿
2014/05/07 职场文书
国庆节演讲稿
2014/05/27 职场文书
个人三严三实对照检查材料
2014/09/25 职场文书
2014年国庆节演讲稿精选范文1500字
2014/09/25 职场文书
幼儿园欢迎词范文
2015/01/26 职场文书