文檔中的所有的節點之間都是有這樣或者那樣的關系。我們可以把節點之間的關系可以用傳統的家族關系來描述,可以把文檔樹當作一個家譜,那么節點與節點直接就會存在父子,兄弟,祖孫的關系了。
選擇器中的層級選擇器就是用來處理這種關系
子元素 后代元素 兄弟元素 相鄰元素
通過一個列表,對比層級選擇器的區別
?仔細觀察層級選擇器之間還是有很多相似與不同點
- 層級選擇器都有一個參考節點
- 后代選擇器包含子選擇器的選擇的內容
- 一般兄弟選擇器包含相鄰兄弟選擇的內容
- 相鄰兄弟選擇器和一般兄弟選擇器所選擇到的元素,必須在同一個父元素下
<!DOCTYPE html>
<html><head><meta http-equiv="Content-type" content="text/html; charset=utf-8" /><title></title><link rel="stylesheet" href="imooc.css" type="text/css"><script src="http://libs.baidu.com/jquery/1.9.1/jquery.js"></script>
</head><body><h2>子選擇器與后代選擇器</h2><div class="left"><div class="aaron"><p>div下的第一個p元素</p></div><div class="aaron"><p>div下的第一個p元素</p></div></div><div class="right"><div class="imooc"><article><p>div下的article下的p元素</p></article></div><div class="imooc"><article><p>div下的article下的p元素</p></article></div></div><script type="text/javascript">//子選擇器//$('div > p') 選擇所有div元素里面的子元素P$('div > p').css("border", "1px groove red");</script><script type="text/javascript">//后代選擇器//$('div p') 選擇所有div元素里面的p元素$('div p').css("border", "1px groove red");</script><h2>相鄰兄弟選擇器與一般兄弟選擇器</h2><div class="bottom"><div>兄弟節點div, +~選擇器不能向前選擇</div><span class="prev">選擇器span元素</span><div>span后第一個兄弟節點div</div><div>兄弟節點div<div class="small">子元素div</div></div><span>兄弟節點span,不可選</span><div>兄弟節點div</div></div><script type="text/javascript">//相鄰兄弟選擇器//選取prev后面的第一個的div兄弟節點$(".prev + div").css("border", "3px groove blue");</script><script type="text/javascript">//一般相鄰選擇器//選取prev后面的所有的div兄弟節點$(".prev ~ div").css("border", "3px groove blue");</script></body></html>
.left,.right {width: 300px;height: 120px;}.left div,.right div {width: 100px;height: 90px;padding: 5px;margin: 5px;float: left;background: #bbffaa;border: 1px solid #ccc;}.bottom {width: 800px;}.bottom div,.bottom span {display: block;width: 80px;height: 80px;margin: 5px;background: #bbffaa;float: left;font-size: 14px;}.bottom .small {width : 60px;height : 25px;font-size : 12px;background : #fab;}