• CSS 选择器详细分类


    前言


    本文详细记录 CSS 各种选择器,对选择器进行了分类整理,若有遗漏的选择器后续会更新上

    本文仅是对 CSS 所有选择器做一个概括,详细用法不做过多描述,比较重要的类型选择器会另外写文章做详细总结

    1. 简单选择器


    通配符选择器

    使用 * 匹配页面中所有标签,通配符选择器 又称为 全局选择器

    * {}
    
    • 1
    标签选择器

    标签选择器 又称为 元素选择器类型选择器html 选择器

    div {}
    span {}
    
    • 1
    • 2
    类选择器

    用于找到所有该类名的标签,class 值可以重复

    .box {}
    
    • 1
    id选择器

    找到拥有该 id 值的标签,同一个页面中 id 值不能重复

    #box {}
    
    • 1
    群组选择器

    群组选择器 又称为 分组选择器,用于选中多个选择器,优化冗余的 CSS 样式代码

    选择器1,选择器2 {}
    
    • 1
    后代选择器

    后代选择器 又称为 派生选择器,找到指定标签的所有后代标签

    选择器1 选择器2 {}
    
    • 1
    子代选择器

    子代选择器用于找到指定标签的所有直接子元素标签

    选择器1 > 选择器2 {}
    
    • 1
    交集选择器

    交集选择器是指标签选择器和 id 或 class 选择器配合使用。

    并集选择器的作用: 提高选择器的权重,更加精准的选择指定标签

    标签名.class值 {}
    标签名.id值 {}
    
    • 1
    • 2

    2. 兄弟选择器


    相邻兄弟选择器

    相邻兄弟选择器用于选中紧跟着的一个兄弟

    特别注意: 字符实体不是标签,不影响相邻关系

    选择器1 + 选择器2 {}
    
    • 1
    通用兄弟选择器

    通用兄弟选择器 又称为 一般兄弟选择器,用于选中后面所有兄弟

    选择器1 ~ 选择器2 {}
    
    • 1

    可使用下面代码测试相邻兄弟选择器与通用兄弟选择器的区别

    <style>
        /* 相邻兄弟选择器 */
        p+p {
            color: red;
            font-size: 25px;
            font-weight: bold;
        }
        /* 通用兄弟选择器 */
        p~p {
            color: red;
            font-size: 25px;
            font-weight: bold;
        }
    style>
    
    <main>
        <p>1p>
        <p>2p>
        <span>3span>
        <p>4p>
        <p>5p>
        <span>6span>
    main>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23

    3. 属性选择器


    属性名选择器

    以属性名匹配元素,属性名不能用引号引起来

    /* 格式 */
    [属性名] {}
    /* 示例: 选中具有 type 属性的标签 */
    [type] {}
    
    • 1
    • 2
    • 3
    • 4
    属性值选择器

    选中具有指定属性名和值的元素,属性值可以不用引号引起来,但是如果属性值是以数字开头时则必须使用引号

    语法格式:

    [attr=value] {}
    [attr="value"] {}
    
    • 1
    • 2
    属性值开头选择器

    属性值开头匹配选择器: attr 的值以 value 开头

    <style>
        [class^="box"] {
            color: red;
        }
    style>
    <div class="box1">1div>
    <div class="box2">2div>
    <div>3div>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    属性值结尾选择器

    属性值结尾匹配选择器: attr 的值以 value 结尾

    [attr$="value"] {}
    
    • 1
    属性值模糊匹配选择器

    属性值模糊匹配选择器 又称为 税性质模糊匹配选择器,匹配 attr 属性值包含 value 的元素

    [attr*="value"] {}
    
    • 1
    单个属性值匹配选择器

    用于匹配多属性中的单个属性值,只有一个属性值也能匹配到: attr 包含独立的单词 value, 必须用空格分开

    [attr~="value"] {}
    
    • 1

    使用示例:

    <style>
        [class~="box"] {
            color: red;
        }
    style>
    <div class="box">1div>
    <div class="box item1">2div>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    分割属性值匹配选择器

    匹配满足下面条件的元素: attr 的值以 value 开头,必须用 - 分开单词,比如 value-*

    [attr|="value"] {}
    
    • 1

    使用示例:

    <style>
        [class|="box"] {
            color: red;
        }
    style>
    <div class="box-abc">1div>
    <div class="box-item1">2div>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    标签属性选择器

    标签选择器和属性选择器的结合用法

    标签名[属性选择器] {}
    
    • 1

    使用示例

    input[name] {}
    span[class|="box"] {}
    
    • 1
    • 2

    4. 伪类选择器


    静态链接伪类

    静态链接伪类有: link(未访问的状态)、visited(访问后的状态),是超链接特有的伪类。开发中用的比较少

    a:link {
        color: red;
    }
    a:visited {
        color: blue;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    动态链接伪类

    动态链接伪类: focus(获取焦点)、hover(鼠标滑过)、active(鼠标激活,链接被按下)

    active 必须写在 hover 的后面,否则 active 会失效

    超链接如果有多个选择器,需按照上面的顺序设定,否则会有 css 样式无法加载(与选择器的优先级有关)

    div:hover {
        background: lightcoral;
    }
    input:focus {
        background: lightcoral;
    }
    a:active {
        font-weight: bold;
        color: blueviolet;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    目标链接伪类

    目标链接伪类: target,是 CSS 3 中新增的。突出显示被激活的锚点元素,也就是给被激活的锚点设置样式

    div:target {
        font-size: 35px;
    }
    
    • 1
    • 2
    • 3
    UI 元素状态伪类

    UI 元素状态伪类选择器 用于 表单元素

    选择器描述
    :enabled匹配界面中已启用的元素,表单元素默认就是启用
    :disabled匹配界面中被禁用的元素,已启用的对立面
    :checked匹配被选中的元素,只用于单选框和复选框
    结构伪类选择器
    child 系列 (css2)
    选择器描述
    :first-child父元素结构上的第一个子元素
    :last-child父元素结构上的最后一个子元素
    :nth-child(n)父元素结构上的第 n 个子元素
    :nth-last-child(n)父元素结构上的倒数第 n 个字元素
    :only-child父元素只有一个子元素
    of-type 系列 (css3)
    选择器描述
    :first-of-type父元素的第一个该类型的子元素
    :last-of-type父元素的最后一个该类型的子元素
    :nth-of-type(n)父元素的第 n 个该类型的子元素
    :nth-last-of-type(n)父元素结构上的倒数第 n 个该类型的子元素

    child 系列和 of-type 系列中 n 的取值

    1. 非零的正整数: 1、2、3
    2. 英文单词: odd(奇数)、even(偶数)
    3. 公式 an + b: a 倍数 n 计数器,从 0 开始的整数,b 偏移量

    选中第 1、4、7、10、… 个元素

    div:nth-child(3n+1) {}
    
    • 1
    empty 空元素选择器

    匹配没有子元素的元素,空元素: 标签中没有内容的元素

    div:empty {}
    
    • 1
    否定伪类选择器

    否定伪类用法: not(选择器) {}

    将指定选择器排除在外,圆括号中的选择器只能是简单选择器

    div:not(.box) {}
    
    • 1
  • 相关阅读:
    tf_Course5 卷积神经网络
    pdf如何盖电子骑缝章?
    leetcode:2441. 与对应负数同时存在的最大正整数(python3解法)
    C#压缩图片的方法
    UE源码分析:Slate 鼠标/触摸输入处理
    Canvas绘图
    对GRUB和initramfs的小探究
    curl命令行发送post/get请求
    2023最新SSM计算机毕业设计选题大全(附源码+LW)之java高校心理健康咨询平台vknhv
    Redux和React-redux(详解和案例)
  • 原文地址:https://blog.csdn.net/qq_40994734/article/details/126295626