博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
优化网站设计(三十):优化CSS sprites
阅读量:6376 次
发布时间:2019-06-23

本文共 1256 字,大约阅读时间需要 4 分钟。

前言

网站设计的优化是一个很大的话题,有一些通用的原则,也有针对不同开发平台的一些建议。这方面的研究一直没有停止过,我在不同的场合也分享过这样的话题。

作为通用的原则,雅虎的工程师团队曾经给出过35个最佳实践。这个列表请参考 Best Practices for Speeding Up Your Web Site  (),同时,他们还发布了一个相应的测试工具Yslow

我强烈推荐所有的网站开发人员都应该学习这些最佳实践,并结合自己的实际项目情况进行应用。 接下来的一段时间,我将结合ASP.NET这个开发平台,针对这些原则,通过一个系列文章的形式,做些讲解和演绎,以帮助大家更好地理解这些原则,并且更好地使用他们。

准备工作

为了跟随我进行后续的学习,你需要准备如下的开发环境和工具

  1. Google Chrome 或者firefox ,并且安装 这个扩展组件.请注意,这个组件是雅虎提供的,但目前没有针对IE的版本。
    1. 你应该对这些浏览器的开发人员工具有所了解,你可以通过按下F12键调出这个工具。
  2. Visaul Studio 2010 SP1 或更高版本,推荐使用Visual Studio 2012
  3. 你需要对ASP.NET的开发基本流程和核心技术有相当的了解,本系列文章很难对基础知识做普及。

本文要讨论的话题

这一篇我和大家讨论的是第三十条原则: (优化CSS Sprites)。

CSS Sprite(由于很难做中文翻译,所以保留英文)是这样一种技术:

如果我们的多个页面元素需要使用不同的图片(例如作为背景),常规的做法可以为每个元素定制一个CSS,每个CSS中通过属性来设置不同的图片。这样做是可以实现功能的,但会带来的一个问题就是可能需要下载多个图片。为了改善这一点,CSS的设计者考虑了一种新的做法:可以将这些图片合并为一个大图片,然后在CSS中不仅仅设置属性,同时还设置属性来决定要显示的图片区域。这样一来,既实现同样的效果,又减少了图片下载的数量。

这个技术,在“”这篇文章中,我已经提到过了。不过也要注意一下,这种技术可能会带来一些额外的工作或者麻烦:

  1. 手工地合并这些图片,并要去测量相应的像素位置,是比较繁琐的。不过,现在可以通过一些工具来帮助简化工作。
  •  
额外的维护工作。如果其中某个图片修改了,不光要生成新的图片,而且可能涉及到很多CSS的修改。 CSS Sprites一般只能使用到固定大小的盒子(box)里,这样才能够遮挡住不应该看到的部分。

本文提到的几个优化建议,主要如下

  1. 尽可能地使用横向组合图片,这比纵向组合图片通常体积更小一些。
  2. 尽量使图片具有接近的色系,这样最终组合出来的图片也会小一些。
  3. 尽量使用小一些的图片,并且图片之间的间隙尽量也小一些,目的还是为了最终组合出来的图片体积更小。

【备注】就像上一篇文章提到的那样,我对图片并不特别在行,但这也有一个好处,我通常对于自己并不怎么在行的内容,都会毫不犹豫地选择遵从专业人士所提供的最佳实践和原则,例如上面提到的三条建议。

转载地址:http://jztqa.baihongyu.com/

你可能感兴趣的文章
“用户、组或角色'XXX'在当前数据库中已存在”问题
查看>>
Volatile关键字的解读
查看>>
LeetCode【169. Majority Element】
查看>>
微信小程序登录 该死的官方文档TypeError: the JSON object must be str, not 'bytes'
查看>>
0x800a01bd - JavaScript 运行时错误: 对象不支持此操作
查看>>
dos下根据端口找到对应的程序
查看>>
解决Win10 SVN图标不显示问题
查看>>
IntentService与Service的区别
查看>>
js验证邮箱
查看>>
Ubuntu16.4下RStudio1.1.447 中文输入问题的解决方案
查看>>
函数的嵌套+nonlocal和global关键字(重点)
查看>>
网络流24题题解
查看>>
IOS-开发日记24 - UITableViewCell点击两次才跳转解决办法
查看>>
Java StringBuilder 高性能用法总结
查看>>
Spring-IOC
查看>>
poj 1258 -- Agri-Net
查看>>
软件测试 -- 在配置测试中,如何判断发现的缺陷是普通问题还是特定的配置问题?...
查看>>
软件项目测试作业2
查看>>
[UML]UML系列——类图class的依赖关系
查看>>
初涉WebGL
查看>>