当前位置: 首页 > 图文教程 > 网页制作 > CSS样式表 > CSS渲染速度改善的十个方法与建议

CSS样式表
CSS网页设计 IE8和IE7共存
CSS2 打印属性让打印HTML文档不出问题
制作网页中设计段落缩进的方法
CSS border 属性使用说明
CSS border-style 属性使用方法
CSS border-color 属性使用方法
CSS border-width 属性使用教程
CSS padding属性定义边内补白
CSS margin 属性定义边外补白
网页布局教程 掌握CSS网页布局属性
css 背景样式属性说明
span margin 设置生效
html 滚动条在IE6和IE7中兼容性问题
IE6 两个div有间隙的问题(IE 3px bug)
CSS 数字和字母将容器撑大问题解决
换个角度看页面重构中的语义化
DIY属于个人开发使用的CSS Reset
CSS 空格引起网页布局间距问题
CSS 网页制作时遇到问题的快速参考技巧
css li 去掉点的样式写法

CSS样式表 中的 CSS渲染速度改善的十个方法与建议


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

一、*{} #zishu *{} 尽量避开
  由于不同浏览器对HTML标签的解释有差异,所以最终的网页效果在不同的浏览器中可能是不一样的,为了消除这方面的风险,设计者通常会在CSS的一个始就把所有标签的默认属性全部去除,以达到所有签标属性值都统一的效果。所以就有了*通配符。*会遍历所有的标签;

*{margin:0; padding:0}
    如果这样写,页面中所有的标签的margin全是0;padding也是0;

#zishu *{margin:0; padding:0}
  如果这样写,在id等于zishu下边的所有标签的margin全是0;padding也是0;
  这样写的问题是:
  遍历会消耗很多的时间,如果你的HTML代码写的不规范或是某一签标没有必合,这个时间可能还会更长;
  很多的标签本来就没有这个属性或属性本身就是统一的,那么更给设置一次,也有时间的开消;
  建议的的解决办法:
  不要去使用生僻的标签,因为这些标签往往在不同浏览器中解释出来的效果不一样;所以你要尽可能的去使用那些常用的标签;
  不要使用*;而是把你常用到的这些标签进行处理;例如:

body,li,p,h1{margin:0; padding:0}
  二、滤镜的一些东西不要去用
  IE的一些滤镜在FIREFOX中不支持,往往写一些效果时你还是使用CSS HACK;而滤镜是一个非常毫资源的东西;特别是一些羽化、阴影和一个前透明的效果;
  例如一个阴影效果:
  <style>
  body {margin:100px;}
  #login_b {width:200px;height:200px;background:#000;-moz-opacity:0.2; filter:alpha(opacity=20);margin:-30px 0 0 600px; position:absolute;}
  #login_t { z-index:10;border:1px solid #006600;width:200px;height:200px;background:#FFF;margin:-35px 0 0 595px; position:absolute;}
  #info{ background:#009900; height:155px;}
  </style>
  <div id="info">
  <div id="login_t">test</div>
  <div id="login_b"></div>
  </div>
  建议的解决办法:
  能不使用就不要使用,一方面兼容问题;很多效果只能在IE中使用;
  就本例而言,如果非要这样在的效果,建议用图片作背景;(只说优化速度,实际应用还是可以小部分用,有人可能会说,用图片还多一个HTTP请求呢,呵呵……)
  一个非常好的例子,就是在今年512大地震时,很多网站一夜之间全部变成了灰色,他们只用了一行CSS代码:

body{filter: gray;}
  但,你会看会看到这些网页非常的慢,打开后你的CPU也会飙升,不夸张的说,如果你的电脑配置差,干死你也不为过。

  三、一个页面上少用绝对定位
  绝对定位(position:absolute )是网页布局中很常用到的,特别是作一些浮动效果时,也会让页面看起来非常的酷。但网页中如果使用过多的绝对定位,会让你的网页变得非常的慢,这一点上边FIREFOX表现要比IE还要差。
  例如:
  <style>li{ position:absolute;}</style>
  <ul>
  <li style="left:10px; top:20px">001</li>
  <li style="left:30px; top:70px">001</li>
  <li style="left:40px; top:50px">001</li>
  ……
  </ul>
  建议的解决办法:
  尽可能少用,这个少用的值是多少,也没有一个非常好的值来说明;还要看绝定定位这个标签里边的内容的多少;在这里我只能说,这样写会有性能问题,少用。
  如果能用变通实现同样的效果,就用变通的办法

  四、background 背景图片的平铺
  有些网页的背景或页面中某块的背景通常要用到图片的平铺,平铺后就会有平铺次数的问题,如果是单次还好,如果是多次,就废了。
  举个简单的例子:

  例一:滚动一下你的页面,看速度怎么样?
  <div style="height:8000px; background:url(http://www.ruanchen.com/ploads/userup/0902/251AH4SJ.gif)"></div>
  例二:同样效果,再试一下这个!
  <div style="height:8000px; background:url(http://ww.ruanchen.com/ploads/userup/0902/251AI25b4.gif)"></div>
  说明:测试上边的两个效果,你的电脑越差越明显,如果你的电脑配置非常好,你就把上的8000px改成9000000px试一下,如果还不行,就改的更大一些,整死机别骂我!
  建议的作法:
  色彩少的图片要作成gif图片;
  平铺的图片尽可能大一些,如果是色彩少的GIF图片,图片大一些,实际大小也不会大多少;上边的两个例子就很好的证明,第一个图片非常少,第二个图大较大一些;但速度是非常不一样的;

  五、让属性尽可能多的去继承
  尽可能让一些属性子可以继承父,而不是覆盖父;
  简单的一个例子:
  <style>
  a:link,a:visited{color:#0000FF}
  a:hover,a:active{color:#FF0000}
  #zishu a:link,#zishu a:visited{ font-weight:bold}
  #zishu a:hover,#zishu a:active{ font-style: italic;}
  </style>
  <div><a href="#">test</a><div>
  <div id="zishu"><a href="http://www.ruanchen.com/quot;>ruanchen.com</a></div>
  <style>
  a:link,a:visited{color:#0000FF}
  a:hover,a:active{color:#FF0000}
  #zishu a:link,#zishu a:visited{ font-weight:bold}
  #zishu a:hover,#zishu a:active{ font-style: italic;}
  </style>
  <div><a href="#">test</a><div>
  <div id="zishu"><a href="http://www.ruanchen.com/quot;>ruanchen.com</a></div>
  六、CSS的路径别太深:
  例如:
  #zishu #info #tool #sidebar h2{ font-size:12px;}
  七、能简写的一些就简写:
  例如:
  #zishu{pading-top:10px; padding-right:50px; padding-left:50px; padding-bottom:4px;}
    改成:
  #zishu{padding:10px 50px 4px 50px}
  这个对渲染速度没有影响;只是少几个字符;

  八、别放空的的class或没有的class在HTML代码中。

  九、float 的应用:
  这个东西我的感觉是如果使用不当,百分百有性能问题,而且还非常的大,但实在不知道怎么样能弄一个例子出来;这里只能建议大家如果不是很明白float是怎么工作的,还是少使用为妙。
  曾经因为这个把IE干死过,我写过一个例子,虽说和这个没有什么太大的关系:IE之死__原来与CSS有关

  十、合理的布局
  为什么这么说呢,合理的布局,可以改变CSS的写法以及渲染过程。