最近我开始给HTML文档的body标签应用ID 来允许更大范围的CSS控制 (#9)。最近我想到,通过将类应用于body标签,我可以做同样的事情。我想知道每种选择的优缺点。如果我的多个页面具有相同的body标签ID,使用类是否更好?你认为怎么样?为什么?
更新:类/ID基本上是我打算用来识别样式表应用于哪个页面或页面类型的方式。例如,这是主页、联系页面、许多搜索结果页面之一、存档页面等等。
最近我开始给HTML文档的body标签应用ID 来允许更大范围的CSS控制 (#9)。最近我想到,通过将类应用于body标签,我可以做同样的事情。我想知道每种选择的优缺点。如果我的多个页面具有相同的body标签ID,使用类是否更好?你认为怎么样?为什么?
更新:类/ID基本上是我打算用来识别样式表应用于哪个页面或页面类型的方式。例如,这是主页、联系页面、许多搜索结果页面之一、存档页面等等。
使用类是完全可以接受的,可能比使用id更好。应尽可能地限制使用id,因为它们可能会与其他id冲突并破坏像document.getElementById
这样的功能。
与类选择器相比,id选择器更具体,通常更适合您的用例。 -- David Dorward
然而,并不总是希望有很高的“特异性”。考虑在主样式表中使用body#faq #col_b a {color:gray;}
,然后有人开发了一个插件,在faq页面上使用灰色背景,现在他们需要使用!important
或创建另一个id属性来增加特异性。
此外,考虑在单个元素中使用多个类:
<body class="faq two_column big_footer"> ...
你只能(读作:应该)在 body 标签上使用 id。
id = 每个页面仅限使用一次
class = 可以多次使用
1 个 body 标签 = 1 个 id 标签。这在不同页面上可以是相同的。基本上,为此目的使用 class 标签可能有些过度。
如果您计划在多个页面中重复使用样式,则最好使用类。如果样式表是为特定页面设计的,则ID很好。但这仍取决于您的应用程序。
<base>, <head>, <html>, <meta>, <param>, <script>, <style>, 和 <title>。
注意:HTML 4.01对id值的内容有更严格的限制(例如,在HTML 4.01中,id值不能以数字开头)。
body#faq .col_b a
和body.faq .col_b a
之间,后者更容易被其他人覆盖。总的来说,如果你正在创建供他人构建CSS的代码,高特异性(如果它被称为这个)可能不是一个好的选择,低特异性可以达到同样的效果。 - Dagg Nabbit