对CSS的Class及Id的规范化命名

css|规范|规范化

  Web开发人员可以通过创建CSS的Class及id名称并使用这些名称来对div以及其他的格式页面元素进行标识。对开发人员来说,在命名重新定义XHTML标记(tags)的CSS selectors时,必须保证其与预定义的标记准确匹配,但就类以及id选择器名称而言,则仁者见仁,智者见智。然而随心所欲的为这些类以及id命名则并不是个好的习惯。

  在阅读了由Andy Clarke(of Stuff and Nonsense and All That Malarkey)以及Eric Meyer所撰写的关于CSS的Class以及id命名规范的系列文章之后,我开始思考在自己的Web站点设计过程中对类以及ids的命名方式。

直观命名

  当在设计Web页面以及需要对一个div进行标识的时候,最自然的想法就是使用可以描述元素所在页面位置的词汇来对其命名。这种方法使得类以及id的名称如下面所示:

top-panel

horizontal-nav

left-side

center-column

right-col

  这些是CSS以及XHTML类和id的有效命名方式。这些词汇简单并且能够使人顾名思义,因此满足了标识页面元素以及相应的CSS样式的需要。

  但问题是这样的名称同页面内容的特定表达方式相关联。这些命名参考了某种特定页面布局中的页面元素位置,因此在这样的布局之外使用就会显得不合适甚至造成理解混乱。同时,这些命名没有涉及文档内容的结构。因此,下面给出了对CSS类以及ID命名更好的方法。

结构化命名

  结构化的标记意味着表达方式/位置信息同内容的完全分离——这其中包括出现在标记(markup)中的类和id名称。

  有标记的相关信息都是用来描述文档的结构而不是外观。这样的特点使得我们可以通过简单的改变CSS的方式来对不同外观格式下的内容(content)以及标记(markup)进行重用。当你理解这种方式时,很容易就可以发现采用页面位置来为类以及id命名的方式在处理如音频(audio)等外观格式上显得非常不合适。因此,应当根据在文档中的使用目的而非出现位置来对类以及id进行结构化命名。

  可以按照如下所示的结构化方式来对类以及id名称命名:

branding

main-nav

subnav

main-content

sidebar

  这些名字同直观命名方式一样非常易懂,但他们描述了页面元素的作用而非位置。这使得代码更加符合使用纯粹的结构化标记(structural markup)的初衷,即开发人员可以在不改变标记的情况下对各种各样媒体下的显示格式进行处理。

  即使你不打算在其他的媒体上对Web页面进行格式修改,使用结构化命名方式还可以帮助你在日后的站点升级或重新设计中更为轻松。例如,结构化命名避免了当一个div同id right-column移动到页面左边后所带来的混乱。对div sidebar的采用这样的命名方式就显得更加适当,因为无论它出现在页面的哪一边,这个名字仍然对开发人员来说直观易懂。

惯例

  Andy Clarke分析了40份由推崇标准化Web设计理念的开发人员所设计的Web站点的源代码。尽管类以及id名称很不统一,但是还是发现了一些频繁出现的常用名称。这里给出了最常用类/id名称的示例列表:

header

content

nav

sidebar

footer

  如果要查看完整的列表,可以看看最常见命名惯例表

  这些常见的类以及id名称是否标志着一种标准的诞生或是普遍接受惯例的形成呢?尽管这是我所希望的,但我并不这么认为。我的确希望能够看见一整套对于我们每天都可以看到的常用页面元素的命名标准。同时,使用标准化的命名方式可以使得寻找页面元素以及对Web站点升级带来方便,尤其当需要在由不同开发人员在不同时间所开发站点中换来换去工作的时候。

review:

大的布局div可以以外观的方式命名(如header,footer),其他的我觉得还是应该以描述所含内容的标准来命名(如menu,news)

在布局上不要出现left, right等有关位置的词语为好……支持Shark,根据其内容来命名是最科学的。

一开始我觉得后半句不合适,我觉得标记应该和内容和显示完全分开
回过头来又想想,sharkui的话也有一定道理
比如同样结构的列表(分别在不同页面)
<ul>
<li>今天你吃了吗</li>
<li>今天你吃了吗</li>
<li>今天你吃了吗</li>
<li>今天你吃了吗</li>
<li>今天你吃了吗</li>
</ul>
一个是新闻news,一个是技术文档tech
我们该如何给这个列表命名呢?
是分别为id=“news”和id="tech"
还是class="articleList"呢?

如果是前者,假如这两个列表完全是一样的,我要定义两种完全一样的CSS是不是很浪费?两种还好,如果还有很多这样的列表呢?
如果是后者,那这两个的样式就只能定义成一样的了,如果我需要两者有些区别,如颜色,那我地重新写一段CSS并且修改布局中的代码

解决方案很简单啊,id和class都用上:
<ul id="news" class="articleList"></ul>
<ul id="tech" class="articleList"></ul>
CSS有很多类似OOP中的概念,class在这里可以理解为“继承”,id则可理解为“重载”。CSS的C不就是这个意思么?^_^

