响应式图片解决方案

如今开发一个网站不是响应式都不好意思拿出来,那么作为响应式中的重要一环「响应式图片」你又是如何解决的呢?
网站的平均加载已经到了近 2mb 并在不断地增加中,其中图片占据了绝大多数流量(63%)。可以肯定的是网页已经有了严重的大小问题,而图片就是罪魁祸首。虽然已经有很多种 措施 可以减少网页加载量,但或许更重要的步骤之一是确保响应式图片的加载方案。通过利用响应式图片解决方案,我们可以确保最佳的图片被加载,带宽不会被过大的图片所浪费。因此 w3c 定义了 picture 标签:基于检测客户端设备类型的可替换图片方案。具体是由 picture 这个标签去实现,也就是说我们现在有了一个基于标准的响应式图片解决方案可以用在实践中。
长话短说(人话)断点(breakpoints)应该 取决于内容 而不是设备宽度 (css3 media query)根据尺寸加载不同图片计算图片像素密度并加到图片加载列表中通过消除图片加载列表中太相近的值来让加载列表变得可维护利用程序自动输出图片的不同大小利用 img 标签的 srcset sizes 等属性输出同一张图片的不同路径/尺寸,以解决响应式图片的大小和像素密度的问题picturefill 库能让我们现在就使用这些强大的特性虽然 picturefill 还有一些缺点 但这么做仍然利大于弊查看demo
定义第一步就是定义所有响应式图片的尺寸和断点,这些信息在网页原型中就应该被精确的标示出来。重要的一点是 你的断点应该取决于你的内容 而不是不同设备的宽度。这么做是因为设备的参数是在不断变化的,流行的设备尺寸总是在变。通过让内容来决定断点位置,这将确保我们的界面在所有屏幕上响应而不是特殊的几个设备。
注意 当决定哪些图片应该被做成响应式时,要记住一点,大多数都是放在内容中的图片。例如在 html 中插入的图片而不是在 css 中的背景图片。
图片尺寸首先将你的浏览器窗口放到最大(或者你规定的内容展示最大宽度),然后记录下此时你的内容宽度和你想要展示的图片宽度,通过浏览器的开发者工具或者类似的插件。
接下来缩放你的浏览器窗口直到你想要给图片设置宽度的下一个断点,再继续缩放直到你记录下所有的作用于图片宽度断点。当你完成的时候你应该记录下每张图片在不同大小下应该载入的宽度。
举例,仅仅是例子:
<span class="pun">[</span><span class="pln">max</span><span class="pun">-</span><span class="pln">width</span><span class="pun">]</span> <span class="pun">:</span> <span class="pun">[</span><span class="lit">1440</span><span class="pun">]</span> <span class="pun">[</span><span class="pln">breakpoint large</span><span class="pun">]</span> <span class="pun">:</span> <span class="pun">[</span><span class="lit">1120</span><span class="pun">]</span> <span class="pun">[</span><span class="pln">breakpoint medium</span><span class="pun">]</span> <span class="pun">:</span> <span class="pun">[</span><span class="lit">800</span><span class="pun">]</span> <span class="pun">[</span><span class="pln">reakpoint small</span><span class="pun">]</span> <span class="pun">:</span> <span class="pun">[</span><span class="lit">400</span><span class="pun">]</span>
注意 关于决定断点需要注意的是:断点越多,代码越难维护。除此之外大量的断点会使 css 变得臃肿。所以尽量在保证效果的情况下保持最少的断点。
高分辨率下一步是根据你想要支持的分辨率 对图片宽度进行计算。决定要支持那些分辨率是很困难的,因为有 太多的不同的分辨率,并且每支持一种分辨率你需要计算宽度并放在你的图片加载列表里。所以需要做的是根据实际情况和你的用户群体去选择支持不同的分辨率。
如果你已经决定了需要支持那些高分辨率,那图片加载列表会像下面这样:
<span class="pun">[</span><span class="pln">max</span><span class="pun">-</span><span class="pln">width</span><span class="pun">]</span> <span class="pun">:</span> <span class="pun">[</span><span class="pln">image width</span><span class="pun">],</span> <span class="pun">[</span><span class="pln">image width x1</span><span class="pun">.</span><span class="lit">5</span><span class="pun">],</span> <span class="pun">[</span><span class="pln">image width x2</span><span class="pun">]</span> <span class="pun">[</span><span class="pln">breakpoint large</span><span class="pun">]</span> <span class="pun">:</span> <span class="pun">[</s
上一个:传统外贸企业如何做好互联网营销
下一个:网站建设后经常更新的好处
西和网站建设,西和做网站,西和网站设计