首頁 > web前端 > css教學 > CSS選擇符之子代選擇符詳解

CSS選擇符之子代選擇符詳解

小云云
發布: 2018-01-08 10:33:09
原創
2036 人瀏覽過

後代選擇符用於選取一個標籤的所有後代,包括子代和孫輩等;而子代選擇符只選取指定父輩的子代標籤(指定標籤元素的第一代子元素)。本文主要介紹了詳解CSS選擇符之子代選擇符的相關資料,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟著小編過來看看吧,希望能幫助大家。

子代選擇符使用一個額外的符號(尖括號> )來表示兩個元素之間的關係。

例如:body>h1 選取的是標籤裡的所有第一代

標籤。

HTML標籤的關係圖

#HTML程式碼

## 


<h1>body里面的h1标题</h1>

<p>
    <h2>p里面的h2</h2>
    <p>
        p里面的p标签,p标签里面有一个<strong><a href="#">加粗的链接</a></strong>
    </p>
</p>

<h2>body里面的h2标题</h2>

<ul>
    <li>列表1
        <ul>
            <li>小列表a</li>
            <li>小列表b</li>
            <li>小列表c</li>
        </ul>
    </li>
    <li>
        <a href="#">列表2(带链接)</a>
    </li>
    <li>
        <a href="#">列表3(带链接)</a>
    </li>
</ul>
登入後複製

弄清楚上面的結構之後,可以試試下面程式碼:

CSS程式碼


body>h2 {
    color: orange;
}
登入後複製

上面HTML程式碼裡面,一共有2個

標籤,但只有一個子代的

,另一個

是在

裡面的,所以上面的CSS程式碼只作用在第一個

標籤。

以下是比較好玩的子選擇子

#:first-child

選取第一個子標籤。

CSS程式碼


h2:first-child {
    color: orange;
}
登入後複製

#這個選擇符的功能是:先找到網頁中所有

標籤,透過

標籤找到其父元素,再判斷

標籤在其父元素中是否排第一個。

這裡因為的第一個標籤是

,所以的子元素

沒被樣式作用到。

因為

裡的

的第一個子元素,所以

裡的

變成了橘色字。

:last-child

這個選擇子與 :first-child 選擇子的作用類似,不過選取的是一個元素的最後一個子代。

CSS程式碼


li:last-child {
    font-size: 2em;
}
登入後複製

#可以看到,「小列表C」和「清單3(帶連結) 」的字號變大了。因為這兩項都是被指定的最後一項。

:only-child

選取某個元素唯一的子代。

HTML程式碼


<p>
    <p>第一个p的p</p>
</p>
<p>
    <p>第二个p的第一个p</p>
    <a href="#">第二个p的第一个a</a>
</p>
登入後複製

CSS程式碼


p:only-child {
    color: orange;
}
登入後複製

上述樣式只作用在第一個

元素。第二個

裡面因為不只

元素,還有元素,所以第二個

元素不會被上述樣式影響。

這個選擇符比較難理解。只有當指定的標籤是另一個標籤的唯一子代時,這個選擇符定義的樣式才有效。也就是說,子代中只有一個指定的標籤還不行,如果指定的標籤有其他同儕標籤,這個選擇符定義的樣式就會失效。

:nth-child

這個選擇權用法比較複雜,不過也特別有用。

這個選擇子可以輕易地為表格中相隔的行、列表中相隔兩個項目的項目或相隔其他數目的子代元素定義樣式。

這個選擇符需要一個值,用來決定選取哪些子代。

其中最簡單的值是關鍵字,即odd和even。

  1. odd用來選取奇數子代元素。

  2. even用來選取偶數子代元素。

HTML程式碼


<ul>
    <li>1</li>
    <li>2</li>
    <li>3</li>
    <li>4</li>
    <li>5</li>
    <li>6</li>
    <li>7</li>
</ul>
登入後複製
登入後複製

CSS程式碼


li:nth-child(odd) {
    background: pink;
}
li:nth-child(even) {
    background: teal;
}
登入後複製

#第一個子元素的下標是1。

要注意的是,如果在第一個
  • 之前還有其他元素,那麼第一個
  • 的下標就不是1了。

    例如

    HTML程式碼


    <ul>
        <a href="#">a</a>
        <li>1</li>
        <li>2</li>
        <li>3</li>
        <li>4</li>
        <li>5</li>
        <li>6</li>
        <li>7</li>
    </ul>
    登入後複製
    登入後複製

    這時的效果是

    li:nth-child(odd) 的意思是找到

  • 元素的父元素,通过父元素来检测每一个
  • 的下标的奇偶。

    因为

  • 相關標籤:
    來源:php.cn
    本網站聲明
    本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
    熱門教學
    更多>
    最新下載
    更多>
    網站特效
    網站源碼
    網站素材
    前端模板