时间: 2024-09-13 17:05:10

对CSS的Class及Id的规范化命名的相关文章

Web开发中对CSS类及id的规范化命名

css|web|规范|规范化 Web开发人员可以通过创建CSS类及id名称并使用这些名称来对divs以及其他的格式页面元素进行标识.对开发人员来说,在命名重新定义XHTML标记(tags)的CSS selectors时,必须保证其与预定义的标记准确匹配,但就类以及id选择器名称而言,则仁者见仁,智者见智.然而随心所欲的为这些类以及id命名则并不是个好的习惯. 在阅读了由Andy Clarke(of Stuff and Nonsense and All That Malarkey)以及Eric M

CSS类及id的规范化命名

css|规范|规范化 Web开发人员可以通过创建CSS类及id名称并使用这些名称来对divs以及其他的格式页面元素进行标识.对开发人员来说,在命名重新定义XHTML标记(tags)的CSS selectors时,必须保证其与预定义的标记准确匹配,但就类以及id选择器名称而言,则仁者见仁,智者见智.然而随心所欲的为这些类以及id命名则并不是个好的习惯.     在阅读了由Andy Clarke(of Stuff and Nonsense and All That Malarkey)以及Eric M

对CSS类及id的规范化命名

css|规范|规范化 Web开发人员可以通过创建CSS类及id名称并使用这些名称来对divs以及其他的格式页面元素进行标识.对开发人员来说,在命名重新定义XHTML标记(tags)的CSS selectors时,必须保证其与预定义的标记准确匹配,但就类以及id选择器名称而言,则仁者见仁,智者见智.然而随心所欲的为这些类以及id命名则并不是个好的习惯.     在阅读了由Andy Clarke(of Stuff and Nonsense and All That Malarkey)以及Eric M

在用CSS创建类及id时应注意的一些规范化命名

css|创建|规范|规范化 Web开发人员可以通过创建CSS类及id名称并使用这些名称来对divs以及其他的格式页面元素进行标识.对开发人员来说,在命名重新定义XHTML标记(tags)的CSS selectors时,必须保证其与预定义的标记准确匹配,但就类以及id选择器名称而言,则仁者见仁,智者见智.然而随心所欲的为这些类以及id命名则并不是个好的习惯.  在阅读了由Andy Clarke(of Stuff and Nonsense and All That Malarkey)以及Eric M

DIV CSS网页布局规范的对CSS的类及id命名

css|规范|网页 Web开发者(也就是您)可以通过创建CSS类及id名称并使用这些名称来对div以及其他的页面元素.标签进行标识.对开发人员来说,在命名重新定义XHTML标记(tags)的CSS selectors时,必须保证其与预定义的标记准确匹配,但就类以及id选择器名称而言,则仁者见仁,智者见智.然而随心所欲的为这些类以及id命名则并不是个好的习惯.  在阅读了由Andy Clarke(of Stuff and Nonsense and All That Malarkey)以及Eric

CSS的Class以及ID选择器

9.CSS的Class以及ID选择器 id和class的不同指出在于一个页面同一个ID只能只有一次,而class可以无限制使用. 同样,你可以在html选择器后面使用一个选择器来指定特殊HTML元素,比如p.jam{值}将作用到带有'jam'class属性的段落. 10.这个都差点忘了.页面布局       clear    float    disply等这几个,关于网站用div+css主要把这个用好. 总结:基本上都差不多,css的概念都有了一个了解,必定我们是做web开发,但是css,ht

【DIV+CSS入门教程】CSS选择器规范化命名

规范的命名也是Web标准中的重要一项,标准的命名可以更好的看懂代码,我想大家应该都有这种经历,某日翻出自己过去写的代码居然看不懂了,呵呵,为了避免这种情况我们就要规范化命名,再说了,现在一个项目不是一个人就可以完成的,是需要大家互相合作的,如果没有规范化命名,别人就无法看懂你的代码,大大降低了工作效率,所以必须规范化命名,这样还显着咱专业! 好了不多说了,关于CSS命名法,和其他的程序命名差不多,也是有三种:骆驼命名法,帕斯卡命名法,匈牙利命名法. [骆驼命名法] 说到骆驼大家肯定会想到它那明显

使用jQuery时Form表单元素ID和name命名大忌

 将自己的表单元素ID和name命名为了nodeName,在chrome浏览器下报错,结果发现是表单元素命名的原因 在做自己的毕业设计的时候将自己的表单元素ID和name命名为了nodeName:  代码如下: <form>    <input type="text" name="nodeName" id="nodeName">    ...........    </form>    在chrome浏览器下可

使用jQuery时Form表单元素ID和name命名大忌_jquery

在做自己的毕业设计的时候将自己的表单元素ID和name命名为了nodeName: 复制代码 代码如下: <form> <input type="text" name="nodeName" id="nodeName"> ........... </form> 在chrome浏览器下可以看到这么个错误: Uncaught TypeError: Object #<HTMLInputElement> has