介绍一下CSS中伪类和伪元素的概念

一、伪类(Pseudo - Classes)

1. 定义

伪类是添加到选择器的关键字,用于定义元素的特殊状态。这些状态不是由文档树中的结构或属性来表示,而是基于用户行为(如鼠标悬停)、元素状态(如被选中)或文档结构的特定位置(如第一个子元素)等来确定。

2. 常见伪类

(1)链接伪类
  • :link:用于选择未被访问的链接。例如,a:link {color: blue;}会将未访问的链接文字颜色设置为蓝色。
  • :visited:用于选择已经被访问过的链接。由于隐私原因,可用于设置已访问链接的样式属性相对有限,主要是颜色相关属性。例如,a:visited {color: purple;}会将已访问的链接文字颜色设置为紫色。
(2)用户行为伪类
  • :hover:当鼠标指针悬停在元素上方时应用样式。这是创建交互效果的常用伪类。例如,button:hover {background - color: lightgray;},当鼠标悬停在按钮上时,按钮的背景颜色会变为浅灰色。
  • :active:在元素被激活(如按下鼠标按键但尚未松开)时应用样式。例如,a:active {color: red;},当用户点击链接但尚未松开鼠标时,链接文字颜色变为红色。
(3)结构伪类
  • :first - child:选择作为其父元素的第一个子元素的元素。例如,li:first - child {font - weight: bold;}会将列表中的第一个li元素字体加粗。
  • :last - child:选择作为其父元素的最后一个子元素的元素。例如,p:last - child {text - align: right;}会将父元素中最后一个p元素右对齐。
  • :nth - child(n):选择作为其父元素的第 n 个子元素的元素。其中 n 可以是一个数字(如3表示第三个子元素)、关键字(如even表示偶数位置的子元素,odd表示奇数位置的子元素)或表达式(如2n + 1表示从第一个子元素开始,每隔一个元素选择一个,即选择位置为 1、3、5 等的子元素)。例如,tr:nth - child(even) {background - color: #f2f2f2;}会将表格中偶数行的背景颜色设置为浅灰色。

二、伪元素(Pseudo - Elements)

1. 定义

伪元素用于创建文档树中不存在的虚拟元素,并为其添加样式。它们允许你对元素的特定部分进行样式设置,就好像这些部分是独立的元素一样。

2. 常见伪元素

(1)::before 和::after
  • ::before:在被选元素的内容前面插入内容。例如,p::before {content: "前置内容";}会在每个p段落元素的内容前面添加 “前置内容” 字样。
  • ::after:在被选元素的内容后面插入内容。例如,p::after {content: "后置内容";}会在每个p段落元素的内容后面添加 “后置内容” 字样。这些插入的内容可以是文本、图像等,并且可以通过其他 CSS 属性进行样式设置,如colorfont - size等。
(2)::first - letter 和::first - line
  • ::first - letter:用于对元素的第一个字母进行特殊样式设置。常用于对段落的首字母进行放大、改变颜色等操作。例如,p::first - letter {font - size: 200%; color: red;}会将每个p段落的第一个字母字体大小放大为原来的 2 倍,并设置为红色。
  • ::first - line:用于对元素内容的第一行进行特殊样式设置。例如,p::first - line {text - decoration: underline;}会在每个p段落的第一行添加下划线。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/889396.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

React 第十六节 useCallback 使用详解注意事项

useCallback 概述 1、useCallback 是在React 中多次渲染缓存函数的 Hook,返回一个函数的 memoized的值; 2、如果多次传入的依赖项不变,那么多次定义的时候,返回的值是相同的,防止频繁触发更新; 3、多应用在 父组件为函…

Chrome webdriver下载-避坑

WebDriver以原生的方式驱动浏览器,不需要调整环境变量。 一、window版 1.chrome和chromedriver下载地址: Chrome for Testing availability 我下载的是如下两个安装包,解压即可。 2.导包 pip install selenium然后用python代码引用即可…

PyQt事件机制练习

一、思维导图 二、代码 import sysfrom PyQt6.QtTextToSpeech import QTextToSpeech from PyQt6.QtWidgets import QApplication, QWidget, QLabel, QPushButton, QLineEdit from PyQt6 import uic from PyQt6.QtCore import Qt, QTimerEvent, QTimeclass MyWidget(QWidget):d…

【Rive】Android与Rive交互

1 Android与Rive交互的常用接口 1.1 RiveAnimationView参数 <app.rive.runtime.kotlin.RiveAnimationViewandroid:id"id/rive_view"android:layout_width"match_parent"android:layout_height"match_parent"android:adjustViewBounds"…

Maven、mybatis框架

一、Maven介绍 1.概念&#xff1a; Maven项目对象模型(POM)&#xff0c;可以通过一小段描述信息来管理项目的构建&#xff0c;报告和文档的项目管理工具软件。 2.为啥使用maven: 之前项目中需要引入大量的jar包。这些jar从网上下载&#xff0c;可能下载地址不同意。这些jar之间…

使用 Python 爬取某网站简历模板(bs4/lxml+协程)

使用 Python 爬取站长素材简历模板 简介 在本教程中&#xff0c;我们将学习如何使用 Python 来爬取站长素材网站上的简历模板。我们将使用requests和BeautifulSoup库来发送 HTTP 请求和解析 HTML 页面。本教程将分为两个部分&#xff1a;第一部分是使用BeautifulSoup的方法&am…

HCIA-Access V2.5_2_2网络通信基础_TCP/IP协议栈报文封装

TCP/IP协议栈的封装过程 用户从应用层发出数据先会交给传输层&#xff0c;传输层会添加TCP或者UDP头部&#xff0c;然后交给网络层&#xff0c;网络层会添加IP头部&#xff0c;然后交给数据链路层&#xff0c;数据链路层会添加以太网头部和以太网尾部&#xff0c;最后变成01这样…

数据湖治理最佳实践

如果没有最佳实践&#xff0c;存储可能会变得无法维护。自动化数据质量、生命周期和隐私功能可持续清理/移动数据湖中的数据。数据湖正成为企业从大数据中提取价值的一种日益可行的解决方案&#xff0c;对于早期采用者和新用户来说都是合理的下一步。在独立的逻辑区域中随时可用…

ssd202d-badblock-坏块检测

这边文章讲述的是坏快检测功能 思路&#xff1a; 1.第一次烧录固件会实现跳坏块&#xff0c;但是后续使用会导致坏块的产生&#xff1b; 于是我在uboot环境变量添加了两个变量来控制坏快 lb_badnum //坏块个数 lb_badoff //坏块所在位置 2.第一次开机会根据lb_badnum是否…

鸿蒙ArkTS如何实现数据可视化:饼状图/柱状图/折线图

鸿蒙数据可视化系列 在我们鸿蒙APP开发中&#xff0c;经常需要使用到一些图表的开发&#xff0c;本文主要介绍使用 McCharts 框架绘制柱状图的方法 配套指导视频地址&#xff1a;鸿蒙数据可视化系列-McCharts使用介绍_哔哩哔哩_bilibili 1. 第三方库介绍 1.1. McCharts Mc…

unity打包sdk热更新笔记

Unity3D项目Plugins目录组织 https://blog.csdn.net/linxinfa/article/details/102978005 IPreprocessBuild 继承提供打包前&#xff0c;打包后接口 BuildAssetBundles UnityWebRequest’s DownloadHandlerAssetBundle / LoadFromFile / LoadFromMemoryAsync 数据完整性校…

使用秘钥登录服务器

在我们测试或生产环境中&#xff0c;为了服务器安全性&#xff0c;有时可能需要以 SSH 密钥的方式登录服务器&#xff0c;接下来&#xff0c;将演示如何通过 SSH 私钥的方式来远程服务器。 一、远程服务器生成密钥对 1、首先在目标远程服务器下生成 SSH 密钥对 ssh-keygen然…

谷粒商城—分布式基础

1. 整体介绍 1)安装vagrant 2)安装Centos7 $ vagrant init centos/7 A `Vagrantfile` has been placed in this directory. You are now ready to `vagrant up` your first virtual environment! Please read the comments in the Vagrantfile as well as documentation on…

