前言
随着网站开发技术的发展,浏览器的升级,操作系统的升级,HTML5\CSS3技术的推出,对HTML5的支持变得越来越全面,也让旧浏览器的占有率越来越低,同时不同尺寸的显示终端越来越多,这些让我们看到了响应式网站普及的署光及迫切需求。但,今天要谈的是响应式网站一个必须要解决的问题:图片响应式,一张大图如果PC端是这么大、平板端是这么大、手机端还是这么大的话,实在太不科学了,一是手机流量占用过大,下载速度慢;其次就是图片大比例压缩后变得模糊。
背景图片响应式解决办法
如果图片是以背景方式存在,这种比较好解决,可以采用媒体查询,为不同尺寸的显示终端设置不同图片。
图片响应式解决方法:
1、采用picture元素,如下代码
<picture alt="">
<source src="大图路径" alt="" media="(min-width: 640px)">
<source src="小图" alt="" media="(max-width: 639px)">
<img src="默认图片" alt="" alt="">
</picture>
这种方法已经被很多网站使用
2、采用srcset属性,如下代码
<img src="默认图片" alt="" srcset="1倍大图 600w 200h 1x, 2倍大图 600w 200h 2x, 小图 200w 200h">
srcset里面是根据媒体查询条件显示不同图片,跟上面差不多一样,表达方式不一样,1x表示显示器像素密度显示倍数。
正常我是两者结合的方式实现,各大浏览器最新的版本基本都支持,但是IE系列的不支持,这让我们感到非常头痛,兼容性具体如下图。
比较严重的问题是QQ浏览器以IE为内核,微信浏览器不支持,而微信在国内的使用率非常高,加之微信公众平台的微官网是客户的常见需求,最后解决办法是使用Picturefill,效果非常好。