CSS编写时的高性能以及高维护性代码优化建议总结

2020-05-03 11:29:13易采站长站整理

来看解释,第一、设计人员为了画面的精美,会制作一些超出需求尺寸的图片;第二、同一张图片可能会在页面不同地方多次使用,比如缩略图、正常图、大图。问题来了,如果图片原始尺寸和实际需求不同,在使用过程中就会存在性能问题,利用样式缩放会带来cpu的额外计算过程,增加了图片在浏览器的渲染时间,网络传输过程也会占更多带宽,增加下载时间。因此,最佳做法是,为需要的部分单独做一套图片,初始页面加载时就能更快展示。

(2)使用css“雪碧图“

是将零散的图片合并成一张大图,在利用css进行背景定位。好处是减少请求数,提高了图片整体的加载速度。

但它也存在一些缺点:

比如,多张图片合并成大图,需要精确计算,仔细的调整位置,单纯手工制作是一件很复杂的事情。(所幸现在有一些工具可以帮我们做)

另外,维护过程复杂,要尽量让已有的图片保持原来的位置不变,如果是背景图的尺寸发生变化导致原有区域无法放置,那就只好放弃,如果非要在原有位置修改,则剩余的图片样式都需要修改,是很繁琐的过程。新加的图片最好放在最后面。

还有就是使用不当会导致性能问题,最大的问题就是内存消耗。如果制作过程不做任何的规划,随意摆放,则可能会使图片变得相当大,从而很占内存。

下面是一些最佳实践:

1、在项目后期应用css sprite技术

因为一般在开发过程中,会比较频繁的修改或者更换图片,如果这个时候使用sprite技术,就会增加很多开发成本。

2、合理组织“雪碧”图

如果要把所有的图片放在一张图上面,也会有不妥,维护方面也不会很方便。组织背景图主要按照模块和背景图的风格来划分。比如,作为展示的缩略图放在一起,评论、点赞、上下箭头等图标放在一起等。

3、控制“雪碧”图的尺寸和大小

因为大尺寸的图片会占用大量的内存,所以要控制在合理尺寸,推荐长宽相乘不超过2500,大小在200kb内

4、合理控制背景图单元间的距离及背景图位置

这个原则是为了防止在背景图比元素大小更小的时候,区域出现别的无关背景图

5、借助相关工具处理sprite

三、减少css的代码量

提高网站整体加载速度的一个重要手段,就是提高代码文件的网络传输速度。除了代码压缩,精简代码也是一种手段。

(1)定义简洁的css规则

合并相关规则,定义简洁的属性值

合并规则是指比如font-family、font-size、font-weight等等,可以合并为font。 简洁属性值,比如颜色值:color,#33AAFF可以简化为#3AF等。