当前位置: 首页 > 图文教程 > 网页制作 > CSS样式表 > 驯服CSS选择器

CSS样式表
CSS教程:dl dt dd模拟表格实例
网页制作实例:将PSD网站模板转换为XHTML+CSS网页
CSS布局实例代码:两列布局实例
border:none;与border:0;的区别
CSS浮动定位:引起文本重影的怪异问题
同一张PNG8图片为何部份图标在IE6中消失
IE6中背景属性加a与a:hover问题
网页制作教程:在IE7中的网页文本重影问题
推动浏览器更新的原因和方法
CSS实例教程:制作网页列表菜单
CSS实例教程:制作网站横向导航
CSS实例教程:制作网页2级导航
CSS研究教程:类名的长命名和短命名
CSS教程:彻底弄清楚CSS的行高属性
用CSS的float和clear属性进行三栏网页布局
没有JS只用CSS制作的网页下拉菜单
初学CSS的基础教程:在网页中使用CSS
网页制作教程:制作拖拽翻页
制作网页时编写CSS代码的25个小技巧
CSS3中很有用的特性:CSS阴影

CSS样式表 中的 驯服CSS选择器


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2010-01-10   浏览: 83 ::
收藏到网摘: n/a

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{...}