div class vs id

时间:2008-09-17 15:20:04

标签: css class xhtml

当使用div时,最好使用class vs id吗?

最好使用类,在html中使用字体变体或元素吗?然后使用id作为结构/容器?

这是我一直有点不确定的事情,任何帮助都会很棒。

22 个答案:

答案 0 :(得分:82)

使用id标识页面上只有一个实例的元素。例如,如果您有一个放置在特定位置的导航栏,请使用id="navigation"

使用class对所有行为都以某种方式行事的元素进行分组。例如,如果您希望公司名称在正文中以粗体显示,则可以使用<span class='company'>

答案 1 :(得分:51)

最重要的是要理解ID必须是唯一的:页面中只应存在一个具有给定ID的元素。因此,如果您想要引用特定的页面元素,那通常是最好的选择。

如果您有多个相似的元素,则应使用elements类来标识它们。

一个非常有用的,令人惊讶的鲜为人知的事实是,您可以通过在类名之间放置空格来实际将多个类应用于单个元素。因此,如果您发布了当前登录用户编写的问题,则可以使用&lt; div class =“question currentAuthor”&gt; 来识别它。

答案 2 :(得分:33)

想想大学。

<student id="JonathanSampson" class="Biology" />
<student id="MarySmith" class="Biology" />

学生 ID 卡片截然不同。校园内没有两名学生拥有相同的学生 ID 卡。但是,许多学生可以并且将至少分享一个 Class

将多名学生置于一个 Class 标题,生物学101之下是可以的。但是,将多名学生置于一个 ID 的学生之下是绝对不可接受的。

在学校内部通信系统上提供规则时,您可以将规则提供给

  

“生物课上明天会穿红衬衫吗?”

.BiologyClass {
  shirt-color:red;
}

或者您可以通过调用其唯一的 ID 来为特定学生提供规则:

  

“Jonathan Sampson明天会穿绿色衬衫吗?”

#JonathanSampson {
  shirt-color:green;
}

答案 3 :(得分:24)

ID必须是唯一的,但在CSS中,它们在确定要遵循的两条冲突指令中的哪一条时也会优先考虑。

