CSS ID 选择器详解

ID 选择器允许以一种独立于文档元素的方式来指定样式。


CSS ID 选择器

在某些方面,ID 选择器类似于类选择器,不过也有一些重要差别。

语法

首先,ID 选择器前面有一个 # 号 - 也称为棋盘号或井号。

请看下面的规则:

  1. *#intro {font-weight:bold;}

与类选择器一样,ID 选择器中可以忽略通配选择器。前面的例子也可以写作:

  1. #intro {font-weight:bold;}

这个选择器的效果将是一样的。

第二个区别是 ID 选择器不引用 class 属性的值,毫无疑问,它要引用 id 属性中的值。

以下是一个实际 ID 选择器的例子:

  1. <html>
  2. <head>
  3. <style type="text/css">
  4. #intro {font-weight:bold;}
  5. </style>
  6. </head>
  7. <body>
  8. <p id="intro">这是一个段落的介绍。</p>
  9. <p>这是一个段落。</p>
  10. <p>这是一个段落。</p>
  11. <p>...</p>
  12. </body>
  13. </html>

类选择器还是 ID 选择器?

在类选择器这一章中我们曾讲解过,可以为任意多个元素指定类。前一章中类名 important 被应用到 p 和 h1 元素,而且它还可以应用到更多元素。

区别 1:只能在文档中使用一次

与类不同,在一个 HTML 文档中,ID 选择器会使用一次,而且仅一次。

区别 2:不能使用 ID 词列表

不同于类选择器,ID 选择器不能结合使用,因为 ID 属性不允许有以空格分隔的词列表。

区别 3:ID 能包含更多含义

类似于类,可以独立于元素来选择 ID。有些情况下,您知道文档中会出现某个特定 ID 值,但是并不知道它会出现在哪个元素上,所以您想声明独立的 ID 选择器。例如,您可能知道在一个给定的文档中会有一个 ID 值为 mostImportant 的元素。您不知道这个最重要的东西是一个段落、一个短语、一个列表项还是一个小节标题。您只知道每个文档都会有这么一个最重要的内容,它可能在任何元素中,而且只能出现一个。在这种情况下,可以编写如下规则:

  1. #mostImportant {color:red; background:yellow;}

这个规则会与以下各个元素匹配(这些元素不能在同一个文档中同时出现,因为它们都有相同的 ID 值):

  1. <h1 id="mostImportant">这很重要!</h1>
  2. <em id="mostImportant">这很重要!</em>
  3. <ul id="mostImportant">这很重要!</ul>
实例1
  1. <html>
  2. <head>
  3. <style type="text/css">
  4. #mostImportant {color:red; background:yellow;}
  5. </style>
  6. </head>
  7. <body>
  8. <h1 id="mostImportant">这很重要!</h1>
  9. <p>这是一个段落。</p>
  10. <p>这是一个段落。</p>
  11. <p>...</p>
  12. </body>
  13. </html>
实例2
  1. <html>
  2. <head>
  3. <style type="text/css">
  4. #mostImportant {color:red; background:yellow;}
  5. </style>
  6. </head>
  7. <body>
  8. <h1>这很重要!</h1>
  9. <p>这是一个 <em id="mostImportant">段落</em>.</p>
  10. <p>This is a paragraph.</p>
  11. <p>...</p>
  12. </body>
  13. </html>
实例3
  1. <html>
  2. <head>
  3. <style type="text/css">
  4. #mostImportant {color:red; background:yellow;}
  5. </style>
  6. </head>
  7. <body>
  8. <h1>这很重要!</h1>
  9. <ul id="mostImportant">
  10. <li>项目 1</li>
  11. <li>项目 2</li>
  12. <li>项目 3</li>
  13. </ul>
  14. <p>这是一个段落.</p>
  15. <p>...</p>
  16. </body>
  17. </html>

区分大小写

请注意,类选择器和 ID 选择器可能是区分大小写的。这取决于文档的语言。HTML 和 XHTML 将类和 ID 值定义为区分大小写,所以类和 ID 值的大小写必须与文档中的相应值匹配。

因此,对于以下的 CSS 和 HTML,元素不会变成粗体:

  1. #intro {font-weight:bold;}
  2. <p id="Intro">这是一个段落的介绍。</p>

由于字母 i 的大小写不同,所以选择器不会匹配上面的元素。

分类导航