后代选择器
格式:M N{},M和N直接用空格隔开。用于选中后代的某一个元素,只要是后代,都可以被选中。此类选择器十分常见。
子代选择器
格式:M>N{},M和N之间用“>”号隔开。只能选择子代的某一个元素,只能选择一代,子代的子代不能被选中。
以下例子看区别:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>后代选择器和子代选择器</title>
<style type="text/css">
/* 后代选择器 */
#first p{
color:blue;
}
/* 子代选择器 */
#second>span{
color:brown;
}
</style>
</head>
<body>
<div id="first">
<p>后代选择器1</p>
<div><p>后代选择器2</p></div>
</div>
<div id="second">
<span>子代选择器1</span><br>
<span>子代选择器2</span>
<div>
<span>不能选中该元素</span>
</div>
</div>
</body>
</html>
兄弟选择器
格式:M~N{},用于选中元素后面的某一类元素,不包括前面。
相邻选择器
格式:M+N{},用于选中元素后面的某一个相邻的兄弟元素。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>兄弟选择器和相邻选择器</title>
<style type="text/css">
/* 兄弟选择器 */
#first~p{
color:blue;
}
/* 相邻选择器 */
#second+p{
color:brown;
}
</style>
</head>
<body>
<div id="first">
<div>以下是兄弟选择器</div>
</div>
<p>兄弟选择器1</p>
<p>兄弟选择器2</p>
<div id="second">
<div>以下是相邻选择器</div>
</div>
<p>相邻选择器</p>
<p>未被相邻选择器选中,而是被兄弟选择器选中</p>
</body>
</html>
总结
后代选择器:选中元素内部的所有元素;
子代选择器:选中元素内部的某一个子元素;
兄弟选择器:选中元素后面所有某一类元素;
相邻选择器:选中元素后面相邻的某一个元素。