<div id="section" class="section">Text</div>
#section {font-color:#fff}
.section {font-color:#000}

文字是白色的。

答案 4 :(得分:6)

当你想将类似的样式应用于许多不同的div或元素时,

类非常棒。当您想要使用javascript来解决格式化或更新的特定元素时,ID很好。

答案 5 :(得分:6)

使用ID的另一个好处是能够在锚标记中定位它:

<h2 id="CurrentSale">Product I'm selling</h2>

允许您在其他地方直接链接到页面上的该位置:

<a href="#CurrentSale">the Current Sale</a>

通常用于为博客上的每个标题添加一个带有日期戳的ID(比如id =“date20080408”),这样您就可以专门定位博客页面的那一部分。

同样重要的是要记住,对于ID有更多受限制的命名规则,主要是它们不能以数字开头。请参阅类似的问题:What is a valid value for id attributes in html

答案 6 :(得分:3)

HTML标准本身回答了您的问题:

没有两个对象可能具有相同的ID,但任意数量的对象可能具有相同的类。

因此,如果您只想将某些CSS样式属性应用于单个DIV,那么这将是一个ID。如果您希望某些样式属性应用于多个DIV,那么它必须是一个类。

请注意,您可以将两者混合使用。您可以使两个DIV属于同一个类,但为它们提供不同的ID。然后,您可以将两者共有的样式应用于类,以及将特定于其中的任何一个应用于其ID。浏览器将首先应用类样式,然后应用ID样式,因此ID样式可以覆盖之前设置的类。

答案 7 :(得分:3)

要记住的其他一些事项:

  • 使用ASP.Net时,您无法完全控制元素的ID,因此您几乎必须使用类(请注意,这不像以前那样真实。)
  • 当你能提供帮助时,最好不要使用 。而是指定元素类型,它是父类型。例如,div中包含navarea类的无序列表可以这样单挑:

    div.NavArea ul { /* styles go here */ }
    

现在,您可以使用一个类应用程序为整个navarea的大部分样式设置逻辑分区

答案 8 :(得分:2)

ID应该是唯一的。应该共享CLASS。因此,如果您有一些将应用于多个DIV的CSS格式,请使用类。如果只是一个(作为要求,而不是偶然事件),请使用ID。

答案 9 :(得分:1)

何处使用ID与班级

两者之间的简单区别在于,虽然可以在页面上重复使用类,但每页只能使用一次ID。因此,在标记页面上主要内容的div元素上使用ID是合适的,因为只有一个主要内容部分。相反,您必须使用类在表上设置交替的行颜色,因为根据定义它们将被多次使用。

ID是一个非常强大的工具。具有ID的元素可以是以某种方式操纵元素或其内容的JavaScript片段的目标。 ID属性可以用作内部链接的目标,用名称属性替换锚标记。最后,如果您使ID明确且合乎逻辑,它们可以作为文档中的一种“自我文档”。例如,如果块的开头标记具有ID,例如“main”,“header”,“footer”,则不一定需要在块之前添加注释,指出代码块将包含主内容。 “等等。

答案 10 :(得分:1)

我认为我们都知道什么是类,但如果你认为ID是标识符而不是样式工具,那么你就不会错。在尝试定位某些内容时需要一个标识符,如果您有多个具有相同ID的项目,则无法再识别它...

在编写用于ID和CLASS的css时,尽可能使用最小的css类是有益的,并且在你必须之前尽量不要过多地使用ID,否则你将一直想要写更强的声明,很快就会有一个完整的css文件!重要。

答案 11 :(得分:0)

对我来说:如果我在CSS中做某事或者为元素添加名称并且可以在页面中的所有元素中使用,那么使用类。

因此ID用于唯一元素

例如:

<div id="post-289" class="box clear black bold radius">

CSS:

.clear {clear:both;}
.black {color:black;}
.bold {font-weight:bold;}
.radius {border-radius:2px;}

答案 12 :(得分:0)

除了id和类很适合在单个项目上设置样式与类似的项目集合之外,还有另外需要记住的警告。它在某种程度上也取决于语言。在ASP.Net中,你可以输入Div并拥有id。但是,如果您使用Panel而不是Div,则会丢失ID。

答案 13 :(得分:0)

同样,您可以通过JavaScript和DOM命令(例如GetElementById)操纵您提供特定ID的元素。

一般来说,我发现给所有主结构div一个id是有用的 - 即使最初,我没有任何特定的CSS规则可以应用,我将来有这种能力。另一方面,我为那些可以多次使用的元素使用类 - 例如,包含图像和标题的div - 我可能有几个类,每个类的样式值略有不同。

请记住,在所有条件相同的情况下,id规范中的样式规则优先于类规范中的样式规则。

答案 14 :(得分:0)

如果您正在使用.Net Web控件,那么有时候使用类会更容易.Net会在运行时更改web控件div id(他们使用runat =“server”)。

使用类可以轻松地为字体,间距,边框等单独的类构建样式。我通常使用多个文件来存储不同类型的格式信息,例如: basic_styles.css用于简单的网站范围格式化,ie6_styles.css用于浏览器特定样式(在本例中为IE6)等,而template_1.css用于布局信息。

您选择哪种方式尝试保持一致以帮助维护。

答案 15 :(得分:0)

我的选择是在css样式以相同方式应用于多个div时使用类标识。如果结构或容器实际上只应用一次,或者可以从默认值继承其样式,我认为没有理由使用类标识。

所以这取决于你的div是否是其中之一;例如,一个div表示stackoverflow网站上的答案问题。在这里,您需要定义“Answer”类的样式,并将其应用于每个“Answer”div。

答案 16 :(得分:0)

类适用于您可以在页面上多次使用的样式,ID是定义元素特殊情况的唯一标识符。标准规定ID只能在页面中使用一次。因此,当您想要在页面中的多个元素上使用样式时,应该使用类,当您只想使用一次时,应该使用ID。

另一件事是,对于类,你可以使用多个值(通过在每个类之间放置空格,la“class ='blagh blah22 blah')带有ID的字符,你只能使用每个元素的ID。

为ID定义的样式会覆盖为类定义的样式,因此,如果两者发生冲突,#uniquething的样式设置将覆盖.whatever的样式。

因此,您应该使用ID,例如标题,“侧边栏”或其他内容等等 - 每页只显示一次的内容。

答案 17 :(得分:0)

我想说,只要你认为在页面上重复一个样式元素,最好使用一个类。 HeaderImage,FooterBar等项目很适合作为ID,因为您只使用它一次,它将有助于防止您意外地复制它,因为一些编辑器会在您有重复的ID时提醒您。

如果您要动态生成div元素,并且想要定位特定项目进行格式化,我也会发现它很有用;你可以在生成时给它提供正确的ID,而不是搜索元素然后更新它的类。

答案 18 :(得分:0)

id 属性用于在文档中唯一标识它们的元素,而属性可以具有同一文档中许多元素共享的相同值。

所以,实际上,如果每个文档只有一个元素将使用该样式(例如#title),那么请使用 id 。如果多个元素可以使用该样式,请使用 class

答案 19 :(得分:0)

在页面上使用id表示您想要执行特定操作的内容,以及可以在页面的其他部分重复使用的类。

答案 20 :(得分:0)

id应该是页面上的元素唯一标识符,这有助于操作它。任何应该在多个元素中使用的外部CSS定义样式都应该放在类属性

<div class="code-formatting-style-name" id="myfirstDivForCode">
</div>

答案 21 :(得分:0)

如果它是您想要在页面上的多个位置使用的样式,请使用类。如果你想为一个对象进行大量的自定义,比如页面一侧的导航栏,那么id就是最好的,因为你不可能在其他地方需要那些样式组合。