CSS中伪类详解和用法例子详解

文章目录

  • 一、伪类介绍
  • 二、伪类选择器
    • 1.动态伪类
    • 2.结构伪类
    • 3.否定伪类
    • 4.状态伪类
    • 5.目标伪类

一、伪类介绍

用于已有元素处于某种状态时(滑动、点击等)为其添加对应的样式,这个状态是根据用户行为而动态变化的。

二、伪类选择器

动态伪类作用
:link链接没有被访问前的样式效果
:visited链接被访问后的样式效果
:hover鼠标悬停在元素上面时的样式效果
:active点击元素时的样式效果,即按下鼠标左键时发生的样式
:focus用于元素成为焦点时的样式效果,常用与表单元素
结构伪类作用
:first-child选择某个元素的第一个子元素
:last-child选择某个元素的最后一个子元素
:nth-child()选择某个当前元素的兄弟节点下的一个或多个特定的子元素
:nth-last-child()选择某个当前元素的兄弟节点的一个或多个特定的子元素,从后往前数
:nth-of-type()当前元素的同类型兄弟节点的第n个当前元素
:nth-last-of-type()当前元素的同类型兄弟节点的第n个当前元素,从后往前数
:first-of-type选择一个父级元素下第一个同类型子元素
:last-of-type选择一个父级元素下第一个同类型子元素,从后往前数
:only-child选择的元素是它父元素的唯一 一个子元素
:only-of-type选择一个元素是上级元素下唯一相同类型的子元素
:empty选择的元素里面没有任何内容(空标签)
否定伪类作用
:not()排查或者过滤掉特定元素
状态伪类作用
:enabled选择匹配指定范围内所有可用UI(用户界面)元素
:disabled选择匹配指定范围内所有不可用UI(用户界面)元素
:checked选择匹配指定范围内所有可选中的UI(用户界面)元素
目标伪类作用
:target选择匹配父元素的所有元素,且匹配元素被相关URL指向

1.动态伪类

<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<style>

  a:link {
    color: #333;
  }
  a:visited {
    color: #ddd;
  }
  a:hover {
    color: red;
  }
  a:active {
    color: green;
  }
  input:focus {
    color: orange;
  }
</style>
<div class="province">
  <a target="_blank" href="https://www.baidu.com">福建</a>
  <input value="111">
</div>

</html>

在这里插入图片描述

2.结构伪类

:first-child和last-child用法

<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<style>

  .province:first-child {
    color: red;
  }
  .province:last-child {
    color: green;
  }

</style>
<div class="province">
  1111
</div>
<div class="province">
  1111
</div>
<div class="province">
  1111
</div>

</html>

在这里插入图片描述
:nth-child()用法
代码中的n表示一个从0开始的自然数,他会逐渐+1
下面代码作用:从第2个元素开始字体颜色都是红色

<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<style>
  .province:nth-child(n + 2) {
    color: red
  }

</style>
<div class="province">
  1111
</div>
<div class="province">
  1111
</div>
<div class="province">
  1111
</div>

</html>

在这里插入图片描述
:nth-last-child()
用法和:nth-child()相似,只不过它是从下往上的顺序。
下面代码作用:倒数第2个元素字体变为红色。

<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<style>

  .province:nth-last-child(2) {
    color: red
  }

</style>
<div class="province">
  1111
</div>
<div class="province">
  1111
</div>
<div class="province">
  1111
</div>
<div class="province">
  1111
</div>
<div class="province">
  1111
</div>

</html>

在这里插入图片描述
:nth-of-type()
nth-of-type他是当前元素的同类型兄弟元素的第n个,而nth-child是当前元素的兄弟节点的第n个当前元素

<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<style>

  .province:nth-of-type(4) {
    color: red
  }
  .province:nth-child(4) {
    color: green
  }

</style>
<div class="province">
  1111
</div>
<li>
  内鬼
</li>
<div class="province">
  1111
</div>
<div class="province">
  1111
</div>
<div class="province">
  1111
</div>
<div class="province">
  1111
</div>

</html>

在这里插入图片描述
:nth-last-of-type()
用法和 :nth-of-type() 类似,只不过顺序是从下往上。

:first-of-type和:last-of-type
:first-of-type和:nth-of-type(1) 是一个意思
:last-of-type和:nth-last-of-type(1)是一个意思

<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<style>

  .province:first-of-type {
    color: red
  }
  .province:last-of-type {
    color: green
  }

</style>
<div class="province">
  1111
</div>
<li>
  内鬼
</li>
<div class="province">
  1111
</div>
<div class="province">
  1111
</div>
<div class="province">
  1111
</div>
<div class="province">
  1111
</div>

</html>

在这里插入图片描述
:only-child

<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<style>

  .province:only-child {
    color: red
  }

</style>
<div>
  <div class="province">33</div>
</div>

<div>
  <div class="province">13</div>
  <div class="province">23</div>
</div>
</html>

在这里插入图片描述
:only-of-type

<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<style>

  .province:only-of-type {
    color: red
  }

</style>

