1. `:first-child`:选择第一个出现的元素。
2. `:last-child`:选择最后一个出现的元素。
3. `:hover`:当鼠标悬停在元素上时,选择该元素。
4. `:first-of-type`:选择第一个非空元素。
这些标签选择器的使用可以使CSS更加灵活和易于使用。以下是对这些标签选择器的详细介绍:
### 1. `:first-child`:选择第一个元素
`:first-child`选择器用于选择第一个出现在HTML文档中的元素。当使用该选择器时,CSS样式会被应用到该元素的其他部分,而不是第一个元素本身。这个选择器通常用于实现一个列表或排序,例如在列表中,第一个元素会被排放在第一位。
下面是一个简单的示例,展示了如何使用`:first-child`选择器来选择一个元素:
“`html
<li>Item 1</li>
<li>Item 2</li>
<li>Item 3</li>
</ul>
在这个示例中,`<li>`元素是列表中的第一行,`:first-child`选择器会被应用到该元素的其他部分,如`<ul>`元素。现在,`<li>`元素的背景颜色和边框样式都会被应用到整个列表元素中。
需要注意的是,如果列表中有多个元素,第一个元素不一定是唯一的。因此,如果想要选择第一个非空元素,可以使用`:first-child`和`:first-child-of-type`选择器。
“`css
.parent li:first-child-of-type {
background-color: blue;
在这个示例中,`.parent li:first-child-of-type`选择器用于选择整个列表中的第一个非空元素,该元素是`<li>`元素。
### 2. `:last-child`:选择最后一个元素
`:last-child`选择器用于选择最后一个出现在HTML文档中的元素。与`:first-child`选择器不同,`:last-child`选择器不会选择第一个元素,因为它已经在第一个元素之后了。
下面是一个简单的示例,展示了如何使用`:last-child`选择器来选择一个元素:
“`html
<li>Item 1</li>
<li>Item 2</li>
<li>Item 3</li>
<li>Item 4</li>
</ul>
在这个示例中,`<li>`元素是列表的最后一行,`:last-child`选择器会被应用到该元素的其他部分,如`<ul>`元素。现在,`<li>`元素的背景颜色和边框样式都会被应用到整个列表元素中。
需要注意的是,如果列表中有多个元素,最后一个元素不一定是唯一的。因此,如果想要选择最后一个非空元素,可以使用`:last-child`和`:first-child`选择器。
“`css
.parent li:first-child {
background-color: blue;
.parent li:last-child {
background-color: red;
在这个示例中,`.parent li:first-child`选择器用于选择整个列表中的第一个非空元素,该元素是`<li>`元素。`.parent li:last-child`选择器用于选择整个列表中的最后一个非空元素,该元素是`<li>`元素。
### 3. `:hover`:选择鼠标悬停在元素上时的元素
`:hover`选择器用于选择当鼠标悬停在元素上时,该元素所呈现的状态。它有两种用法:
1. `:hover`和`:hoverable`:当鼠标悬停在元素上时,选择该元素。当鼠标悬停在`:hoverable`元素上时,选择整个元素及其子元素(如果它们也是`:hoverable`元素)。
2. `:hoverable`:当鼠标悬停在元素上时,选择该元素。但只有当鼠标悬停在该元素上时,该元素才被认为是可hoverable的,也就是说,它才会被选择。
下面是一个简单的示例,展示了如何使用`:hover`选择器来选择一个元素:
“`html
<li>Item 1</li>
<li>Item 2</li>
<li>Item 3</li>
<li>Item 4</li>
</ul>
在这个示例中,`<li>`元素是列表中的第一行,当鼠标悬停在该元素上时,该元素会显示出一个下拉菜单,该菜单将显示所有其他元素的背景颜色。
使用`:hover`选择器时,需要注意选择器的上下文,以确保选择正确的元素。
### 4. `:first-of-type`:选择第一个非空元素
`:first-of-type`选择器用于选择第一个非空元素。与`:first-child`选择器不同,`:first-of-type`选择器只有在列表中的元素都是非空时才会被选择。
下面是一个简单的示例,展示了如何使用`:first-of-type`选择器来选择一个元素:
“`html
<li>Item 1</li>
<li>Item 2</li>
<li>Item 3</li>
<li>Item 4</li>
<li>Item 5</li>
</ul>
在这个示例中,`<li>`元素是列表中的第一行,由于该列表中的所有元素都是非空的,所以`<li>`元素被选择。
需要注意的是,如果列表中有多个元素,第一个非空元素不一定是唯一的。因此,如果想要选择第一个非空元素,可以使用`:first-child`和`:first-child-of-type`选择器。