CSS 伪元素和伪类的用法和区别

ops/2024/10/21 19:42:50/

伪元素

伪元素则基于元素的位置来添加内容或样式

在内容元素的前后插入额外的元素或样式,但是这些元素实际上并不在文档中生成。它们只在外部显示可见,但不会在文档的源代码中找到它们,因此,称为“伪”元素。

伪元素通常用双冒号::来表示 (在实际使用中,一些旧的伪元素如:before:after仍然被广泛接受)

常见的伪元素:

  1. ::before::after:用于在选定元素的内容之前和之后插入内容
    通常与content属性一起使用,可以插入文本、图像或其他内容。
    它们不占用DOM节点,使得CSS能够解决一部分JavaScript的问题,同时避免增加无意义的页面元素。

  2. ::first-line:用于选择元素的第一行文本
    允许开发者为元素的首行文本应用特殊的样式。

  3. ::first-letter:用于为块级元素的第一个字母设置样式
    常用于设计特殊的首字下沉或装饰性效果。

  4. ::selection:定义用户选择(或高亮)文本时的样式
    可以自定义选中文本的背景色、字体颜色等外观。

  5. ::placeholder:用于选择输入框的占位符文本
    允许开发者为占位符文本设置样式。

伪元素通常与其他选择器一起使用,以指定要应用样式的具体元素。

这些伪元素提供了在不增加实际DOM元素的情况下,为页面元素添加样式和内容的能力,使得CSS的设计更加灵活和富有创意。


伪类

伪类基于元素的状态来添加特殊效果

将特殊的效果添加到特定选择器上。它是已有元素上添加类别的,不会产生新的元素。

伪类通常用单冒号:来表示

常见的伪类:

  1. :hover:这个伪类用于鼠标悬停在元素上时改变元素的样式
    通常用于定义元素的悬停效果,如改变颜色、背景或显示额外的信息。

  2. :active:当元素被用户激活时(如鼠标点击但还未释放时),该伪类用于改变元素的样式
    它通常用于表示元素被点击的状态。

  3. :focus:用于元素获得焦点时的样式
    例如,在输入框中键入文本时,输入框会获得焦点,此时可以使用:focus来改变输入框的边框颜色或样式。

  4. :visited:用于已访问的链接
    可以改变其颜色或样式,以区分已访问和未访问的链接。

  5. :first-child:用于选择其父元素的第一个子元素,并为其应用特定的样式。

  6. :last-child:用于选择其父元素的最后一个子元素(与:first-child相反)

  7. :not():用于排除某些元素,只选择不符合特定条件的元素。

  8. :checked:用于表单元素,特别是单选框和复选框,当元素被选中时,会应用特定的样式。

  9. :nth-child(n):nth-of-type(n):用于选择父元素的第n个子元素或特定类型的第n个子元素
    例如,:nth-child(odd)和:nth-child(even)可以用于选择奇数和偶数行,实现表格的斑马线效果。

  10. :empty:这个伪类用于选择没有子元素的元素。

这些伪类通常与CSS类选择器和ID选择器一起使用,以实现更多的样式控制。


http://www.ppmy.cn/ops/7481.html

相关文章

9.列表渲染

列表渲染 我们可以使用 v-for 指令基于一个数组来渲染一个列表。v-for 指令的值需要使用 item in items 形式的特殊语法&#xff0c;其中 items 是源数据的数组&#xff0c;而 item 是迭代项的别名 <template><div><p v-for"item in names">{{ it…

Chrome 侧边栏开发示例

前言 最近做项目&#xff0c;需要开发浏览器扩展&#xff0c;但是考虑页面布局兼容性问题&#xff0c;使用了Chrome114开始的侧边栏&#xff0c;浏览器自带的能力毕竟不会出现兼容性问题&#xff0c;不过Chrome123开始&#xff0c;侧边栏居然又可以选择固定右侧扩展栏了&#…

mklink 命令的使用(适用场景:C盘爆满,转移到其他盘)

一、背景 将Oracle数据库安装在D盘&#xff0c;由于磁盘爆满&#xff0c;需要将数据库转移到其他磁盘&#xff08;如&#xff1a;J盘&#xff09;。 在移动数据库之后&#xff0c;会出现数据库无法使用的情况&#xff0c;这时该如何解决&#xff1f;经了解&#xff0c;可以使用…

GPT状态和原理 - 解密OpenAI模型训练

目录 1 如何训练 GPT 助手 1.1 第一阶段 Pretraining 预训练 1.2 第二阶段&#xff1a;Supervised Finetuning有监督微调 1.3 第三阶段 Reward Modeling 奖励建模 1.4 第四阶段 Reinforcement Learning 强化学习 1.5 总结 2 第二部分&#xff1a;如何有效的应用在您的应…

解析OceanBase v4.2函数索引进行查询优化

一、如何通过函数索引来进行查询优化 函数索引是一种优化查询的技术&#xff0c;其主要作用在于提升包含函数调用的查询语句的执行速度。当查询语句中包含函数调用时&#xff0c;数据库系统需要逐行执行函数计算&#xff0c;这无疑会增加查询的复杂性&#xff0c;导致查询速度…

leetcode刷题(python)——(六)

01.03.07 练习题目&#xff08;第 06 天&#xff09; 1. 0506. 相对名次 1.1 题目大意 描述&#xff1a;给定一个长度为 n n n 的数组 s c o r e score score。其中 s c o r e [ i ] score[i] score[i] 表示第 i i i 名运动员在比赛中的成绩。所有成绩互不相同。 要求&…

色彩的魔力:渐变色在设计中的无限可能性

夕阳&#xff0c;天空&#xff0c;湖面&#xff0c;夕阳...随着距离和光影的变化&#xff0c;颜色的渐变色&#xff0c;近大远小、近实远虚的透视&#xff0c;为大自然营造了浪漫的氛围。延伸到UI/UX设计领域&#xff0c;这种现实、惊艳、独特的渐变色也深受众多设计师的喜爱。…

堆的概念、堆的向下调整算法、堆的向上调整算法、堆的基本功能实现

目录 堆的介绍 堆的概念 堆的性质 堆的结构 堆的向下调整算法 基本思想&#xff08;以建小堆为例&#xff09; 代码 堆的向上调整算法 基本思想&#xff08;以建小堆为例&#xff09; 代码 堆功能的实现 堆的初始化 HeapInit 销毁堆 HeapDestroy 打印堆 HeapPrint …