【从零开始学CSS | 第二篇】伪类选择器

目录

前言:

伪类选择器:

 常见的伪类选择器:

举例:

小窍门:

总结:


前言:

        上一篇文章我们详细的为大家介绍了一些常见的选择器,这几篇我们将再次介绍CSS中的一个常见选择器——伪类选择器,他的种类繁多,希望各位可以对它有一个比较好的掌握程度。

伪类选择器:

        伪类选择器是CSS中一种用于选择元素的特殊方式,通过在选择器后面使用冒号(:)和伪类名称的方式来指定。伪类选择器可以选择具有特定状态或条件的元素,而不仅仅是基于标签名或类名等静态的属性选择。

        伪类选择器可以与其他选择器结合使用,用于更精确地选择和应用样式到文档中的不同元素。

TIPS:
        伪类不是类,他只是元素的一种特殊状态,伪类是CSS中强大而灵活的工具,它们使得我们可以根据元素的不同状态和位置来设计更具交互性和动态性的样式。

 常见的伪类选择器:

1.:hover(悬停状态)
   当鼠标悬停在元素上时,可以为元素定义特定的样式。例如,当鼠标悬停在链接上时,可以改变链接的颜色或背景色:

   a:hover {color: red;background-color: yellow;}

2. :active(激活状态):
   当元素被激活(例如被点击)时,可以应用特定的样式。通常在按钮或链接上使用该伪类来给用户提供点击反馈:

 button:active {background-color: green;color: white;}

3. :focus(焦点状态):
   当元素获得焦点时,可以应用特定的样式。主要用于表单元素,以便在用户输入时突出显示当前焦点的元素:

   input:focus {border: 2px solid blue;}

4. :visited(已访问链接):
   选择已经访问过的链接,并为其设置特定的样式。这通常用于改变已访问链接的颜色,以便用户可以区分哪些链接已经点击过:

   a:visited {color: purple;}

5. :first-child(第一个子元素):
   选择父元素的第一个子元素,并为其设置样式。这可以用于选择列表中的第一个元素或其他需要突出显示第一个子元素的情况 :

   li:first-child {font-weight: bold;}

6. :last-child(最后一个子元素):
   选择父元素的最后一个子元素,并为其设置样式。这可以用于选择列表中的最后一个元素或其他需要突出显示最后一个子元素的情况:

 li:last-child {margin-bottom: 0;}

7. :nth-child(n)(第n个子元素):
   选择父元素中特定位置的子元素,并为其设置样式。可以使用这个伪类选择器根据子元素的位置来应用样式,其中n是一个表示位置的数值:

    p:nth-child(2) {color: blue;}

上述示例将选择父元素中的第二个`<p>`元素并将其文本颜色设置为蓝色。

举例:

      例如我们建立一个a标签,我们都知道如果a标签访问后就会变为紫色,未访问的时候是蓝色,此时如果我们想要a标签未访问的时候是红色访问了就是正常的紫色。我们之前学的知识就无法办到!

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>a{color: red;}</style>
</head>
<body><a href="https://www.bilibili.com/" target="_blank">去哔哩哔哩</a>
</body>
</html>

结果:

我们发现我们有没有对这个链接进行访问,”去哔哩哔哩“这个文本不管是否访问过始终都是红色,并不能够达到我们之前想要的结果,因此我们引入了伪类选择器这个概念,使用伪类选择器来选择具有特定状态或条件的元素。

正确写法:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>/* 选中的是没有访问过的A */a:link{color: red;}</style>
</head>
<body><a href="https://www.bilibili.com/" target="_blank">去哔哩哔哩</a>
</body>
</html>

访问前:

访问后:

小窍门:

        当我们伪类选择器对a标签进行修饰的时候,我们一般都有固定的顺序,分别是link->visited->hover->active

这是因为这个顺序可以确保样式规则被正确地应用。

  • :link 伪类选择器应用于未被访问过的链接,它指定了默认状态下的链接样式。这个伪类通常放在第一个,是因为它是最基本的状态,应该首先定义默认样式。
  • :visited 伪类选择器应用于已被访问过的链接,它指定了访问后链接的样式。它紧随`:link`之后,因为这两个伪类选择器是针对同一个元素的不同状态。
  • :hover 伪类选择器应用于当鼠标悬停在链接上时的状态,它指定了鼠标悬停时链接的样式。它排在前面是因为悬停状态有时是用户与链接进行交互的重要状态。
  • :active 伪类选择器应用于当链接被激活(例如鼠标按下或按键按下时)时的状态,它指定了被激活时链接的样式。它通常排在最后,因为它代表的是链接的瞬时状态,用户交互完成后不再保留。

        按照这个顺序编写样式规则,可以确保链接的样式按照预期的方式应用。此外,这个顺序也符合一般的使用习惯和开发者约定,有助于代码的可读性和维护性。

        如果不按照这个顺序来对a标签进行状态修饰,可能会导致有些修饰无法正常出现。

