随着New iPad的发布,平板也将逐渐进入Retina时代,在高分辨率设备里图片的显示效果一般不尽人意,为了达到最佳的显示效果就须要对图片进行优化,这里介绍一些优化方法:css
这一点在任什么时候候都适用;只是在当前咱们能够更多的使用样式表来制做出设计效果,CSS3的圆角、渐变、模盒阴影、字体阴影能帮助咱们处理绝大多数视觉效果,而且在各类分辨率下都有良好的表现。
html
若是必须使用图片,一般是准备2套图片,一套原始尺寸( 为普通设备准备 ),一套两倍尺寸( 为高分辨设备准备 ),再根据设备的分辨率调用不一样的图片,调用的方式有2种:前端
1.使用CSS媒体查询( CSS media queries ),适用于根据不一样分辨率来加载不一样的背景图片
内联样式:css3
@media only screen and (-webkit-min-device-pixel-ratio: 2), only screen and (min-device-pixel-ratio: 2){ /* 2倍分辨率 执行样式*/ }
外链样式:git
<link href="retina.css" rel="stylesheet" type="text/css" media="only screen and (-webkit-min-device-pixel-ratio: 2), only screen and (min-device-pixel-ratio: 2)"/>
2.使用Javascript替换图片地址,适用于<img>标签加载的外链图片
首先使用 window.devicePixelRatio 来判断是否为高分辨率,而后替换图片的地址。github
想了解此方法的细节,能够参考下这篇分析apple.com方案的文章:
http://blog.cloudfour.com/how-apple-com-will-serve-retina-images-to-new-ipads/
下面是文中提到的 image_replacer.js 源码:
https://gist.github.com/2029936web
独特的Icon是大多数网站必备的设计元素,常规的处理方式是使用 sprite 技术,配合上面介绍的 CSS media queries 方法达到最优的显示效果,除此以外前端工程师也在探索一些新的优化方式:算法
1.Icon Fonts
将图标制做成特殊的字体,而后使用CSS3的自定义字体(@font-face)调用canvas
优势:跨域
缺点:
一些现成的Icon Fonts资源,基本可知足常规的设计需求:
若是你对Icon Fonts的制做方法感兴趣能够参考这篇文章《CSS3 icon font彻底指南》:
http://www.qianduan.net/css3-icon-font-guide.html
2.CSS Icon
与Icon Fonts思路相似,不一样的是使用CSS来制做各类图标
优势:
缺点:
资源:
关于CSS Icon的制做会在之后作介绍( 先挖个坑=。= )
3.SVG Icon
SVG是一种可伸缩矢量图形,调用方式和jpg、png等格式图片同样,经过CSS便可加载:
background-image: url('sprite.svg');
优势:
缺点:
这个方法有点偏门,来自嗷嗷的一篇文章:Retina 显示屏下 @2x 图片的模拟
优势
缺点
达到高分辨率下最佳的视觉效果当然不错,但加载速度也是用户体验重要指标之一。因此有时候咱们也要在优质与高速之间找一个平衡点,这里能够经过 navigator.connection 来判断用户的网络环境,若是是EDGE那仍是斟酌下是否要给用户提供高清图片。