问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

CSS 组合选择符示例

创作时间:
作者:
@小白创作中心

CSS 组合选择符示例

引用
CSDN
1.
https://m.blog.csdn.net/weixin_45474825/article/details/145491929

在Web开发中,CSS选择器是定义页面元素样式的利器。其中,组合选择符能够根据DOM结构中元素之间的关系来选中目标元素,从而写出结构清晰、易于维护的CSS代码。本文将详细介绍四种常用的组合选择符:后代选择器、子选择器、相邻兄弟选择器和通用兄弟选择器,并通过实例演示它们的使用方法。

后代选择器(Descendant Combinator)

后代选择器使用空格分隔两个选择器,例如:

A B

解释:该规则可以选中所有包含在A内部(不论层级深浅)的B元素。

示例代码

div p {
    color: red;
}

说明:这条规则将页面中所有在<div>内部的<p>元素的文字颜色设置为红色,不论<p><div>之间隔了多少层级。

子选择器(Child Combinator)

子选择器使用>符号链接两个选择器,形如:

A > B

解释:该选择器仅选中作为A元素直接子元素的B元素,深层嵌套的B元素则不符合此规则。

示例代码

ul > li {
    list-style-type: none;
}

说明:这条规则仅移除<ul>标签下直接<li>子元素的默认列表样式。如果<li>被嵌套在其他元素中,则不会受到该规则影响。

相邻兄弟选择器(Adjacent Sibling Combinator)

相邻兄弟选择器使用+符号连接,写作:

A + B

解释:该选择器用于选中处于A元素之后、同属一个父元素的第一个B元素。

示例代码

h1 + p {
    margin-top: 0;
}

说明:这条规则会将每个紧跟<h1>标签后(且处于同一父元素下)的第一个<p>元素的上边距设为0。如果<h1><p>之间有其他元素存在,则该规则不生效。

通用兄弟选择器(General Sibling Combinator)

通用兄弟选择器使用~符号,写作:

A ~ B

解释:该规则选中所有在A元素之后的同级B元素,而不要求它们一定紧邻A元素。

示例代码

h1 ~ p {
    color: blue;
}

说明:这条规则将所有在<h1>标签之后的同层级<p>元素的文字颜色设置为蓝色,不论它们是否紧邻<h1>标签。

综合示例

下面结合一个完整的HTML示例,演示如何利用上面介绍的组合选择符为不同关系的元素添加样式。

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>CSS 组合选择符示例</title>
    <style>
        /* 1. 后代选择器:所有 <div> 内部的 <span> 元素 */
        div span {
            background-color: yellow;
        }
        /* 2. 子选择器:仅选择 <div> 的直接 <p> 子元素 */
        div > p {
            border: 1px solid blue;
            padding: 5px;
        }
        /* 3. 相邻兄弟选择器:紧跟在 <h2> 后面的 <p> 元素 */
        h2 + p {
            font-weight: bold;
            color: green;
        }
        /* 4. 通用兄弟选择器:所有在 <h2> 后出现的 <section> 元素 */
        h2 ~ section {
            margin-top: 10px;
            border: 1px dashed gray;
        }
    </style>
</head>
<body>
    <div>
        <span>这是一个 span 元素(后代选择器)</span>
        <p>这是直接作为 div 子元素的 p 元素(子选择器)</p>
        <div>
            <p>这是嵌套更深层的 p 元素(不受子选择器影响)</p>
        </div>
    </div>
    <h2>标题</h2>
    <p>这是紧邻 h2 后面的 p 元素(相邻兄弟选择器)</p>
    <section>
        <p>这是 h2 后出现的 section 元素(通用兄弟选择器)</p>
    </section>
    <p>这个 p 元素未紧邻 h2,不受相邻兄弟选择器影响,但如果它和 h2 属于同一父元素,则可能被通用兄弟选择器选中(具体取决于 HTML 结构)。</p>
</body>
</html>

说明

  • 后代选择器div span选中所有在<div>内部的<span>元素,给其添加黄色背景。
  • 子选择器div > p规则只为<div>内的直接<p>子元素添加蓝色边框及内边距。
  • 相邻兄弟选择器h2 + p使得紧随<h2>后的第一个<p>标签显示为绿色、加粗。
  • 通用兄弟选择器h2 ~ section规则则选中<h2>标签之后所有的<section>元素,为其添加上边距及虚线边框。

总结

CSS组合选择符能够帮助我们根据DOM树中元素之间的层级关系或并列关系来精确选取目标元素,这对于编写高效、可维护且层次分明的CSS代码至关重要。通过合理应用后代选择器、子选择器、相邻兄弟选择器与通用兄弟选择器,我们不仅能够提高样式的复用性,还能减少冗余代码,从而提升页面的渲染效率。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号