例如:

        我们想要a标签鼠标悬停的时候是红色,鼠标点击的时候是绿色,就应该严格遵守这个顺序:将hover  排在  active前面:

          a:hover{color: red;}a:active{color: darkgreen;}

如果颠倒顺序的话, 则当标签处于激活状态的时候,并不会显示绿色。

需要注意的是,并不是所有的伪类选择器都必须按照这个顺序进行排列。这个顺序更适用于`a`标签的伪类选择器,针对其他元素的伪类选择器可能有不同的顺序约定。

总结:

本章节我们详细的介绍了伪类选择器,它使我们能够特定的对标签的不同状态进行修饰,是一个很实用的选择器,但同时它的种类也很繁多,因此我们要多加记忆。

如果我的内容对你有帮助,请点赞,评论,收藏。创作不易,大家的支持就是我坚持下去的动力!

 

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

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

相关文章

设计模式之适配器模式

写在前面 适配器设计模式属于结构型设计模式的一种&#xff0c;本文一起来看下。 1&#xff1a;介绍 1.1&#xff1a;什么时候适配器设计模式 当现有接口客户端无法直接调用时&#xff0c;我们可以考虑适配器设计模式&#xff0c;来定义一个能够供客户端直接调用的接口&…

软件测试的分类

代码分类&#xff1a; 1、黑盒测试 2、白盒测试 3、灰黑测试 黑盒测试&#xff1a; 把测试的对象看成是一个黑色的盒子的&#xff0c;看不到里面内部的结构&#xff0c;是对软件的一种功能性的测试。 白盒测试&#xff1a; 就是把测试的对象看成是一个透明的盒子&#x…

测试老鸟总结,性能测试-最佳并发和最大并发,性能测试实施...

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 性能测试&#xf…

curl操作

下载路径&#xff1a;https://curl.se/windows/ 参考&#xff1a;https://blog.csdn.net/weixin_45191386/article/details/130652821 操作&#xff1a; curl http://localhost:8085/api/v1/aaa/bbbb/?ccc 652781344055627776

第四次CCF计算机软件能力认证

第一题&#xff1a;图像旋转 旋转是图像处理的基本操作&#xff0c;在这个问题中&#xff0c;你需要将一个图像逆时针旋转 90 度。 计算机中的图像表示可以用一个矩阵来表示&#xff0c;为了旋转一个图像&#xff0c;只需要将对应的矩阵旋转即可。 输入格式 输入的第一行包含两…

我国版式文档格式OFD前端WEB展示之EasyOFD

EasyOFD an ofd file web shower 一个在web端展示ofd文件的控件&#xff0c;该控件基于CANVAS绘制。 该控件使用了以下外部程序 1&#xff09;jszip&#xff1a;解决解压文件。 2&#xff09;x2js: 解决XML文件到JS转换 3&#xff09;easyjbig2: 解决ofd内部使用jb2文件存储的…

NSSCTF刷web(2)

[NISACTF 2022]bingdundun~ bingdundun处感觉像文件包含,改upload为index 发现确实,猜测会补一个后缀.php 那常规文件包含都不行了,这里还有一个文件上传的功能,考虑phar协议 <?php$phar new Phar("test.phar"); $phar->startBuffering(); $phar->setStu…

【excel细碎小知识点】

目录索引 &符号的用法&#xff1a;实例演示&#xff1a; 数字显示和位数的区别&#xff1a;分列功能的妙用&#xff1a;什么叫做常规类型&#xff1a; &符号的用法&#xff1a; **连接字符串:**转化后都是文本字符串类型。你可以通过修改数据类型进行更多可能的操作 实…

【Go语言开发】简单了解一下搜索引擎并用go写一个demo

写在前面 这篇文章我们一起来了解一下搜索引擎的原理&#xff0c;以及用go写一个小demo来体验一下搜索引擎。 简介 搜索引擎一般简化为三个步骤 爬虫&#xff1a;爬取数据源&#xff0c;用做搜索数据支持。索引&#xff1a;根据爬虫爬取到的数据进行索引的建立。排序&#xf…

