| 
                                             CSS 文件的大小和所引起的 HTTP 的请求数 
是 CSS 性能的最关键因素 
回流(reflow)和渲染时间 
(非常!)没那么重要 
副本(duplication)比陈旧的规则(stale rules)更糟糕 
因为我们有工具处理后者 
定义缺省值 
不要在每处都重复编码 
不好的: 
#weatherModule h3{color:red;} 
#tabs h3{color:blue;} 
推荐: 
h1, .h1{...} 
h2, .h2{...} 
h3, .h3{...} 
h4, .h4{...} 
h5, .h5{...} 
h6, .h6{...} 
用单独的 class 来定义结构 
不要在每处都重复编码 
使用 class 
而不是元素选择器 
不好的: 
div.error{...} 
推荐: 
.error{绝大多数代码写在这里} 
div.error{单独定义} 
p.error{单独定义} 
em.error{单独定义} 
避免使用元素选择器 
初始化除外 
不好的: 
div{...} 
ul{...} 
p{...} 
推荐: 
.error{...} 
.section{...} 
.products{...} 
给规则同样的权重 
使用级联去重写先前的规则 
不好的: 
.myModule .inner b{...} 
.myModule2 b{...} 
推荐: 
.myModule b{...} 
.myModule2 b{...} 
保守的使用 hack 
不好的: 
.mod .hd{...} 
.ie .mod .hd{...} 
.weatherMod .hd{...} 
推荐: 
.mod .hd{color:red;_zoom:1;} 
.weatherMod .hd{...} 
注:此点来自 The Cascade, Grids, Headings, and Selectors from an OOCSS Perspective, Ajax Experience 2009 第96P,为作者在 Ajax Experience 2009 上所做的补充。 
避免指定位置 
应用 class 在你想要改变的对象上 
不好的: 
.sidebar ul{...} 
.header ul{...} 
推荐: 
.mainNav{...} 
.subNav{...} 
避免太过特别的 class 
它们是都有语义的,而且有限制 
不好的: 
.ducatiMonster620{...} 
.nicolesDucatiMonster620{...} 
推荐: 
.vehicle{...} 
.motorcycle{...} 
避免单独的定义 
id 在每个页面只能使用一次 
不好的: 
#myUniqueIdentifier{...} 
#myUniqueIdentifier2{...} 
混合使用 
避免重复编码 
封装 
不要直接访问对象的子节点 
不好的: 
.inner{...} 
.tr{...} 
.bl{...} 
推荐: 
.weatherMod .inner{...} 
.weatherMod .tr{...} 
.weatherMod .bl{...} 
                                         |