<div>
  <div class="province">00</div>
  <div class="province">00</div>
  <li>00</li>
</div>

<div>
  <div class="province">11</div>
  <li>22</li>
  <li>33</li>
</div>
</html>

在这里插入图片描述
:empty

下面代码中第二个div标签里面有空格,所以:empty伪类不会生效。

<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<style>

  .province:empty {
    background: red;
  }
  .province {
    width: 100px;
    height: 100px;
    border: 1px solid #333;
    margin-bottom: 10px;
  }

</style>
<div class="province"></div>
<div class="province"> </div>

</html>

在这里插入图片描述

3.否定伪类

:not()用法

<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<style>

  .province:not(:first-child) {
    color: red;
  }
  a:not(a[class="nav_item"]) {
    text-decoration: none;
  }

</style>
<div class="province">11</div>
<div class="province">22</div>
<div class="province">33</div>
<a href="#" class="nav_item">第一个a标签</a>
<a href="#">第二个a标签</a>
<a href="#">第三个a标签</a>

</html>

在这里插入图片描述

4.状态伪类

:enabled和:disabled和:checked

<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<style>

  input:enabled {
    color: green;
  }
  input:disabled {
    color: red;
  }
  input:checked {
    width: 100px;
  }

</style>
<input value="11">
<input disabled value="11">
<label><input name="Fruit" type="radio" checked value="" />苹果 </label>
<label><input name="Fruit" type="radio" value="" />桃子 </label>
<label><input name="Fruit" type="radio" value="" />香蕉 </label>
<label><input name="Fruit" type="radio" value="" /></label>
<label><input name="Fruit" type="radio" value="" />其它 </label>
</html>

在这里插入图片描述

5.目标伪类

:target用法

<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<style>

  div {
    display: none;
  }

  :target {
    display: block;
  }

</style>
<a href="#nav">我要敲代码</a>
<a href="#nav_item">我要睡觉</a>
<div id="nav">
  那就敲代码吧
</div>
<div id="nav_item">
  那就睡觉吧
</div>
</html>

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Arduino uno 环境配置 for Mac

1、IDE 在官网下载 官网地址&#xff1a;https://www.arduino.cc/en/software 看到钱&#x1f4b0;不要怕&#xff0c;只是问你捐不捐款&#xff0c;不收钱&#xff0c;你直接安装就行 &#xff08;你也可以捐一点&#xff5e;&#xff09; 安装之后 2、安装驱动 地址 &…

互联网+洗鞋店预约小程序新模式;

互联网洗鞋店预约小程序 1、线上线下业务的结合。 传统的线下业务消费者到店可以向其推介线上的预约到家服务&#xff0c;让线下的消费者成为小程序内的会员&#xff0c;留存客户之后线上可直接触达&#xff0c;减少与消费者的距离&#xff0c;从等待客户到可以主动出击&…

黑客是什么?想成为黑客需要学习什么?

什么是黑客 在《黑客辞典》里有不少关于“黑客”的定义, 大多和“精于技术”或“乐于解决问题并超越极限”之类的形容相关。然而&#xff0c;若你想知道如何成为一名黑客&#xff0c;只要牢记两点即可。 这是一个社区和一种共享文化&#xff0c;可追溯到那群数十年前使…

6.Mysql主从复制

文章目录 Mysql主从复制读写分离概念&#xff1a;读写分离的作用&#xff1a;读写分离的作用条件&#xff1a;主从复制与读写分离mysq支持的复制类型主从复制的工作过程配置时间同步主服务器配置从服务器配置 读写分离MySQL 读写分离原理目前较为常见的 MySQL 读写分离分为以下…

A核与M核异构通信过程解析

现在越来越多的产品具有M core和A core的异构架构&#xff0c;既能达到M核的实时要求&#xff0c;又能满足A核的生态和算力。比如NXP的i.MX8系列、瑞萨的RZ/G2L系列以及TI的AM62x系列等等。虽然这些处理器的品牌及性能有所不同&#xff0c;但多核通信原理基本一致&#xff0c;都…

Linux - 那些年测试服务器带宽的 3 种方式

方式一 speedtest-cli wget -O speedtest-cli https://raw.githubusercontent.com/sivel/speedtest-cli/master/speedtest.pychmod x speedtest-cliorcurl -Lo speedtest-cli https://raw.githubusercontent.com/sivel/speedtest-cli/master/speedtest.pychmod x speedtest-c…

重生之我测阿里云U1实例(通用算力型实例)

官方福利&#xff01;&#xff01;&#xff01;&#xff01;大厂羊毛你确定不薅&#xff1f;&#xff1f;&#xff1f; 参与ECSU实例评测&#xff0c;申请免费体验机会&#xff1a;https://developer.aliyun.com/mission/review/ecsu 参与ECSU实例评测&#xff0c;申请免费体验…

一些零散的查询知识

一、all any some 表&#xff1a; all大于所有的值&#xff1a; any some:大于任意一个即可 例题&#xff1a; 大于50部门所有员工工资的人&#xff1a; 等价于&#xff1a; 二、exists关键字 1、exists查询 exists(子查询) 如果有满足条件的记录&#xff0c;那么exi…

