CSS——复合选择器

用上次的实例来实例:

源代码:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>

    <style>
        /* 通用兄弟选择器 */
        h1~p{
            font-size: 30px;
        }

        /* 后代选择器 */
        ul a{
            color: red;
        }

        /* 子代选择器 */
        section>h4{
            color: green;
        }

        /* 相邻兄弟选择器 */
        section + p{
            color: yellow;
        }

        h4 + p{
            color: yellow;
        }

    </style>

</head>
<body>
    <header><h1 align="center">ヘタリア World☆Stars</h1><p align="center">Welcome to:<ins>Axis Power!</ins></p></header>
    <hr>
    <nav>
        <ul>
            <a href="#"><li>TOP</li></a>
            <a href="#"><li>NEWS</li></a>
            <a href="#"><li>STREAM</li></a>
            <a href="#"><li>INTRODUCTION</li></a>
            <a href="#"><li>STORY</li></a>
            <a href="#"><li>CHARACTER</li></a>
            <a href="#"><li>MUSIC</li></a>
            <a href="#"><li>GOODS</li></a>
            <a href="#"><li>INTRODUCTION</li></a>
        </ul>
    </nav>
    <hr>
    <main>
        <article><h3>Latest Articles</h3></article>
        <section><h4>article title</h4></section>
        <p>2022.12.23<br>AGF2022事後通販決定!<br><br>2022.10.26<br>AGF2022 アニメ「ヘタリア World★Stars」ブース グッズラインナップ公開!</p>
        <section>    
            <img src="aph.png" alt="" width="200" height="200">
        </section>
        <section>To learn about「ヘタリア World★Stars」,<a href="https://hetalia-ws.com/">click here.</a></section>
        <aside>
            <h4>SIDEBAR</h4>
            <p>Sidebar content such as quick links, advertisements, etc.</p>
            <br>
            <table border="1">
                <tr>
                    <th>STORY</th>
                    <th>HREF</th>
                </tr>
                <tr>
                    <td>新年を祝うよ!</td>
                    <td>
                    <a href="https://hetalia-ws.com/story/story15/">click here</a>
                    </td>
                </tr>
                <tr>
                    <td>変なヤツら・前編</td>
                    <td>
                    <a href="https://hetalia-ws.com/story/story01/">click here</a>
                    </td>
                </tr>
                <tr>
                  <td>変なヤツら・後編</td>
                  <td>
                  <a href="https://hetalia-ws.com/story/story02/">click here</a>
                  </td>
              </tr>
            </table>
            <br>
            <b>Contact Us</b><br>
            <form action="">
                Name: <input type="text"><br>
                Email: <input type="text"><br>
                <input type="submit">
            </form>
        </aside>
    </main>
<hr>
    <footer>Copyright©ヘタリアWorld☆Stars</footer>
</body>
</html>

 CSS选择器的复合

一.交集选择器

交集选择器也被叫做复合选择器,它把多个选择器组合起来,从而选择同时满足这些选择器条件的元素。

交集选择器是将多个选择器直接连写在一起,中间没有分隔符(如空格、>+~ 等),基本语法如下:

selector1.selector2.selector3, ... {

        /* 样式规则 */

}

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>交集选择器</title>
    <style>
        p.one{
            color: blueviolet;
        }


    </style>
</head>
<body>
    <p>这是普通段落,不会应用样式。</p>
    <p class="one">这是带有 highlight 类的段落,会应用样式。</p>
    <div class="two">这是 div 元素,不会应用样式。</div>
</body>
</html>

二. 并集选择器

并集选择器用于将多个选择器组合在一起,同时为这些选择器所匹配的元素应用相同的样式。

由多个选择器组成,各选择器之间用逗号,分隔,基本语法如下:

selector1, selector2, selector3, ... {

        /* 样式规则 */

}

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>并集选择器</title>
    <style>
        p,.one{
            color: blueviolet;
        }


    </style>