TimesFM(Time Series Foundation Model)安装(2)

TimesFM&#xff08;Time Series Foundation Model&#xff09;安装简介 readme TimesFM&#xff08;Time Series Foundation Model&#xff09;安装简介&#xff08;1&#xff09;-CSDN博客https://blog.csdn.net/chenchihwen/article/details/144359861?spm1001.2014.3001…

Cesium进阶教程——自定义图形、外观、绘图基础、现有着色器移植至Cesium、ShadowMapping、视频GIS、模型压平、卷帘

基础必看 https://blog.csdn.net/m0_55049655/article/details/139720401 参考路线 http://www.xt3d.online/tutorial/further/article.html 自定义图形 https://blog.csdn.net/m0_55049655/article/details/138908327 https://blog.csdn.net/m0_55049655/article/details/14…

国际荐酒师(香港)协会亮相第六届地博会助力中欧地标交流合作

国际荐酒师&#xff08;香港&#xff09;协会亮相第六届知交会暨地博会&#xff0c;助力中欧地理标志产品交流合作 12月9日&#xff0c;第六届粤港澳大湾区知识产权交易博览会暨国际地理标志产品交易博览会&#xff08;以下简称“第六届知交会暨地博会”&#xff09;在中新广州…

spring boot之@Import注解的应用

我们知道spring boot会通过ComponentScan定义包扫描路径进行业务定义的bean的加载&#xff0c;但是对于很多不在此包路径下定义的bean怎么办呢&#xff1f;比如其他jar包中定义的。这时候import就发挥作用了&#xff0c;通过它也可以实现bean的定义。具体是怎么做的呢&#xff…

【Liunx篇】基础开发工具 - vim

文章目录 一.vim的基本概念1.正常/命令模式2.插入模式3.底行模式/末行模式4.视图模式5.替换模式 二.vim的基本操作1.进入vim&#xff1a;2.退出vim: 三.vim正常模式命令集1.光标定位&#xff1a;2.复制/粘贴3.撤销4.剪切/删除5. 更改 四.vim底行模式命令集1.保存/退出2.调出行号…

Windows安装WSL子系统及docker,以及WSL和docker配置、使用及问题解决

在Windows操作系统中,Ubuntu子系统(也称为Windows Subsystem for Linux, WSL)为开发者提供了一个在Windows环境下运行Linux环境的平台。然而,有时用户在按照Ubuntu子系统或者使用WSL时,可能会遇到各种问题,下面总结一下解决方式。 想要在Windows上安装Docker(实际上是基…

【Golang】Go语言编程思想(六):Channel,第三节,使用Channel实现树的遍历

使用 Channel 实现树的遍历 tree 在此处简单回顾一下之前学过的二叉树遍历&#xff0c;首先新建一个名为 tree 的目录&#xff0c;并在其下对文件和子目录进行如下组织&#xff1a; 其中 node.go 存放的是 Node 的定义&#xff1a; package treeimport "fmt"type…