CSS基础学习六:id选择器
最后更新于:2022-04-01 11:29:20
### 一,id选择器示例
id选择器允许以一种独立于文档元素的方式来指定样式。在某些方面,id选择器类似于类选择器,不过也有一些
重要差别。
语法
首先,id选择器前面有一个 # 号,也称为棋盘号或井号。
请看下面的规则:
~~~
<span style="font-size:18px;">*#intro { font-size:24px;
background-color:#000000;
color:#FF0000;}</span>
~~~
与类选择器一样,id选择器中可以忽略通配选择器。前面的例子也可以写作:
~~~
<span style="font-size:18px;">#intro { font-size:24px;
background-color:#000000;
color:#FF0000;} </span>
~~~
这个选择器的效果将是一样的。
第二个区别是id选择器不引用 class 属性的值,毫无疑问,它要引用 id 属性中的值。
以下是一个实际id选择器的例子:
~~~
<span style="font-size:18px;"><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档</title>
<style type="text/css">
#intro { font-size:24px;
background-color:#000000;
color:#FF0000;}
</style>
</head>
<body>
<p id="intro">This is a paragraph of introduction.</p>
<p>This is a paragraph of introduction.</p>
</body>
</html></span>
~~~
运行结果为:
![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2016-04-28_572155947a100.jpg)
### 二,id选择器简介
(1)概述
id选择器可以为标有特定id的HTML元素指定特定的样式。id 属性只能在每个 HTML 文档中出现一次。
id选择器以"#"来定义。
下面的两个 id 选择器,第一个可以定义元素的颜色为红色,第二个定义元素的颜色为绿色:
~~~
<span style="font-size:18px;">#red {color:red;}
#green {color:green;}</span>
~~~
下面的 HTML 代码中,id 属性为 red 的 p 元素显示为红色,而 id 属性为 green 的 p 元素显示为绿色。
~~~
<p id="red">这个段落是红色。</p>
<p id="green">这个段落是绿色。</p>
~~~
运行结果为:
![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2016-04-28_572155948bdf7.jpg)
(2)区分大小写
请注意,类选择器和id选择器可能是区分大小写的。这取决于文档的语言。HTML 和 XHTML 将类和id值定义为
区分大小写,所以类和id值的大小写必须与文档中的相应值匹配。
因此,对于以下的 CSS 和 HTML,元素不会变成粗体:
~~~
#intro {font-weight:bold;}
<p id="Intro">This is a paragraph of introduction.</p>
~~~
由于字母 i 的大小写不同,所以选择器不会匹配上面的元素,运行不会有你想要的结果。
### 三,单独的选择器
id 选择器即使不被用来创建派生选择器,它也可以独立发挥作用:
~~~
#sidebar {
border: 1px dotted #000;
padding: 10px;
}
~~~
根据这条规则,id 为 sidebar 的元素将拥有一个像素宽的黑色点状边框,同时其周围会有 10 个像素宽的内边距
(padding,内部空白)。老版本的 IE 浏览器可能会忽略这条规则,除非你特别地定义这个选择器所属的元素:
~~~
div#sidebar {
border: 1px dotted #000;
padding: 10px;
}
~~~
### 四,id选择器和派生选择器
在现代布局中id选择器常常用于建立派生选择器。
~~~
#sidebar p {
font-style: italic;
text-align: left;
margin-top: 0.5em;
}
~~~
上面的样式只会应用于出现在 id 是 sidebar 的元素内的段落。这个元素很可能是 div 或者是表格单元,尽管它也
可能是一个表格或者其他块级元素。它甚至可以是一个内联元素,比如 <em></em> 或者 <span></span>,不过这样
的用法是非法的,因为不可以在内联元素 <span> 中嵌入 <p>。
~~~
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档</title>
<style type="text/css">
#sidebar p {
font-style: italic;
text-align: left;
margin-top: 0.5em;
}
</style>
</head>
<body>
<div id="sidebar">
<p> 这是div区域的段落</p>
</div>
<div id="sidebar">
这是div区域2
</div>
<p id="sidebar">这是段落2</p>
</body>
</html>
~~~
运行结果为:
![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2016-04-28_572155949c2e3.jpg)
### 五,一个选择器,多种用法
即使被标注为 sidebar 的元素只能在文档中出现一次,这个 id 选择器作为派生选择器也可以被使用很多次:
~~~
#sidebar p {
font-style: italic;
text-align: right;
margin-top: 0.5em;
}
~~~
~~~
#sidebar h2 {
font-size: 1em;
font-weight: normal;
font-style: italic;
margin: 0;
line-height: 1.5;
text-align: right;
}
~~~
在这里,与页面中的其他 p 元素明显不同的是,sidebar 内的 p 元素得到了特殊的处理,同时,与页面中其他所
有h2元素明显不同的是,sidebar 中的 h2 元素也得到了不同的特殊处理。
### 六,类选择器还是id选择器?
在类选择器这一篇博客中我们曾讲解过,可以为任意多个元素指定类。前一章中类名 important 被应用到 p 和 h1元素,而且它还可以应用到更多元素。
区别 1:只能在文档中使用一次与类不同,在一个HTML文档中,id选择器会使用一次,而且仅一次。
区别 2:不能使用id词列表
不同于类选择器,id选择器不能结合使用,因为id属性不允许有以空格分隔的词列表。
区别 3:id能包含更多含义
类似于类,可以独立于元素来选择id。有些情况下,您知道文档中会出现某个特定id值,但是并不知道它会出现
在哪个元素上,所以您想声明独立的id选择器。例如,您可能知道在一个给定的文档中会有一个id值为 mostImportant
的元素。您不知道这个最重要的东西是一个段落、一个短语、一个列表项还是一个小节标题。您只知道每个文档都会
有这么一个最重要的内容,它可能在任何元素中,而且只能出现一个。在这种情况下,可以编写如下规则:
~~~
#mostImportant {color:red;
background:yellow;
}
~~~
这个规则会与以下各个元素匹配(这些元素不能在同一个文档中同时出现,因为它们都有相同的id值):
~~~
<h1 id="mostImportant">This is important!</h1>
<em id="mostImportant">This is important!</em>
<ul id="mostImportant">This is important!</ul>
~~~
![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2016-04-28_57215594af16e.jpg)
但是我在DW 8中尝试了一下可以运行。不知道为什么?先留个疑问?
补充:类选择器和id选择器的区别:
常识:
1.在HTML中一个标签只能有一个id,但是可以有多个class。
2.一个id在一个HTML页面中必须是唯一的,一个class可以被多个标签元素拥有。
区别:
1.id选择器只能应用于具体的一个标签(注意不是一种),类选择器却可以应用到多个标签(复用)
2.优先级不同:id选择器大于类选择器。
什么时候用id选择器or类选择器
一般情况下,页面唯一不会复用的可以使用id选择器,比如页头和页脚等。如果需要复用的样式,那么一般使用类选择器,比如表格,列表等。
一般类选择器使用更多。