当前位置: 首页 > news >正文

【CSS】伪类选择器有什么用?有哪些是常用的伪类?

大家好,我是翼同学!

目录

  • 1️⃣<font color='purple'>前言
  • 2️⃣<font color='purple'>链接伪类选择器
    • 🌱a:link
    • 🌱a:hover
    • 🌱a:visited
    • 🌱a:active
    • 🖊️注意事项
  • 3️⃣<font color='purple'>其他伪类
  • 4️⃣<font color='purple'>写在最后

1️⃣前言

今天刚学了伪类选择器,记录一下以便复习。

什么是伪类选择器?伪类选择器可以根据标签的不同状态可以设置不同的样式,用于添加特殊效果或者动态状态等,其书写特点是用冒号“:”表示。

具体语法如下:

普通选择器:伪类选择器 { 样式表明; }

伪类选择器有很多,本篇笔记重点记录用于修饰链接的伪类选择器。


2️⃣链接伪类选择器

我们页面中的超链接其实有四种状态,如下所示:

  • 状态一:链接未被访问的状态
  • 状态二:鼠标滑过链接的状态
  • 状态三:链接已被访问的状态
  • 状态四:鼠标按下链接但并未松开时的状态

这四种状态分别对应着四种伪类选择器。

我们可以根据需求来修改链接不同状态下的样式。


🌱a:link

不同浏览器对于未被访问的链接都有默认的样式美化,默认情况下,未被访问的链接,其样式为:带有下划线的蓝色文本。以谷歌浏览器为例,看下图。

在这里插入图片描述

此时若要修改未被访问的链接的样式,则可以使用a:link伪类,举个例子:

a:link {
    color:red;
}

效果如下所示:

🌱a:hover

:hover伪类选择器的使用频率较高。具体怎么用呢?

当我们浏览一些网页,鼠标悬停在某个链接文本上时,该链接就会发生样式改变。这种效果就是用:hover伪类实现的。

举个例子:

a:hover {
    color: red;
}

链接文本的默认下是蓝色的,通过CSS样式设置为,当鼠标悬停在链接上时变为红色。

效果如下:


🌱a:visited

在网页中,对于已经访问过的链接,浏览器默认样式显示为:带有下划线的紫色文本

如下所示:

学完a:visited伪类后,我们可以根据需求设置已被访问的链接样式。

举个例子,我们将访问过后的链接呈现为绿色,如下所示:

a:visited {
    color: green;
}


🌱a:active

怎么理解这个状态下的链接呢?

简单的说就是鼠标按下链接的同时并未松开手,此时处于点击链接的状态

默认情况下该状态为红色。

举个例子,要求当鼠标按下链接不放开时,链接表现为黑色,代码如下:

a:active {
    color:black;
}

效果为:


🖊️注意事项

使用链接伪类选择器时,需要注意的是定义顺序

简单的说,当有多个链接伪类选择器需要被定义时,有一定的顺序要求。

具体如下:

  • :hover必须位于:link:visited之后
  • :active必须位于:hover之后

因此,当我们需要设置多个链接伪类选择器时,需要注意定义的先后顺序。

举个例子:

a:link {
	...
}
a:visited {
	...
}
a:hover {
	...
}
a:active {
	...
}

3️⃣其他伪类

事实上,伪类选择器有很多,除了需要掌握的链接伪类,还有其他伪类可以学习,如下所示。

  • 伪类记录:
伪类含义
:root匹配文档根元素(也就是<html>
:empty匹配空内容的所有指定标签
:not(n)匹配非指定元素n的每个元素
:focus匹配获得焦点(光标)的元素
:first-child匹配指定父元素下的第一个子元素
:last-child匹配指定父元素下的最后一个子元素
:nth-​​child(n)匹配指定元素下的n子元素
:default匹配标签中的默认元素

  • 举例说明:
实例解析
:root { background:skyblue;}整个文档的背景色改为蓝色
p:empty选取所有空内容<p>标签
:not(p){ ... }匹配所有不是<p>标签的标签
input:focus {background-color:skyblue;}鼠标点击后,文本框呈现蓝色背景
div p:first-child { ... }匹配<div>元素下的第一个<p>元素
div p:last-child { ... }匹配<div>元素下的最后一个<p>元素
div p:nth-​​child(3) { ... }匹配<div>元素下的第3个<p>元素
:default伪类可用于哪些标签<button><input type="checkbox"><input type="radio"><option>

4️⃣写在最后

好了,今天的笔记就到这里。

相关文章:

  • VirtualBox虚拟机安装教程
  • docker 镜像打包发布
  • MyBatis(详)
  • (附源码)计算机毕业设计SSM保险客户管理系统
  • Linux: 为root账户设置密码
  • 数组常用操作中np.delete用法
  • C++入门-----初始化列表
  • JavaScript—正则
  • 草莓熊python turtle绘图代码
  • 5.3 马氏链-常返和非常返(Durrett)
  • 【已解决】利用 Java 多线程并发编程提高数据处理效率
  • Spring日志引用原理
  • 项目实战 | 基于RK3566开发板实现USB摄像头推流(ffmpeg+nginx)
  • 进程的程序替换
  • 9. SQL中Insert into/Update/Delete的用法
  • es的写入过程
  • gcc介绍及安装
  • JavaScript设计模式与开发实践系列之策略模式
  • Linux快速复制或删除大量小文件
  • mysql innodb 索引使用指南
  • Odoo domain写法及运用
  • php面试题 汇集2
  • SpringCloud集成分布式事务LCN (一)
  • Zsh 开发指南(第十四篇 文件读写)
  • 多线程 start 和 run 方法到底有什么区别?
  • 基于Mobx的多页面小程序的全局共享状态管理实践
  • 聊聊hikari连接池的leakDetectionThreshold
  • 七牛云 DV OV EV SSL 证书上线,限时折扣低至 6.75 折!
  • 前端工程化(Gulp、Webpack)-webpack
  • 深度解析利用ES6进行Promise封装总结
  • 在electron中实现跨域请求,无需更改服务器端设置
  • 终端用户监控:真实用户监控还是模拟监控?
  • 自定义函数
  • 走向全栈之MongoDB的使用
  • ​​​​​​​​​​​​​​Γ函数
  • #include到底该写在哪
  • #QT(智能家居界面-界面切换)
  • #Ubuntu(修改root信息)
  • (1)Map集合 (2)异常机制 (3)File类 (4)I/O流
  • (C#)获取字符编码的类
  • (done) 两个矩阵 “相似” 是什么意思?
  • (HAL库版)freeRTOS移植STMF103
  • (超简单)使用vuepress搭建自己的博客并部署到github pages上
  • (附源码)计算机毕业设计高校学生选课系统
  • (接口自动化)Python3操作MySQL数据库
  • (一)Linux+Windows下安装ffmpeg
  • (转)h264中avc和flv数据的解析
  • .gitignore
  • .NET Framework 服务实现监控可观测性最佳实践
  • .NET 常见的偏门问题
  • .net 后台导出excel ,word
  • .net和jar包windows服务部署
  • @ 代码随想录算法训练营第8周(C语言)|Day57(动态规划)
  • @Data注解的作用
  • [100天算法】-不同路径 III(day 73)