平時在代碼練習中,經常用到后代選擇器,子選擇器也會用到,這里做個總結:
1,后代選擇器和子選擇器區別:
①寫法不一樣:
后代選擇器的標識為:空格
如:ul li{width:150px;} 【ul和li之間用空格隔開】
子選擇器的標識為:>
如:ul>li{width:150px;}【ul和li之間用>隔開】
相鄰兄弟選擇器的標識為:+
如:h1 + p {margin-top:50px;}[h1和p之間用+隔開]
②功能不一樣:
后代選擇器(descendant selector),又稱為包含選擇器,可以選擇某元素后代的元素(子子孫孫元素),如上例,后代選擇器是選擇ul包圍的所有元素中的所有li元素,包括兒子元素、孫子元素、曾孫元素等等等。
與后代選擇器相比,子元素選擇器(Child selectors)只能選擇作為某元素兒子元素的元素,子選擇器僅僅選擇ul包圍的兒子元素中的 li元素,不包括孫元素、曾孫元素等等等。
相鄰兄弟選擇器很好理解,即選擇緊接在另一元素后的元素,且二者有相同父元素。
③兼容性不一樣:
后代選擇器主流瀏覽器都兼容。
子選擇器和相鄰兄弟選擇器在IE6是不被支持的選擇器,會出bug!
2,后代選擇器,子選擇器和相鄰兄弟選擇器結合使用示例:
請看下面這個選擇器:
html > body table + ul {margin-top:20px;}
這個選擇器解釋為:選擇緊接在 table 元素后出現的第一個相鄰兄弟 ul 元素,該 table 元素包含在一個 body 元素中,body 元素本身是 html 元素的子元素。