前端开发中对图片的优化

参考:https://www.zhihu.com/question/21815101
https://blog.csdn.net/array_huang/article/details/50162525

尽可能少用图片

哈哈,如果你压根不用图片,就不存在图片优化的问题了。像一些修饰效果,比如半透明、边框、圆角、阴影、渐变等,都可以通过css达成,而不需要更换图片。

使用矢量图代替位图

SVG是基于矢量的,它会通过数学函数对形状和颜色进行计算,对它缩放不会失真。位图是基于像素的,缩放会失真。因为之前没有接触过SVG,这里补充一下SVG的基础知识。

svg基础

SVG是纯粹的XML,SVG文件必须使用.svg后缀来保存。





<svg width="100%" height="100%" version="1.1"
xmlns="http://www.w3.org/2000/svg">

<circle cx="100" cy="50" r="40" stroke="black"
stroke-width="2" fill="red"/>

svg>

这就是一个简单的SVG文件。第一行包含了 XML 声明。请注意 standalone 属性!该属性规定此 SVG 文件是否是“独立的”,或含有对外部文件的引用。

standalone=“no” 意味着 SVG 文档会引用一个外部文件 - 在这里,是 DTD 文件。

第二和第三行引用了这个外部的 SVG DTD。该 DTD 位于 “http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd”。该 DTD 位于 W3C,含有所有允许的 SVG 元素。

SVG 代码以 元素开始,包括开启标签 和关闭标签 。这是根元素。width 和 height 属性可设置此 SVG 文档的宽度和高度。version 属性可定义所使用的 SVG 版本,xmlns 属性可定义 SVG 命名空间。

SVG 的 用来创建一个圆。cx 和 cy 属性定义圆中心的 x 和 y 坐标。如果忽略这两个属性,那么圆点会被设置为 (0, 0)。r 属性定义圆的半径。

stroke 和 stroke-width 属性控制如何显示形状的轮廓。我们把圆的轮廓设置为 2px 宽,黑边框。

fill 属性设置形状内的颜色。我们把填充颜色设置为红色。

关闭标签的作用是关闭 SVG 元素和文档本身。

svg文件嵌入html文档
  • 使用标签

<embed src="rect.svg" width="300" height="100" 
type="image/svg+xml"
pluginspage="http://www.adobe.com/svg/viewer/install/" />
  • 使用标签
    它是 HTML 4 的标准标签,被所有较新的浏览器支持。它的缺点是不允许使用脚本。
    
    <object data="rect.svg" width="300" height="100" 
    type="image/svg+xml"
    codebase="http://www.adobe.com/svg/viewer/install/" />
    
    • 使用