1. 程式人生 > >css層次選擇器的理解

css層次選擇器的理解

1、css後代選擇器
(1)語法:h1 em {color:red;} 表示的是從h1開始裡面包含的所有的em元素變成紅色,若em元素中還有其他元素,也會被選擇。h1為祖先,其他的em都是後代,即選中後代,不管是兒子還是孫子,只要是都會被選中,為後代選擇器。

(2)語法:h1>em{color:red;} 僅僅選擇直接子元素em,子元素中若有其他元素,則不再選擇

2.prev+next(前+後)選擇器,如li+p{},則選擇緊跟在li元素後面的所有p元素

<!DOCTYPE HTML>
<html>
<head>
<style type="text/css">
li+li{color:red;}
</style>
</head>


<body>
<div>
<ul>
<li>List item 1</li>
<li>List item 2</li>
<li>List item 3</li>
</ul>
<ol>
<li>List item 1</li>
<li>List item 2</li>
<li>List item 3</li>
</ol>
</div>
</body>
</html>

例子中的選擇器可以選擇緊接在第一個li後面的兩個li,執行結果


這個例子可以可能有點迷惑性,使用了li+li

把程式碼改變一下,

<!DOCTYPE HTML>
<html>
<head>
<style type="text/css">
li+p{color:red;}
</style>
</head>


<body>
<div>
<ul>
<li>List item 1</li>
<p>4654165146</p>
<em>List item 2</em>
<p>5465465656</p>
<li>List item 3</li>
</ul>
</div>
</body>
</html>

這樣寫,有更加深刻的理解

執行結果,如圖


3.prev~siblings(前~兄弟)選擇器

該選擇器可以選取指定的prev元素後面根據siblings過濾的元素。例如,使用#prev~div可以選取所有(指在同一個巢狀中的)在id為prev的元素後面的div元素

<!DOCTYPE HTML>
<html>
<head>
<style type="text/css">
li~p{color:red;}
</style>
</head>
<body>
<div>
<ul>
<p>456465465</p>
<li>List item 1</li>
<p>4654165146</p>
<em>List item 2</em>
<p>5465465656</p>
<li>List item 3</li>
</ul>
<p>54654654654685465</p>
</div>
</body>
</html>

執行結果: