css選擇器

css以及css3都包含了很是多的選擇器,這些選擇器給咱們提供了極大的便利css

在這篇隨筆當中,入門階段的元素選擇器,id選擇器,class選擇器,羣組選擇器就不介紹了。這裏咱們要講的是css中的層次選擇器以及css3中的選擇器html

1、層次選擇器css3

1.後代選擇器:選擇元素內部中全部的某一個元素,包括子元素和其餘後代元素瀏覽器

語法:M N{}字體

說明:在後代選擇器中,「M元素」和「N元素」之間用空格隔開,表示選中M元素內部後代N元素(全部N元素)。spa

 

2.子代選擇器:選中元素內部某一個子元素,該選擇器與後代選擇器有着明顯區別xml

1)後代選擇器選取得是全部元素htm

(2)子代選擇器選取得是內部某一類子元素(僅限子元素,不包括子孫元素)blog

語法:M>N{}get

 

3.兄弟選擇器

語法:M~N{}

說明:選中M元素後面的某一類兄弟元素,記住,兄弟選擇器只選取後面的全部兄弟元素,不包括前面的全部兄弟元素

 

4.相鄰選擇器

語法:M+N{}

表示選擇M元素後面的某一個相鄰的兄弟元素N。

技巧:li+li{/*樣式代碼*/}

使用在相鄰選擇器,表示選擇li元素相鄰的下一個li元素,由於最後一個li元素沒有相鄰的下一個li元素。因此對於最後一個li元素,沒有下一個li元素能夠選取

例如:li+li{border-top:2px soild red;}能夠達到在兩個li元素之間添加一個單邊框的效果

 

2、CSS3選擇器

(1)結構僞類選擇器

1.第一類結構僞類選擇器:(子元素選擇器)

E:first-child       選擇父元素的第一個子元素

E:last-child        選擇父元素的最後一個子元素

E:nth-child(n) 選擇父元素的第n個子元素或奇偶元素,n的取值爲整數或者odd/even

E:only-child       選擇父元素下的惟一個子元素(只有在父元素只有一個子元素的狀況下才能使用)

以上的E是子元素,須要在前面添加父元素例如:ul li:first-child{/*css代碼*/},第一類結構僞類選擇器特別適合與設置列表的列表項的不一樣樣式,還有表格,列表中的隔行換色。

eg:

<div>
    <h1></h1>
    <p></p>
    <span></span>
    <span></span>
</div>

h1:first-child:選擇的是h1,由於h1是div的第一個子元素

p:first-child:選擇不到任何元素,由於p不是div的第一個子元素

 

2.第二類結構僞類選擇器:(同級兄弟元素選擇器)

E:first-of-type   選擇同元素類型的第一個同級兄弟元素

E:last-of-type   選擇同元素類型的最後一個同級兄弟元素

E:nth-of--type(n)   選擇同元素類型的第n個或奇偶同級兄弟元素

E:only-of-type   匹配父元素中特定類型的惟一子元素(該父元素能夠有多個子元素)

<div>
    <h1></h1>
    <p></p>
    <span></span>
    <span></span>
</div>

h1:first-of-type:選擇的是h1,由於h1元素是全部h1元素裏的第一個h1元素,並且也只有h1元素

p:first-of-type:選擇的是p,由於p元素是全部p元素裏的第一個p元素,並且也只有p元素

 

*因此,在經過第一類和第二類的比較後,咱們能夠發現,第一類結構僞類選擇器是選擇父元素下的第一個子元素(不區分元素類型),而第二類結構僞類選擇器則是選擇特定類型的元素的第一個元素(區分元素類型)

 

3.第三類結構僞類選擇器:

1. :root      選擇頁面的根元素,也就是html元素

2. E:not()     選擇括號內元素以外的全部元素

3. E:empty   選擇一個不包含任何子元素和內容的元素

用法:這個選擇器很是的實用,咱們能夠經過這個選擇器來控制一些內容爲空的表格單元格的樣式

