复合选择器
复合选择器是由两个或多个基础选择器,通过不同的方式组合而成的,目的是为了可以选择更准胡更精细的目标元素标签。
交集选择器
交集选择器由两个选择器构成,其中第一个为标签选择器,第二个为class选择器,两个选择器之间不能有空格,如h3.special。
用的相对来说比较少,不太建议使用。
并集选择器
并集选择器是各个选择器通过逗号连接而成的,任何形式的选择器(包括标签选择器、class选择器、id选择器等),都可以作为并集选择器的一部分。如果某些选择器定义的样式完全相同,或部分相同,就可以利用并集选择器为它们定义相同的CSS样式。
后代选择器
后代选择器又称为包含选择器,用来选择元素或元素组的后代,其写法就是把外层标签写在前面,内层标签写在后面,中间用空格分隔。当标签发生嵌套时,内层标签就成为外层标签的后代。
子元素选择器
子元素选择器只能选择作为某元素子元素的元素。其写法就是把父级标签写在前面,子级标签写在后面,中间跟一个 > 进行连接,注意,符号左右两侧各保留一个空格。
属性选择器
E[attr]:存在attr属性即可
E[attr=val]:属性值完全等于val
E[attr*=val]:属性值包含字符并且在“任意”位置
E[attr^=val]:属性值里包含val字符并且在“开始”位置
E[attr$=val]:属性值里面包含val字符并且在“结束”位置
伪元素选择器(CSS3)
1、E::first-letter 文本的第一个单词或字(如中文、日文、韩文等)
2、E::first-line 文本第一行;
3、E::selection 可改变选中文本的样式。
4、E::before和E::after
在E元素内部的开始位置和结束位创建一个元素,该元素为行内元素,且必须要结合content属性使用;
代码如下:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<style type="text/css">
.logIn{
}
.siteL{
}
.nav{
}
.logIn a{ /*后代选择器*/
color: red;
}
.nav ul li a{
color:skyblue;
}
.nav,.siteL{ /*并集选择器*/
font-size: 14px;
font-family: "微软雅黑";
}
.nav > ul > li > a{ /*子元素选择器*/
color:green;
}
a[title] { /*属性选择器*/
color:orange;
}
p::selection{
color:green;
}
</style>
</head>
<body>
<!-- 主导航栏 -->
<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>
<div class="siteL">左侧导航栏</div>
<div class="logIn"><a href="#">登录</a></div>
</div>
<div>
<a href="#" title="属性选择器">属性选择器</a>
</div>
<p>
伪元素选择器,鼠标选中被更改。
</p>
</body>
</html>
效果如下: