当前位置: 首页 > 图文教程 > 网页制作 > CSS样式表 > 对css性能优化的一点看法

CSS样式表
推荐一篇利用th,colgroup,col定义表格样式
都是IE惹的祸多浏览器兼容问题
dl,dt,dd制作的CSS垂直菜单
推荐css打造经典鼠标触发显示选项
div+css中Class与ID的区别
CSS Div 最小高度在IE 6 和IE 7中的兼容性问题
让iframe自适应高度(支持xhtml)IE firefox兼容
实用的利用 CSS + <em>标签 来完成一个三角形的制作
CSS控制文本自动换行的问题
把 CDATA 中的内容(有可能是不规范的Html代码)以Html方式展现出来。
仿客齐集首页导航条DIV+CSS+JS [代码实例]
关于margin-left的示例代码
CSS优化2-(常用CSS缩写语法总结)
font和line-height之CSS代码书写顺序不同,导致显示效果不一样
推荐三种简洁的Tab导航(网页选项卡)简析
用纯CSS+DIV写的漂亮Flash幻灯片及SQL标签教程!
解决IE5/IE5.5/IE6/FF的兼容性问题——CSS
CSS2实现的隔行换色
CSS中几种常见的注释
dhtml shtml xhtml的区别解析

CSS样式表 中的 对css性能优化的一点看法


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-28   浏览: 127 ::
收藏到网摘: n/a

现在据我知道比较好的用来测试网页性能的工具有两个,分别为:老牌的雅虎yslow,新秀google page Speed。

怎么会突然想起谈css与性能优化呢?其实这个问题我已经想了很久了,想写,但是也不知道从何写起,今天就简单的说一下,近段使用通过使用page Speed,对css性能优化的一点看法吧!

在市场上的很多书,讲的css的写法都大同小异,并没有说,如何写好,如何写不好!只是说到了id和class是作为css和js的挂钩,我们可以通过id与class来控制页面的展现效果。并且还谈到了css层级写法的强大威力,所以大多数为了减少在页面中定义id与class,都大量的使用了css层级的写法,比如:

<div class=”list”>

<ul>

<li><span>01</span>测试列表</li>

<li><span>01</span>测试列表</li>

</ul>

</div>

这样的一个结构,如果我们想修改li中的span的话,为了尽量的减少class的定义,我们可以这样写:

.list ul li span{样式}

.list li span{样式}

list span{样式}

这三种写法有什么好处与不好的地方呢?

如果使用第一种方法,我个人觉得太长了,没有必要,那如果使用第三种写法呢?怕的是如果在这个div与ul平级也有span的时候,这时候这个span也会被继承到样式,我个人平时都比较喜欢第一种写法,相对来说,对span比较安全,而且可以节约几个字符吧!嘿嘿!但是我的这种写法通过page Speed的检测结果是属于低效的!因为需要检测的层级太多!就像我们上楼梯和下楼梯一样!故而像这种地方,我们完全可以在html中为span增加class,更有可能这个class我们以后还用得着!

<div>

<ul>

<li><span class=”num”>01</span>测试列表</li>

<li><span class=”num”>01</span>测试列表</li>

</ul>

</div>

结构被我改成了这样,如果需要对这个span进行修饰的话,自然你也知道应该如何写啦:

.num{样式}

这样的话,浏览可以直接找到num这个样式,直接赋予他样式,这样是不是更简洁,更高效呢?如果你不信,可以试试吧!

当然,class的定义与层级的使用的话,还有很多,很多,我在这里就仅仅是举了一个简单的例子。如果你与我有不同看法的,请指正。

节约样式

我们在写一个网站的时候,特别是在站不大不小的时候,都会把样式写在一个样式表中,但是这样的话,第一次加载的样式的时候,会相对比较慢,我们是否有一些其他的方法来解决这样的问题呢?通过我这段时间的反思,也不知道是否可行,我觉得是有的,不过我的想法可能过于理想化,那么就是前期必须知道页面的整体风格!不过一般在现实中,还有设计师的一些特殊想法,相对实现起来可能一些麻烦,下面我们来看看:

1、找出真正的公共样式

2、每个页面中在增加一个属于自己页面的独特的样式

3、通过谷歌的预加载方法(JS实现),通过空闲时间将其他页面的样式下载到本地缓存中

其他页面也是如此,这样感觉是工作量可能会大一些,但是我觉得通过这样的方法,的确可以对性能是有所提升的,这仅仅是说到CSS,其实JS也可以使用同样的方法来解决,还有图片,等等!

今天就说到这里,在看看,在改改!