结构中id与class的使用原则与技巧
Author:DivCSS Data:2007-02-14
在前几日的文章中我提到过XHTML的重要性,在那篇文章中我讲了为什么说XHTML结构重要,重视XHTML结构的好处。但是那篇文章从开发的效率入手,并没有深入细节,而今天的这篇文章是讲XHTML中的细节部分的,可以说是上一篇的续述。这篇续述的主题就是ID与CLASS怎么用,在标题中有提及使用原则与技巧,这里的使用原则与技巧是我的经验总结,并非摘自哪本典籍,所以并不是什么权威论述,请各位网友在看到这篇文章时需要有主见的阅读,不要被我的妖言所迷惑。
ID与CLASS的使用原则
据说W3C对于ID与CLASS的设定是ID具有唯一性,CLASS具有普遍性。所以我们这里的使用原则也是依据这一特性建立的。ID是不能重复的,所以在XHTML的结构中,大结构一定是用ID。比如标志、导航、主体内容、版权。这些呢接我自己制定的规范命名为#logo , #nav , #content , #copyright 这些是雷打不动的命名。有人说布局排版用ID,配色背景用CLASS,其实这是不正确的,ID与布局排版没有直接关系,CLASS与配色也不是对等的。有人呢为了麻烦全都用ID或是全都用CLASS,全都用CLASS呢还有可理解,全都用ID就不正常了,这有悖ID唯一性。如果每个ID都不一样,那非累死不可。我通过实践总结的使用原则是:ID需要具有唯一性,并且尽量在外围使用。而CLASS具有可重复性,并且尽量在结构内部使用。这样做的好处是有利于网站代码的后期维护与修改,这样的做法就会让所有的CLASS都成为ID的子级或是孙级。你可以有两个儿子但你能有两个爸爸吗,就是这个道理。在我们写CSS的时候可以写成这样 #father .child {…} 尽量不要让Class包含ID,.father #child {…}如果写成这样显得有点可笑 。当然这也不是铁定的,特殊情况需要特殊对待嘛。但是通常情况下这种形式的必要性不大。
以上就是ID与CLASS使用原则,归总起来一句话:ID是唯一的并是父级的,CLASS是可以重复的并是子级的。
ID与CLASS的使用技巧
Example Source Code [www.52css.com] 1、子级的命名的包含父命名中的部分为开头。这样方便在编写CSS时明确层次关系。
2、CLASS中的子级最好不用ID。当然特殊情况特殊对待。
3、CLASS的命名最好命名用大小写合用。例 .newMovie 这样的写法与第一条结合起来使用明确关系最合适。要需要注意的是IE以外的浏览器对于大小写是很敏感的。还有就是一定要以字母开头。
2、CLASS中的子级最好不用ID。当然特殊情况特殊对待。
3、CLASS的命名最好命名用大小写合用。例 .newMovie 这样的写法与第一条结合起来使用明确关系最合适。要需要注意的是IE以外的浏览器对于大小写是很敏感的。还有就是一定要以字母开头。
其实上面讲的都是一些大家都明白的内容,只是我捡了个漏先写下来算是一个总结。希望大家对于ID与CLASS的使用提出自己的新观点新思路。一起总结出最适合也最有效率的规范来。
评论: 17 | 查看次数: 14737
有些文章说类可以重复用,其实不是重复用,而是类是用来生成实例的,它可以生成无数个实例而不是重复实例;为什么id在页面中不可以重复,因为id是每一个具体实例的唯一标识,就像ip地址或身份证号一样;为什么id(应该说实例)属性的优先级比类的高了,因为id定义的是某个具体实例上的属性,例如秃子,戴眼镜等属性,这是个性,优先级当然高于共性。这样也容易理解p.jam{...}的写法了,“.”后面的大,是类,“.”前面的小,是实例(在这里是一个具体的元素),大家想想网站的域名吧,域名里的“.”就是“@”,也就是“at”,“.”后面的比前面的大,后面的必须大,才能让前面的“在”它上面,否则成不住前面的东西。
因此说类比实例的级别高,或大!没有类就没有实例,因为没有类的话,实例将无从生成。
在一定程度上类也是相对的概念,例如“人”是类,但同时“男人”也是一个类,但这个类是“人”类的子集,这个子集类生成的实例都带把,因为带把是这个类的属性,而那个单身汉邻居是这个“男人”类生成的一个具体实例,因此他有这个类的共有属性,即带把,然而作为一个具体的男人(实例),他可以有自己的个性,是什么呢......,让我想想...,对了,他yangwei。
在一定程度上类也是相对的概念,例如“人”是类,但同时“男人”也是一个类,但这个类是“人”类的子集,这个子集类生成的实例都带把,因为带把是这个类的属性,而那个单身汉邻居是这个“男人”类生成的一个具体实例,因此他有这个类的共有属性,即带把,然而作为一个具体的男人(实例),他可以有自己的个性,是什么呢......,让我想想...,对了,他yangwei。
“ID是唯一的并是父级的,CLASS是可以重复的并是子级的”,作者正好说反了!
专业的说法:class是类,id是某个类生成的具体实例的唯一标识。因此类是父级,而实例是儿子。
通俗的说法:“人”是类(人们共有的属性是类的属性,例如都有五官,都有双臂双腿等,由这个类派生出来的实例将都具备这些共性),而隔壁住的那个单身汉则是一个具体的实例(首先这个邻居是人类,所以具有人类的共性,其次更重要的是他是一个具体的人,是一个实例,从而可以有自己的个性,例如此人是个秃子,戴眼镜,很胖,脑袋顶上还有一个大痦子),这个人的身份证号就是该实例的id(因为身份证号在理论上是一个人唯一的标识)。
专业的说法:class是类,id是某个类生成的具体实例的唯一标识。因此类是父级,而实例是儿子。
通俗的说法:“人”是类(人们共有的属性是类的属性,例如都有五官,都有双臂双腿等,由这个类派生出来的实例将都具备这些共性),而隔壁住的那个单身汉则是一个具体的实例(首先这个邻居是人类,所以具有人类的共性,其次更重要的是他是一个具体的人,是一个实例,从而可以有自己的个性,例如此人是个秃子,戴眼镜,很胖,脑袋顶上还有一个大痦子),这个人的身份证号就是该实例的id(因为身份证号在理论上是一个人唯一的标识)。
ID:father CLASS:children
子级的命名的包含父命名中的部分为开头。这样方便在编写CSS时明确层次关系。
这句话好像绕口令一样,有点不明白!
这句话好像绕口令一样,有点不明白!
发表评论
你没有权限发表留言!

Article Provenance:
Article Tags: 

