伪类和伪元素

简介: 伪类和伪元素是 CSS 中用于扩展选择器功能的两种特性,无需额外的 HTML 标签即可创建复杂的样式规则。

伪类和伪元素是 CSS 中用于处理选择器的两种特殊功能。它们允许开发者在样式中创建更复杂和灵活的规则,而无需在 HTML 文档中添加额外的标签。

伪类 (Pseudo-class)

伪类作用于元素的特定状态。它们用于选择元素在某种条件下的样式,例如鼠标悬停或焦点状态。伪类以冒号(:)开头。

常见的伪类示例:

  1. :hover: 当用户将鼠标悬停在元素上时应用的样式。

    a:hover {
         
        color: red; /* 当鼠标悬停在链接上时,将文本颜色设置为红色 */
    }
    
  2. :active: 当元素处于活动状态时应用的样式,例如当用户按下鼠标按钮。

    a:active {
         
        color: blue; /* 当链接被点击时,将文本颜色设置为蓝色 */
    }
    
  3. :focus: 当元素获得焦点时应用的样式,通常用于输入框。

    input:focus {
         
        border: 2px solid green; /* 当输入框获得焦点时,将边框设置为绿色 */
    }
    
  4. :nth-child(n): 选择父元素下的第 n 个子元素。

    li:nth-child(2) {
         
        font-weight: bold; /* 将每个父元素下的第二个列表项设置为粗体 */
    }
    

伪元素 (Pseudo-element)

伪元素用于选择元素的特定部分,允许开发者在实际的 DOM 结构中没有定义的情况下添加样式。伪元素以双冒号(::)开头(尽管单冒号(:)也被广泛支持)。

常见的伪元素示例:

  1. ::before: 在元素的内容前插入内容。

    p::before {
         
        content: "注意:"; /* 在每个段落前插入“注意:” */
        font-weight: bold;
    }
    
  2. ::after: 在元素的内容后插入内容。

    p::after {
         
        content: " — 结束"; /* 在每个段落后插入“— 结束” */
    }
    
  3. ::first-line: 选择文本的第一行,用于对首行文本应用特殊样式。

    p::first-line {
         
        font-weight: bold; /* 将每个段落的第一行加粗 */
    }
    
  4. ::first-letter: 选择文本的第一个字母。

    p::first-letter {
         
        font-size: 2em; /* 将段落的第一个字母的字体大小设置为 2 倍 */
    }
    

总结

  • 伪类:用于表示元素的特定状态,通常与用户的交互有关,如悬停、焦点等,以冒号(:)表示。
  • 伪元素:用于选择元素的特定部分,允许对元素的内容进行样式处理,以双冒号(::)表示。

二者结合使用,可以极大丰富网页的视觉效果和交互体验。

相关文章
|
3月前
|
缓存 网络协议 关系型数据库
01丨核心原理:能否画张图解释下 RPC 的通信流程
RPC(远程过程调用)是一种实现跨服务透明调用的技术,屏蔽网络通信细节,让开发者像调用本地方法一样调用远程服务。本文深入解析RPC的定义、核心原理与通信流程,涵盖序列化、协议设计、动态代理等关键环节,并探讨其在微服务架构中的核心作用,帮助开发者理解如何高效构建分布式系统。
189 4
|
算法 固态存储 关系型数据库
|
Kubernetes Cloud Native 安全
云原生|kubernetes|多集群管理之kubeconfig文件配置和使用(定义,使用方法,合并管理多集群)(一)
云原生|kubernetes|多集群管理之kubeconfig文件配置和使用(定义,使用方法,合并管理多集群)
2567 0
云原生|kubernetes|多集群管理之kubeconfig文件配置和使用(定义,使用方法,合并管理多集群)(一)
|
2月前
|
监控 数据可视化 前端开发
紧急Bug处理:流程、四阶段控制法及工具方法
本文系统阐述了紧急Bug处理的核心原则、四级分类标准(P0-P3)及四阶段标准化流程(响应、诊断、执行、复盘),强调“控制影响优先于完美修复”。配套工具链涵盖告警聚合、协作指挥、诊断分析与知识沉淀,并提供自动化脚本示例,提升团队应急响应效率与系统稳定性。
|
开发框架 前端开发 Android开发
安卓与iOS开发中的跨平台框架解析
在移动应用开发的广阔舞台上,安卓和iOS一直是两大主角。随着技术的进步,开发者们渴望能有一种方式,让他们的应用能同时在这两大平台上运行,而不必为每一个平台单独编写代码。这就是跨平台框架诞生的背景。本文将探讨几种流行的跨平台框架,包括它们的优势、局限性,以及如何根据项目需求选择合适的框架。我们将从技术的深度和广度两个维度,对这些框架进行比较分析,旨在为开发者提供一个清晰的指南,帮助他们在安卓和iOS的开发旅程中,做出明智的选择。
|
存储 人工智能 自然语言处理
《百炼成金-大金融模型新篇章》––11.构建金融级AI原生的蓝图
百炼必定成金,新质生产力会催生新质劳动力,谨以此文抛砖引玉,希望与业内的各位朋友一同探讨如何积极拥抱并运用大模型技术,以应对和驾驭不断变化的市场环境,实现科技金融持续稳定的提质增效和创新发展,携手开启金融大模型未来新篇章。
698 4
|
存储 监控 Serverless
阿里泛日志设计与实践问题之Grafana Loki在日志查询方案中存在哪些设计限制,如何解决
阿里泛日志设计与实践问题之Grafana Loki在日志查询方案中存在哪些设计限制,如何解决
293 0
|
机器学习/深度学习 自然语言处理 算法
自然语言处理 (NLP) 的 5 个步骤
自然语言处理 (NLP) 的 5 个步骤
自然语言处理 (NLP) 的 5 个步骤
|
前端开发 Java C#
C#语言的优缺点?
C#语言的优缺点?
799 4
|
JavaScript 前端开发
如何在JS中声明一个对象
如何在JS中声明一个对象
375 0