11-CSS選擇器-復合選擇器

一、CSS復合選擇器

復合選擇器是建立在基礎選擇器之上,對基本選擇器進行組合形成的。

復合選擇器是由兩個或多個基礎選擇器,通過不同的方式組合而成的,可以更準確、更高效的選擇目標元素(標簽)

二、CSS復合選擇器分類

常用的復合選擇器包括:后代選擇器、子選擇器、并集選擇器、偽類選擇器

11.復合選擇器.png

2.1 后代選擇器

后代選擇器又稱為包含選擇器,可以選擇父元素里面所有子元素。

語法:把父標簽寫在前面,子標簽寫在后面,中間用空格分隔。

后代選擇器.png

注意:

1.元素1和元素2之間用空格隔開。

2.元素1 和 元素2 可以是任意基礎選擇器

3.被選擇的是元素1的后代元素2,元素1本身不被影響。

<style>
        /* !-- 需求:將ul里面的li變成粉色 */
        ul li {
            color: pink;
        }

        /* 需求:將第二個ul里的li變?yōu)樗{色 */
        .nav li {
            color: blue;
        }

        /* 需求:將div的兒子和孫子變成黃色 */
        /* 被改變的只是父元素里的子元素,父元素本身不被影響 */
        div p {
            color: yellow;
        }
    </style>
</head>

<body>
    <ul>
        <li>ul的第一個兒子</li>
        <li>ul的第二個兒子</li>
        <li>
            <p>ul的第一個孫子</p>
            <p>ul的第二個孫子</p>
        </li>
    </ul>
    <ul class="nav">
        <li>2ul的第一個兒子</li>
        <li>2ul的第二個兒子</li>
        <li>
            <p>2ul的第一個孫子</p>
            <p>2ul的第二個孫子</p>
        </li>
    </ul>
    <div>
        div的文字
        <p>
            div的兒子
            <p>div的孫子</p>
        </p>
    </div>
后代選擇器1.png

2.2 子選擇器

只能選擇作為某元素的最近一級子元素,選親兒子元素.

語法:把父標簽寫在前面,子標簽寫在后面,中間用">"分隔。

11.子代選擇器.png

注意:

1.元素1 和 元素2 中間用 大于號 隔開

2.元素2 必須是親兒子,即最近的元素,其孫子、重孫之類都不歸他管


<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>子選擇器</title>
    <!-- 只會改變離父選擇器最近的子元素 -->
    <style>
        /*1.需求:將所有豬變大*/
        div a {
            font-size: 30px;
        }

        /*2.需求:將豬頭變成紅色*/
        /* 子代選擇器只會選擇離父元素最近的子元素 */
        div>a {
            color: red;
        }

        /*3.需求:用子代選擇器將豬尾巴變成綠色*/
        div>ul>li>p>a {
            color: green;
        }
    </style>
</head>

<body>
    <!-- 關系分析:div中,p,a,ul是離他最近的子元素(親兒子),li是它的孫子,li里面的a和p是它的重孫子 -->
    <div>
        <p>對比</p>
        <a href="#">豬頭</a>
        <ul>
            <li><a href="#">豬腦</a></li>
            <li>
                <p>
                    <a href="#">豬尾巴</a>
                </p>
            </li>
        </ul>
    </div>
</body>

</html>
11.子代選擇器2.png

2.3 并集選擇器

并集選擇器可以選擇多組標簽, 同時為他們定義相同的樣式。

通常用于集體聲明。并集選擇器是各選擇器通過英文逗號","連接而成,任何形式的選擇器都可以作為并集選擇器的一部分。


11.并集選擇器.png

注意:

1.元素1 和 元素2 中間用逗號隔開

2.一般豎著寫

<!DOCTYPE html>
<html lang="zh-CN">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>并集選擇器</title>
    <!-- 兩個標簽之間用英文逗號隔開,一般豎著寫 -->
    <style>
        /* 1.需求:將豬頭和豬肚子改為紅色 */
        div,
        a {
            color: red;
        }

        /* 1.需求:將豬腦和豬尾巴改為綠色 */
        p,
        .green {
            color: green;
        }
    </style>
</head>

<body>
    <div>豬頭</div>
    <p>豬腦</p>
    <a href="#">豬肚子</a>
    <ul>
        <li>豬屁股</li>
        <li class="green">豬尾巴</li>
    </ul>
</body>

</html>
11.并集選擇器2.png

2.4 偽類選擇器

偽類選擇器用于向某些選擇器添加特殊的效果

2.4.1 鏈接偽類選擇器

? a:link 沒有點擊過的(訪問過的)鏈接
a:visited 點擊過的(訪問過的)鏈接
? a:hover 鼠標經(jīng)過的那個鏈接
? a:active 鼠標正在按下還沒有彈起鼠標的那個鏈接

<!DOCTYPE html>
<html lang="zh-CN">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>鏈接偽類</title>
    <style>
        /* :link和:visited只能給鏈接使用 */
        /* :hover和:active可以為任何元素使用 */
        /* 未點擊過的標簽 */
        a:link {
            color: #666;
            text-decoration: none;
        }

        /* 已經(jīng)點擊過了的標簽 */
        a:visited {
            color: yellow;
        }

        /* 鼠標移到鏈接上的時候 */
        a:hover {
            color: red;
            text-decoration: underline;
        }

        /* 鼠標按下去還未松開的時候 */
        a:active {
            color: green;
        }

        div {
            width: 100px;
            height: 100px;
        }

        /* 鼠標經(jīng)過div的時候 */
        div:hover {
            background-color: green;
        }

        /* 鼠標按下未松手的時候 */
        div:active {
            background-color: skyblue;
        }
    </style>
</head>

<body>
    <a href="#">鏈接1</a>
    <a >對比</a>
    <div>:hover和:active可以為任何元素使用</div>
</body>

</html>
11.鏈接偽類選擇器.gif

注意:

1.為了確保生效,請按照 LVHA 的循順序聲明 :link-:visited-:hover-:active。

2.鏈接標簽都是需要單獨設定樣式,不能簡寫或者連寫。

2.4.2 focus偽類選擇器

:focus 偽類選擇器用于選取獲得焦點的表單元素。

   <style>
        /* 光標選定輸入框時候 */
        input:focus {
            color: pink;
            background-color: gray;
        }

        textarea:focus {
            color: red;
            background-color: green;
        }
    </style>
</head>

<body>
    輸入框1:<input type="text" name="" id=""><br>
    文本域:
    <textarea name="" id="" cols="30" rows="10"></textarea>
</body>

</html>
11.focus選擇器.gif
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容