</head>
<body>
    <p>这是普通段落,会应用样式。</p>
    <p class="one">这是带有 highlight 类的段落,会应用样式。</p>
    <div class="two">这是 div 元素,不会应用样式。</>
</body>
</html>

三.【重点】关系选择器(后代选择器、子代选择器、相邻兄弟选择器、通用兄弟选择器)

3.1后代选择器 

后代选择器允许你选择某个元素内的所有后代元素(包括子元素、孙元素等,无论嵌套多深)。这种选择器利用了 HTML 文档的树形结构,通过指定祖先元素和后代元素,精准定位到符合要求的元素并应用样式。

是将多个选择器用空格分隔,其基本语法如下:

祖先元素选择器 后代元素选择器 {

         /* 样式规则 */

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>后代选择器</title>
    <style>
        ul li{
            color: blueviolet;
        }


    </style>
</head>
<body>
    <ul>
        <li>A</li>
        <li>B</li>
        <li>C</li>
        <ul>
            <li>a</li>
            <li>b</li>
            <li>c</li>
        </ul>
        <li>D</li>
    </ul>

    <ul>
        <li>a.不会应用样式</li>
        <li>b.不会应用样式</li>
    </ul>
</body>
</html>

 

3.2 子代选择题

子代选择器(Child combinator)是 CSS 中用于选择某个元素的直接子元素的选择器。它通过特定的符号来明确元素之间的父子关系,相比后代选择器,子代选择器的选择范围更精准,只针对直接子元素生效。

使用大于号>来分隔两个选择器,基本语法如下

 父元素选择器 > 子元素选择器 {

        /* 样式规则 */

}

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>子代选择器</title>
    <style>
        ul>li{
            color: blueviolet;
        }


    </style>
</head>
<body>
    <ul>
        <li>A</li>
        <li>B</li>
        <li>C</li>
        <ul>
            <li>a</li>
            <li>b</li>
            <li>c</li>
        </ul>
        <li>D</li>
    </ul>

    <ol>
        <li>a.不会应用样式</li>
        <li>b.不会应用样式</li>
    </ol>
</body>
</html>

 

3.3相邻兄弟选择器 

相邻兄弟选择器用于选择紧接在另一个元素之后的同级兄弟元素。也就是说,它会选中在 HTML 结构中,与参考元素处于同一层级且直接跟在参考元素后面的元素。

相邻兄弟选择器+用于选择紧接在另一个元素之后的同级兄弟元素。下面为你详细介绍其使用方法、示例以及注意事项。

 element1 + element2 {

         /* 样式规则 */

}

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>交集选择器</title>
    <style>
        h2 + p{
            color: blueviolet;
        }

    </style>
</head>
<body>
    <h2>标题 2</h2>
    <p>这是紧接在 h2 后面的段落,文字颜色会变为绿色</p>
    <p>这是另一个段落,不受相邻兄弟选择器影响</p>
    <h2>另一个标题 2</h2>
    <p>这是紧接在另一个 h2 后面的段落,文字颜色会变为绿色</p>
</body>
</html>

 

3.4通用兄弟选择器

通用兄弟选择器可以选择在某个元素之后的所有同级兄弟元素。这意味着只要目标元素和参考元素处于同一层级,并且目标元素在参考元素之后,就会被选择器选中。

 用(~)选择某一元素之后的所有同级兄弟元素。

element1~element2 {

        /* 样式规则 */

}

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>通用兄弟选择器</title>
    <style>
        p~span{
            color: blueviolet;
        }

        /* div~span{
            color: red;
        } */

    </style>
</head>
<body>
    <p>这是一个段落。</p>
    <span>这是第一个span元素。</span>
    <div>这是一个div元素。</div>
    <span>这是第二个span元素。</span>
    <!-- 若第二个样式取消注释,其应用效果将覆盖,即第三个span元素变为红色 -->
    <span>这是第三个span元素。</span>
</body>
</html>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值