伪类和伪元素

简介: 伪类和伪元素是 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月前
|
Kubernetes 供应链 安全
云原生环境下的容器安全与最佳实践
云原生时代,容器与 Kubernetes 成为企业应用核心基础设施,但安全挑战日益突出。本文探讨容器安全现状与对策,涵盖镜像安全、运行时防护、编排系统风险及供应链安全,提出最小权限、漏洞扫描、网络控制等最佳实践,并结合阿里云 ACK、ACR 等服务提供全链路解决方案,展望零信任、AI 安全与 DevSecOps 融合趋势。
152 4
|
3月前
|
SQL 存储 关系型数据库
MySQL体系结构详解:一条SQL查询的旅程
本文深入解析MySQL内部架构,从SQL查询的执行流程到性能优化技巧,涵盖连接建立、查询处理、执行阶段及存储引擎工作机制,帮助开发者理解MySQL运行原理并提升数据库性能。
|
5月前
|
人工智能 自然语言处理 前端开发
API赋能:从大模型到智能应用的“最短路径”
在AI技术迅猛发展的今天,大模型已成为智能应用的核心驱动力。本文探讨如何通过API这一“数据桥梁”,高效对接大模型,实现智能应用开发。内容涵盖API的核心价值、分类与适用场景,API对接的关键实践步骤,以及如何通过前后端分离、AI Agent和低代码平台等新范式提升开发效率。结合医疗影像分析与智能教育平台等案例,展示API如何改变传统开发模式。展望未来,随着模型即服务(MaaS)和智能化API的发展,智能应用开发将迈向更广阔的新时代。
|
存储 分布式计算 监控
Java一分钟之-Hazelcast:内存数据网格
【6月更文挑战第17天】**Hazelcast是开源的内存数据网格(IMDG),加速分布式环境中的数据访问,提供内存存储、分布式计算、线性扩展及高可用性。常见挑战包括内存管理、网络分区和数据分布不均。通过配置内存限制、优化网络和分区策略可避免问题。示例展示如何创建Hazelcast实例并使用分布式Map。使用Hazelcast提升性能和扩展性,关键在于理解和调优。**
539 1
|
12月前
|
人工智能 监控 安全
自学记录鸿蒙 API 13:实现人脸检测 Core Vision Face Detector
本文介绍了基于HarmonyOS Next API 13中的Core Vision Face Detector API实现人脸检测小应用的过程。通过研究发现,该API不仅支持人脸检测框的定位,还能识别关键点(如眼睛、鼻子和嘴角位置)及人脸姿态信息。文章详细记录了开发历程,包括项目初始化、权限配置、图像加载与人脸检测、用户界面设计,以及性能优化和功能扩展的思路。应用场景涵盖身份验证、照片管理和实时交互等。未来计划将技术应用于智能照片管理工具,提供更高效的照片分类体验。欢迎对人脸检测技术感兴趣的读者一起探讨和进步。
464 7
|
6月前
|
存储 机器学习/深度学习 自然语言处理
避坑指南:PAI-DLC分布式训练BERT模型的3大性能优化策略
本文基于电商搜索场景下的BERT-Large模型训练优化实践,针对数据供给、通信效率与计算资源利用率三大瓶颈,提出异步IO流水线、梯度压缩+拓扑感知、算子融合+混合精度等策略。实测在128卡V100集群上训练速度提升3.2倍,GPU利用率提升至89.3%,训练成本降低70%。适用于大规模分布式深度学习任务的性能调优。
325 3
|
监控 安全 网络安全
Windows系统安全深度解析:挑战、策略与全面防护
对敏感数据进行加密是保护数据机密性的重要手段。使用强加密算法对敏感数据进行加密存储和传输,即使数据被窃取也无法被轻易解密。此外,还可以考虑使用全磁盘加密技术来保护整个系统的数据安全性。
|
前端开发 JavaScript API
组件化设计有哪些缺点吗
【10月更文挑战第22天】组件化设计有哪些缺点吗
|
Web App开发 监控 安全
|
弹性计算 网络安全
ecs的vpc,交换机和安全组的关系
简单梳理下vpc,交换机,安全组的关系
1968 0
ecs的vpc,交换机和安全组的关系