Author: 李丽媛

Date: 2010/6/2



1 CSS 优化方案

1.1 使用 CSS 优化工具

a) online CSS Optimizer ;

b) CSS Formatter and Optimizer

解决方案 :选取以上一个工具进行进行优化。


1.2 清理 CSS

在我们写样式的时候,页面的 CSS 在经历几个版本的修改之后,可能有些样式已经用不到了,或许将某些样式 更名了而原来的忘了删除,总之页面中可能存在着一 些无用的样式。这些无用的浪费了一些服务器空间和带宽消耗,也会增大我们的维护成本。

a) Dust-Me selector ;

b) Page Speed ;

c) CSS Redundancy Checker ;

d) IntelliJ IDEA ;

e) Expression Web 。

解决方案 :选取以上一个工具进行 CSS 清理。


1.3 在浏览器支持的情况下尽量使用 CSS 选择器

避免为每一个标签都定义 class 。


解决方案 :重构 CSS ,去除不必要的 class 。


1.4 减少 CSS hack 的使用

a) 尽量把浏览器默认值不相同的元素定义出来;

b) 注意 padding , margin , border 在 width 和 height 中的大小计算;

c) 注意 IE 中最小高度和 img 的使用。

解决方案 :删除不必要的 CSS hack ,然后进行细节修改。


1.5 避免使用内联引用和内部引用,尽量使用外部引用

a) 网页处理速度会更快一些,尤其在有很多网页共用一份 CSS 样式表时;

b) 看上去更加专业,整个网站的配色、细节等做到完全统一,具有一致性,避免内联的像素、色彩等偏差;

c) 方便维护。只要修改一个 CSS 文件,不管你有多少个网页文件,都会以你最新修改的版本为标准,不必进行散弹式修改。

解决方案 :把内联引用和内部引用的 CSS 进行抽取、提出放到外部 CSS 文件中,使用外联引用。


1.6 浏览器兼容

支持主流浏览器: Firefox , IE6 , IE7 , IE8 ;逐步支持 Chrome , Opera , Safari 。

解决方案 :在不同浏览器上进行测试,然后逐一修复。


1.7 元素合并

类似

( background-image: url(/oaweb/img/common/333.png); background-repeat: repeat-y; background-position: 0px 0px; )

可合并为( background : url(/oaweb/img/common/333.png) repeat-y 0 0; )。

解决方案 :有此类问题的地方进行合并。


1.8 规范命名

a) id 和 class 命名采用该内容的英文单词或组合命名,并第一个单词小写,第二个单词首个字母大写,如 :newRelease (最新产品 /new+Release) ;

b) 添加注释;

c) 常用命名规范(参见附件 1 )。

解决方案 :发现不符合要求的进行修改;没有注释或注释不详、不清的地方进行添加或补充、修改。


1.9 抽取出一些常用的 CSS

对于标签可使用 class 组合,不需要把 float:right; 类似这样常用的样式写到一组定义的 CSS 中。

解决方案 :定义一些常用的 CSS ,在样式中去除含有这些常用样式的 style ;最后在用到该样式的标签中加上定义好的被删除的常用样式的 class 。


1.10 注意 class 和 id 的异同,不要滥用

id 是用来进行唯一标示,作为网站中的样式,每个页面样式需要具备一致性。因此,除特定原因外,样式尽量使用 class 。

解决方案 :查看不符合用 class 的标签,改为 id ;反之,改为 class 。


1.11 满足 SEO

OA 当然不需要此项,但是在 eCooe 体验中就在所难免了。

解决方案 :凭经验可适当修改,但毕竟不是这行的专家,可买本书来研究研究。


1.12 恰当的使用 CSS Sprite

不要在每一处需要图片的地方都使用 CSS Sprite ,它的难维护性决定了只适用于做背景图的时候采用;对于图片,还是应该去使用 img 标签。

解决方案 :把使用了 CSS Sprite ,但不用做背景的地方改为 img 标签;反之改为使用 CSS Sprite 。


1.13 避免使用 expression 和 behavior

在页面渲染的过程中, expression 和 behavior 需要大量的计算,会大量地耗费客户端资源。所以不到迫不得已,请不要使用 expression 和 behavior 。

解决方案 :删除使用了 expression 和 behavior 的地方,改之使用 JavaScript 进行替代。


附件 1


内容



命名



内容



命名



模块



module.css



主题



themes.css



基本共用



base.css



专栏



columns.css



布局、版面



layout.css



表单



forms.css



文字



font.css



补丁



mend.css



打印



print.css





header



内容



content/container



尾 / 页脚



footer



导航



nav



侧栏



sidebar



栏目



column



页面外围控制整体布局宽度



wrapper



左 / 右 / 中



left/right/center



登录条



loginBar



标志



logo



广告



banner



页面主体



main



热点



hot



新闻



news



下载



download



子导航



subNav



菜单



menu



子菜单



submenu



搜索



search



友情链接



friendLink



版权



copyright



滚动



scroll



标签页



tab



文章列表



list



提示信息



msg



小技巧



tips



栏目标题



title



加入



joinUs



指南



guild



服务



service



注册



register



状态



status



投票



vote



合作伙伴



partner



12 号字体



font12



红色



red



浮动清除



clear



常见问题



faqs



缩略图



screenshot



最新产品



newsRelease



编辑评论



editorReview



关键词



keywords



论坛



forum



主导航



mainNav



主菜单



mainMenu



标签



tag



摘要



summary



商标



branding



法律声明



legal



网站信息



siteInfo



信誉



credits