当前位置: 首页 > news >正文

css的选择器

CSS(层叠样式表)选择器用于选择 HTML 元素并应用样式。以下是一些基本的 CSS 选择器及其执行优先级(即选择器的特异性和层叠顺序)。

基本选择器

  1. 通用选择器(Universal Selector)

    • 选择所有元素。
    • 语法:*
    * {margin: 0;padding: 0;
    }
    
  2. 类型选择器(Type Selector)

    • 选择特定类型的元素。
    • 语法:element
    p {color: blue;
    }
    
  3. 类选择器(Class Selector)

    • 选择具有特定类的元素,类名以 . 开头。
    • 语法:.classname
    .highlight {background-color: yellow;
    }
    
  4. ID 选择器(ID Selector)

    • 选择具有特定 ID 的元素,ID 以 # 开头。
    • 语法:#idname
    #header {font-size: 24px;
    }
    
  5. 属性选择器(Attribute Selector)

    • 选择具有特定属性的元素。
    • 语法:[attribute][attribute="value"]
    input[type="text"] {border: 1px solid #ccc;
    }
    
  6. 伪类选择器(Pseudo-class Selector)

    • 选择处于特定状态的元素。
    • 语法:element:pseudo-class
    • :hover:当鼠标悬停在元素上时应用样式。
      :focus:当元素获得焦点时应用样式。
      :active:当元素被激活(如被点击)时应用样式。
      :nth-child(n):选择父元素的第 n 个子元素。
      :first-child:选择父元素的第一个子元素。
      :last-child:选择父元素的最后一个子元素。
    a:hover {color: red;
    }
    
  7. 伪元素选择器(Pseudo-element Selector)

    • 选择元素的特定部分。
    • 语法:element::pseudo-element
    • ::before:在元素内容之前插入内容。
      ::after:在元素内容之后插入内容。
      ::first-line:选择元素的第一行文本。
      ::first-letter:选择元素的第一个字母。
    p::first-line {font-weight: bold;
    }
    
  8. 组合选择器(Combinator Selector)

    • 选择与其他元素关系的元素。
    • 语法:
      • 后代选择器ancestor descendant
      • 子选择器parent > child
      • 相邻兄弟选择器prev + next
      • 一般兄弟选择器prev ~ siblings
    div p {color: green; /* 后代选择器 */
    }
    

执行先后顺序(特异性和层叠)

CSS 的选择器执行顺序由特异性(Specificity)和层叠(Cascade)规则决定。以下是特异性的计算规则:

  1. 内联样式(Inline styles):

    • 直接在元素的 style 属性中定义的样式,特异性最高。
    • 特异性:1000
  2. ID 选择器

    • 每个 ID 选择器的特异性为 100。
    • 特异性:100
  3. 类、伪类和属性选择器

    • 每个类、伪类或属性选择器的特异性为 10。
    • 特异性:10
  4. 类型选择器和伪元素选择器

    • 每个类型选择器或伪元素选择器的特异性为 1。
    • 特异性:1
  5. 通用选择器

    • 通用选择器的特异性为 0。
    • 特异性:0

层叠规则

当多个选择器匹配同一元素时,CSS 将根据以下规则决定应用哪个样式:

  1. 特异性:特异性高的选择器优先级更高。
  2. 来源顺序:如果特异性相同,后定义的样式将覆盖先前定义的样式。
  3. 重要性:使用 !important 声明的样式将覆盖其他样式(即使它们的特异性更高)。

示例

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>CSS Selectors</title><style>/* 通用选择器 */* {margin: 0;padding: 0;}/* 类型选择器 */p {color: blue;}/* 类选择器 */.highlight {color: yellow;}/* ID 选择器 */#main {color: red;}/* 内联样式 */<p style="color: green;">This is a paragraph.</p></style>
</head>
<body><div id="main"><p class="highlight">This is a highlighted paragraph.</p><p>This is a normal paragraph.</p></div>
</body>
</html>

在这个示例中,特异性和层叠规则将决定每个段落的颜色。内联样式的段落将显示为绿色,因为它具有最高的特异性。

http://www.dtcms.com/a/315284.html

相关文章:

  • 虚拟机中查看和修改文件权限
  • MoonBit Pearls Vol.04:用MoonBit 探索协同式编程
  • Spring Security 认证与授权实现机制
  • 随机森林知识点整理:从原理到实战
  • 课题学习4——将原系统的BERT换为SBERT
  • 【网络运维】Linux:RAID存储技术
  • 单类别目标检测中的 Varifocal Loss 与 mAP 评估:从原理到实践(特别前景和背景类区分)
  • Transformer核心机制:QKV全面解析
  • 图片处理工具类:基于 Thumbnailator 的便捷解决方案
  • Unsloth 大语言模型微调工具介绍
  • 数据结构:反转链表(reverse the linked list)
  • 机器视觉的产品包装帖纸模切应用
  • 深度学习-卷积神经网络CNN-卷积层
  • JMeter的基本使用教程
  • 嵌入式学习之51单片机——串口(UART)
  • STM32F103C8-定时器入门(9)
  • slwl2.0
  • Azure DevOps — Kubernetes 上的自托管代理 — 第 5 部分
  • 05-Chapter02-Example02
  • 微软WSUS替代方案
  • Redis与本地缓存的协同使用及多级缓存策略
  • 【定位设置】Mac指定经纬度定位
  • Spring--04--2--AOP自定义注解,数据过滤处理
  • Easysearch 集成阿里云与 Ollama Embedding API,构建端到端的语义搜索系统
  • Shell第二次作业——循环部分
  • 【科研绘图系列】R语言绘制解释度条形图的热图
  • 中标喜讯 | 安畅检测再下一城!斩获重庆供水调度测试项目
  • 松鼠 AI 25 Java 开发 一面
  • 【慕伏白】Android Studio 配置国内镜像源
  • Vue3核心语法进阶(Hook)