4. E:target   選取頁面中某個target元素

*所謂的target元素,就是指id被當作頁面內的超連接的元素

eg:

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head> 
    <title>CSS3 :target選擇器</title>
    <style type="text/css">
        :target h3
        {
            color:red;
        }
    </style>
</head>
<body>
    <div>
        <a href="#music">推薦音樂</a><br />
        <a href="#movie">推薦電影</a><br />
        <a href="#article">推薦文章</a><br />
    </div>
    ……<br />
    ……<br />
    ……<br />
    ……<br />
    ……<br />
    ……<br />
    <div id="music">
        <h3>推薦音樂</h3>
        <ul>
            <li>林俊杰-被風吹過的下圖</li>
            <li>曲婉婷-在個人歌聲裏</li>
            <li>許嵩-灰色頭像</li>
        </ul>
    </div>
    ……<br />
    ……<br />
    ……<br />
    ……<br />
    ……<br />
    ……<br />
    <div id="movie">
        <h3>推薦電影</h3>
        <ul>
            <li>蜘蛛俠系列</li>
            <li>鋼鐵俠系統</li>
            <li>復仇者聯盟</li>
        </ul>
    </div>
    ……<br />
    ……<br />
    ……<br />
    ……<br />
    ……<br />
    ……<br />
    <div id="article">
        <h3>推薦文章</h3>
        <ul>
            <li>朱自清-荷塘月色</li>
            <li>余光中-鄉愁</li>
            <li>魯迅-阿Q正傳</li>
        </ul>
    </div>
</body>
</html>

  其中,#表示返回頂部,#加id名,則表示返回至該頁面的id所在地,也就是咱們常說的錨點連接

target選擇器裏的樣式,只有當連接被點擊的時候纔會被顯示出來

 

(2)屬性選擇器

所謂屬性選擇器,就是經過屬性來選擇元素

1.E[attr^="屬性值"]

選取了屬性以雙引號內屬性值開頭的元素

 

2.E[attr$="屬性值"]

選取了屬性以雙引號內屬性值結尾的元素

 

3.E[attr*=「屬性值」]

選取了屬性包含了雙引號內屬性值的元素

 

(3)UI元素狀態僞類選擇器

什麼叫作UI元素狀態:UI元素狀態包括可用,不可用,失去焦點,得到焦點,選中,未選中

包括如下選擇器:

 

1.E:focus          指定獲取焦點的元素樣式

通常狀況下,E:focus主要針對與表單元素單行文本框text和多行文本框textarea

eg:

input:focus{
outline:1px solid red;
}

*outline屬性用於設置文本框的外邊框樣式

 

2.E:checked      選擇E元素中全部被選中時的元素

說明:目前只有opera瀏覽器支持E:checked選擇器,該選擇器通常用於表單元素單選框radio和複選框checkbox,設置他們的選中與未選中的狀態

 

3.E::selection     改變E元素中被選擇的網頁文本的顯示效果(用鼠標選中的文本)

說明:在這裏,selection選擇器前面的是雙引號,這說明他是僞元素,而單引號則是僞類。默認狀況下,被選中的文本都是藍色背景,白色字體,咱們能夠利用這個選擇器來改變這個樣式

 

4.E:enabled      選擇E元素中可用元素      ||     E:disabled     選擇E元素中不可用元素

說明:表單元素默認狀況下都是可用的,當咱們在想要禁用的表單元素中加入disabled屬性,這個表單元素就是出於被禁用狀態,這時就可使用這個選擇器

 

5.E:read-write  選擇E元素中可讀寫元素    ||    E:read-only   選擇E元素中只讀元素

說明:同上,用法相似可用於不可用元素選擇器

 

7.E::before      在E元素以前插入內容,樣式中必須有content   ||      E::after        在E元素以後插入內容,樣式中必須有content

說明:這兩種僞元素選擇器經常使用於清除浮動和建立小圖標

相關文章
相關標籤/搜索