prometheus调整默认数据存储时间

调整kubernetes部署的prometheus数据存储时间 由于prometheus是用kuberentes部署的&#xff0c;没办法像传统部署方式那种直接在启动参数增加存储时间的参数。需要在configmap里或者在deployment里添加&#xff0c;我这里使用的方式是在deployement里添加调整存储时间的参数。…

学会在重装系统前如何备份软件,再也不怕失去珍贵的应用!

​Windows系统是电脑的重要组成部分&#xff0c;它不仅提供了友好的用户界面&#xff0c;还承担着许多关键的功能和任务&#xff0c;为我们提供了一个稳定、安全和效率的工作环境&#xff0c;使我们能够充分发挥电脑的潜力&#xff0c;优化工作效率和生活品质。 随着系统使…

为 GitHub 设置 SSH 密钥

1. 起因 给自己的 github 改个名&#xff0c;顺便就给原来 Hexo 对应的仓库也改了个名。然后发现 ubhexo clean && hexo generate && hexo deploy 失败了&#xff0c;报错如下&#xff1a; INFO Deploying: git INFO Clearing .deploy_git folder... INFO …

软件渗透测试真的很重要吗?渗透测试有哪些测试流程?

软件渗透测试是指通过模拟恶意攻击者的行为&#xff0c;评估软件系统中的潜在安全漏洞和弱点的活动。这种安全测试方法能够帮助开发人员和系统管理员发现并修复潜在的安全漏洞&#xff0c;以确保软件系统的安全性和完整性。软件渗透测试是一项高度技术性的任务&#xff0c;需要…

如何使用MATLAB软件完成生态碳汇涡度相关监测与通量数据分析

MATLAB MATLAB是美国MathWorks公司出品的商业数学软件&#xff0c;用于数据分析、无线通信、深度学习、图像处理与计算机视觉、信号处理、量化金融与风险管理、机器人&#xff0c;控制系统等领域。 [1] MATLAB是matrix&laboratory两个词的组合&#xff0c;意为矩阵工厂&a…

postgresql导入导出数据库的一些问题

新建一个数据库 别忘了添加空间数据的扩展 备份之前的数据库 注意一定要自定义表&#xff0c;去掉 spatial_ref_sys &#xff0c;要不然需要先drop在创建&#xff0c;可能会报错。 一般不会去导函数&#xff0c;如果有个别自己创建的函数可以手动复制一下&#xff0c;全部导的话…

Centos 7 使用国内镜像源更新内核

内核选择参考 此博文 &#xff1a;https://blog.csdn.net/alwaysbefine/article/details/108931626 elrepo官网介绍的内核升级方式为&#xff1a; 一、按文档执行引入 elrepo库&#xff1b; # 1、引入公钥 rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org# 2、安…

系统学习Linux-SSH远程服务(二)

概念 安全外壳协议&#xff0c;提供安全可靠的远程连接 特点 ssh是工作在传输层和应用层的协议 ssh提供了一组管理命令 ssh 远程登陆 scp 远程拷贝 sftp 远程上传下载 ssh-copy-id ssh keygen 生成 提供了多种身份验证机制 身份验证机制 密码验证 需要提供密码 密…

计算机网络 day6 arp病毒 - ICMP协议 - ping命令 - Linux手工配置IP地址

目录 arp协议 arp病毒\欺骗 arp病毒的运行原理 arp病毒产生的后果&#xff1a; 解决方法&#xff1a; ICMP协议 ICMP用在哪里&#xff1f; ICMP协议数据的封装过程 ​编辑 为什么icmp协议封装好数据后&#xff0c;还要加一个ip包头&#xff0c;再使用ip协议再次进…

Android Hook技术实战详解

前些天发现了一个蛮有意思的人工智能学习网站,8个字形容一下"通俗易懂&#xff0c;风趣幽默"&#xff0c;感觉非常有意思,忍不住分享一下给大家。 &#x1f449;点击跳转到教程 前言&#xff1a; 什么是Android Hook技术&#xff1f; Android Hook技术是指在Android…

matlab重名函数调用踩坑记录

我新安装了matlab的robotics toolbox&#xff0c;然而调用的rotx不是我想要的函数。 我上网查了一下资料&#xff0c;知乎和csdn有相关的回答&#xff0c;但是我试了一下还是不行。它们的方法是移除路径再添加路径避免函数的冲突。相关方法放在文末的相关参考1 2。这里建议先用…