CSS复合选择器
1.交集选择器
交集选择器由两个选择器构成,其中第一个为标签选择器,第二个为class选择器,两个选择器之间不能有空格,如h3.special。
交集选择器 是 并且的意思。 即...又...的意思。
用的相对来说比较少,不太建议使用。
示例:
<style>
p.test{
font-size: 30px;
color: #ff0000;
}
</style>
<div>
<p class="test">我是交集选择器的测试</p>
<div class="test">
我也是测试之一噢<p></p>
</div>
</div>
![](https://i-blog.csdnimg.cn/blog_migrate/0336da6a134d32664a12e4d7b2f9322c.png)
2.并集选择器
任何形式的选择器(包括标签选择器、class类选择器id选择器等),都可以作为并集选择器的一部分。如果某些选择器定义的样式完全相同,或部分相同,就可以利用并集选择器为它们定义相同的CSS样式。
示例:
<style>
p, #test, .test {
font-size: 30px;
color: #ff0000;
}
</style>
<div>
<p class="test">我是交集选择器的测试</p>
<div id="test">
我也是测试之一噢
<p>
我是第三个测试
</p>
</div>
</div>
![](https://i-blog.csdnimg.cn/blog_migrate/89f71588b52e0e9c3d915341a67b5e47.png)
3.后代选择器
后代选择器又称为包含选择器,用来选择元素或元素组的后代,其写法就是把外层标签写在前面,内层标签写在后面,中间用空格分隔。当标签发生嵌套时,内层标签就成为外层标签的后代。
示例:
<style>
div p {
font-size: 30px;
color: #ff0000;
}
</style>
<div>
<p class="test">我是交集选择器的测试</p>
<div id="test">
我也是测试之一噢
<p>
我是第三个测试
</p>
</div>
</div>
![](https://i-blog.csdnimg.cn/blog_migrate/bfb1738c9c7ec524459661b18c57c7f6.png)
虽然两个p分属不同的div,但从结构可以看出两个p都是div的后代,所以一旦使用后代选择器,则两个p都会被选中,样式也会被改变。
4.子元素选择器
进行连接,注意,符号左右两侧各保留一个空格。
示例:
<style>
#test2 > p {
font-size: 30px;
color: #ff0000;
}
</style>
<div id="test2">
<p class="test">我是交集选择器的测试</p>
<div id="test">
我也是测试之一噢
<p>
我是第三个测试
</p>
</div>
</div>
![](https://i-blog.csdnimg.cn/blog_migrate/aa36fc7e19875144a585bea8f89cd495.png)
小测试:
主导航栏和侧导航栏里面文字都是14像素并且是微软雅黑。(中等)
主导航栏里面的一级菜单链接文字颜色为绿色。(难)
<style>
.site-r a {
color: green;
}
.nav a {
font-size: 14px;
font-family: "微软雅黑";
}
.nav > ul > li > a {
color: purple;
}
*{
text-decoration: none;
}
</style>
<div class="nav"> <!-- 主导航栏 -->
<ul>
<li><a href="#">公司首页</a></li>
<li><a href="#">公司简介</a></li>
<li><a href="#">公司产品</a></li>
<li>
<a href="#">联系我们</a>
<ul>
<li><a href="#">公司邮箱</a></li>
<li><a href="#">公司电话</a></li>
</ul>
</li>
</ul>
</div>
<div class="sitenav"> <!-- 侧导航栏 -->
<div class="site-l">左侧侧导航栏</div>
<div class="site-r"><a href="#">登录</a></div>
</div>
![](https://i-blog.csdnimg.cn/blog_migrate/a6d40e246634b17e5844034a11a0daf2.png)
5.伪类选择器
伪类选择器用于向某些选择器添加特殊的效果。比如给链接添加特殊效果, 比如可以选择 第1个,第n个元素。
为了和我们刚才学的类选择器相区别, 类选择器是一个点 比如 .demo {} 而我们的伪类 用 2个点 就是 冒号 比如 :link{} |
链接伪类选择器
:visited /* 已访问的链接 */
:hover /* 鼠标移动到链接上 */
:active /* 选定的链接 */
注意写的时候,他们的顺序尽量不要颠倒,按照 lvha 的顺序。
示例:
<style>
a{
font-size: 25px;
font-family: "微软雅黑";
font-weight: bold;
}
a:link{
color: red;
}
a:visited{
color: pink;
}
a:hover{
color: skyblue;
}
a:active{
color: green;
}
</style>
<a href="http://www.bilibili.com">测试</a>