CSS复合选择器

CSS复合选择器

根据选择器的类型把选择器分为基础选择器复合选择器, 复合选择器是建⽴在基础选择器之上,对基本选择器进⾏组合形成的

▪ 复合选择器可以更准确⾼效的选择⽬标元素(标签)

▪ 复合选择器是由两个或多个基础选择器,通过不同⽅式组合⽽成

▪ 常⽤的复合选择器:后代选择器、⼦选择器、并集选择器、伪类选择器

①后代选择器※

⼜称为包含选择器,可以选择⽗元素⾥⾯⼦元素(层递关系)

写法是把外层标签写在前⾯,内层标签写在后⾯,中间⽤空格分隔

当标签发⽣时,内层标签就为外层标签的后代

1
2
3
4
语法:
元素1 元素2 {
样式
}

▪ 元素1元素2中间⽤空格隔开

▪ 元素1是⽗级,元素2是⼦级,最终选择是元素2

▪ 元素2可以是⼉⼦也可以是孙⼦,只要是元素1后代

▪ 元素1和元素2可以是任意基础选择器

1
2
3
4
5
6
7
8
9
10
11
12
13
14
/ 将ol标签里的li的a标签改样式/
<style>
ol li a{
color:red;
}
</style>
<body>
<ol>
<li>我是ol的孩子</li>
<li>我是ol的孩子</li>
<li>我是ol的孩子</li>
<li><a href="#">我是孙子</a></li>
</ol>
</body>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
/将类名为.nav的li标签的a标签改样式/
<style>
.nav li a{
color:red;
}
</style>
<body>
<ul>
<li>我是ol的孩子</li>
<li>我是ol的孩子</li>
<li>我是ol的孩子</li>
<li><a href="#">我是孙子</a></li>
</ul>
<ul class="nav">
<li>我是ol的孩子</li>
<li>我是ol的孩子</li>
<li>我是ol的孩子</li>
<li><a href="#">我是孙子</a></li>
<li><a href="#">我是孙子</a></li>
<li><a href="#">我是孙子</a></li>
</ul>
</body>

②子选择器※

子元素选择器(子选择器)只能选择作为某元素的最近一级子元素,简单理解就是选亲儿子元素

1
2
3
4
语法:
元素1>元素2{
样式声明
}

表示选择元素1里面的所有直接后代(子元素)元素2

  • 元素1和元素2中间用 “>” 隔开

  • 元素1是父级,元素2是子级,最终选择是元素2

  • 元素2必须是亲儿子,其孙子重孙不归他管

1
2
3
4
5
6
7
8
9
10
11
12
13
<style>
.nav>a{
color:red;
}
</style>
<body>
<div class="nav">
<a href="#">儿子</a>
<p>
<a href="#">孙子</a>
</p>
</div>
</body>

③并集选择器※

并集选择器可以选择多组标签,同时为他们定义相同样式。通用于集体声明

1
2
3
4
5
语法:
元素1 ,
元素2{
样式声明
}
  • 通过英文 “ , ” 连接而成,任何形式的选择器都可以作为并集选择器的一种
  • 上述语法表示选择元素1和元素2
  • 选择器代码竖着写
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<style>
/将熊大和熊二改颜色/
div,
p{
color:pink;
}

/将熊大熊二和小猪一家改为粉色/
div,
p,
.pig li{
color:pink;
}
</style>
<body>
<div>熊大</div>
<p>熊二</p>
<span>光头强</span>
<ul class="pig">
<li>小猪佩奇</li>
<li>猪爸爸</li>
<li>猪妈妈</li>
</ul>
</body>

④伪类选择器

伪类选择器用于向某些选择器添加特殊的效果,比如给链接添加特殊效果,或选择第一个,第n个元素

  • ” :“ 表示,如:hover、:first-child

1.链接伪类选择器(常用)

① a:link /选择所有未被访问(没有点击过)的链接/

1
2
3
4
5
6
7
8
9
10
如:
<style>
a:link{
color:black;
text-decoration:none;(下划线)
}
</style>
<body>
<a href="#">小猪佩奇</a>
</body>

② a:visited /选择所有已被访问(点击过)的链接/ 点击后变色

1
2
3
4
5
6
7
8
<style>
a:visited{
color:orange;
}
</style>
<body>
<a href="#">小猪佩奇</a>
</body>

③ a:hover /选择鼠标指针经过的链接/ 光标经过后变色 ※

1
2
3
4
5
6
7
8
<style>
a:hover{
color:blue;
}
</style>
<body>
<a href="#">小猪佩奇</a>
</body>

④ a:active /选择活动链接(鼠标按下未弹起的链接)/

1
2
3
4
5
6
7
8
<style>
a:active{
color:green;
}
</style>
<body>
<a href="#">小猪佩奇</a>
</body>

△注意事项:

①为了确保代码生效,要按照 link - visited - hover - active 的顺序书写

②实际工作中要给链接单独指定样式

链接伪类选择器实际开发中的写法:

1
2
3
4
5
6
7
8
/a 是标签选择器 所有的链接/
a{
color:gray;
}
/ :hover 是链接伪类选择器 鼠标经过/
a:hover{
color:red; /鼠标经过的时候,由原来的灰色变成了红色/
}

2. :focus 伪类选择器

:focus伪类选择器用于选取获得焦点的表单元素

焦点就是光标,一般情况**< input >类表单元素**才能获取,因此这个选择器也主要针对于表单元素来说。

1
2
3
4
5
6
7
8
9
10
11
如:把获得光标的input表单元素选取出来
<style>
input:focus{
background-color:yellow;
}
</style>
<body>
<input type="text">
<input type="text">
<input type="text">
</body>

总结:

image-20221109221621504


CSS复合选择器
http://example.com/2023/04/17/CSS复合选择器/
作者
花怜
发布于
2023年4月17日
许可协议