C/C++内存管理(内存分布、动态内存分配、动态内存分配与释放、内存泄漏等)

喵~ 内存之5大区&#xff08;栈区、堆区、静态区、常量区、代码区&#xff09;C/C中各自的内存分配操作符内存泄露?内存泄漏检测方法 内存之5大区&#xff08;栈区、堆区、静态区、常量区、代码区&#xff09; 1、栈区&#xff08;stack&#xff09;&#xff1a;由编译器自动分…

【从删库到跑路】详细讲解MySQL的函数和约束作用

&#x1f38a;专栏【MySQL】 &#x1f354;喜欢的诗句&#xff1a;更喜岷山千里雪 三军过后尽开颜。 &#x1f386;音乐分享【如愿】 大一同学小吉&#xff0c;欢迎并且感谢大家指出我的问题&#x1f970; 文章目录 &#x1f354;函数⭐字符串函数&#x1f388;字符串拼接函数&…

LabVIEW开发呼吸分析系统

LabVIEW开发呼吸分析系统 在日常生活中&#xff0c;许多人都在练习调息法&#xff0c;但大多数人都不知道如何以完美的方式做。不当的做法不会带来适当的结果。一种使用LabVIEW分析呼吸信号的方法&#xff0c;以使人们以完美的方式练习调息。这有助于从业者按照系统指定的说明…

Vue2封装一个全局通知组件并发布到NPM

✍&#x1f3fc;作者&#xff1a;周棋洛&#xff0c;计算机学生 ♉星座&#xff1a;金牛座 &#x1f3e0;主页&#xff1a;点击查看更多 &#x1f310;关键&#xff1a;vue2 组件封装 npm发包 文章目录 1. 前言 &#x1f343;2. 我为什么要封装通知插件 ❓3. 初始化vue空项目 &…

Learn Mongodb DB数据库部署 ②

作者 : SYFStrive 博客首页 : HomePage &#x1f4dc;&#xff1a; PHP MYSQL &#x1f4cc;&#xff1a;个人社区&#xff08;欢迎大佬们加入&#xff09; &#x1f449;&#xff1a;社区链接&#x1f517; &#x1f4cc;&#xff1a;觉得文章不错可以点点关注 &#x1f44…

【STM32】软件I2C控制频率

在上一篇文章中&#xff0c;我们已经介绍了整个软件I2C的实现原理&#xff0c;但是也遗留了一个问题&#xff0c;那就是I2C速率的控制&#xff0c;其实就是控制SCL信号的频率。 微秒级延时 在上篇文章中&#xff0c;我们使用了SysTick进行延时&#xff0c;具体如下&#xff1…

Ubuntu下编译VTK

1.先安装QT&#xff0c;不知道不装行不行&#xff0c;我们项目需要。 2.去VTK官网下载VTK源码。 3.解压源码。 4.编译需要用cmake-gui&#xff0c;装QT的一般都有&#xff0c;但需要把路径添加到PATH才能用。 5.打开cmake-gui&#xff0c;设置源码路径&#xff0c;编译输出路…

Java开发 - Canal的基本用法

前言 今天给大家带来的是Canal的基本用法&#xff0c;Canal在Java中常被我们用来做数据的同步&#xff0c;当然不是MySQL与MySQL&#xff0c;Redis与Redis之间了&#xff0c;如果是他们&#xff0c;那就好办了&#xff0c;我们可以直接通过配置来完成他们之间的主从、主主&…

【SpringBoot】一、SpringBoot3新特性与改变详细分析

前言 本文适合具有springboot的基础的同学。 SpringBoot3改变&新特性 一、前置条件二、自动配置包位置变化1、Springboot2.X2、Springboot3.X 三、jakata api迁移1、Springboot2.X2、Springboot3.X3、SpringBoot3使用druid有问题&#xff0c;因为它引用的是旧的包 四 新特…

MySQL数据库--------简单理解文件的相关信息

作者前言 欢迎小可爱们前来借鉴我的gtiee秦老大大 (qin-laoda) - Gitee.com ———————————————————————————————————— 目录 文件的信息 文件的权限 权限的赋予 —————————————————————————————— 插播一些…

MySQL 备份与恢复

MySQL 备份与恢复 一、数据库备份的分类1.1 数据备份的重要性1.2 数据库备份的分类1.2.1 从物理与逻辑的角度&#xff0c;分为物理备份和逻辑备份1.2.2 从数据库的备份策略角度&#xff0c;分为完全备份&#xff0c;差异备份和增量备份1.2.3 常见的备份方法 二、MySQL完全备份与…

爬虫入门指南(1):学习爬虫的基础知识和技巧

文章目录 爬虫基础知识什么是爬虫&#xff1f;爬虫的工作原理爬虫的应用领域 爬虫准备工作安装Python安装必要的库和工具 网页解析与XPath网页结构与标签CSS选择器与XPathXpath 语法XPath的基本表达式&#xff1a;XPath的谓语&#xff08;Predicate&#xff09;&#xff1a;XPa…