CSS日常总结--CSS伪类

CSS日常总结–CSS伪类

文章目录

  • CSS日常总结--CSS伪类
    • 前言
    • 1.结构性伪类:
      • 1. :first-child:选择父元素下的第一个子元素
      • 2. :last-child:选择父元素下的最后一个子元素
      • 3. :nth-child(n):选择父元素下的第n个子元素
      • 4. :nth-last-child(n):从最后一个子元素开始计数,选择第n个子元素
      • 5. :nth-of-type(n):选择与同类型的兄弟元素中的第n个元素
      • 6. :nth-last-of-type(n):从同类型的兄弟元素的最后一个开始计数,选择第n个元素
      • 7. :first-of-type:选择同类型的兄弟元素中的第一个元素
      • 8. :last-of-type:选择同类型的兄弟元素中的最后一个元素
      • 9. :only-child:选择是其父元素中唯一的子元素的元素
      • 10. :only-of-type:选择是其父元素中唯一的特定类型的子元素的元素
    • 2.功能性伪类:
      • 1.:not(selector):选择不匹配给定选择器的元素
    • 3.界面状态伪类:
      • 1. :hover:鼠标悬停时应用的样式
      • 2. :active:元素被激活时应用的样式
      • 3. :focus:元素获得焦点时应用的样式
    • 4.界面结构伪类:
      • 1. :target:选择当前活动的目标元素
    • 5.链接伪类:
      • 1. :link:选择未被访问的链接
      • 2. :visited:选择已被访问的链接
    • 6.动态变化伪类:
      • 1. :focus-within:选择包含有焦点元素的元素
    • 7.表单伪类:
      • 1. :checked:选择被选中的表单元素
      • 2. :disabled:选择被禁用的表单元素
      • 3. :enabled:选择处于启用状态的表单元素
    • 8.其他伪类:
      • 1. :empty :选择没有子元素的元素
      • 2. :is():选择器匹配元素,类比组合选择器
      • 3. :where():选择器匹配元素,优先级低
      • 4. :has():选择器匹配元素
      • 5. :matches():多条件支持

前言

CSS伪类是一种允许选择文档中特定状态或位置的CSS选择器。它们用于选择不同状态下的元素,而无需改变HTML标记的内容。伪类以冒号(:)开头,紧随其后的是伪类的名称。它们与选择器结合使用,以定义在特定条件下应用的样式。伪类的主要作用是允许开发者根据用户的交互、文档结构或其他条件来选择元素,从而实现更加动态和交互性的样式。

1.结构性伪类:

1. :first-child:选择父元素下的第一个子元素

  • 选择父元素下的第一个子元素。
li:first-child {color: red;
}

2. :last-child:选择父元素下的最后一个子元素

  • 选择父元素下的最后一个子元素。
li:last-child {color: blue;
}

3. :nth-child(n):选择父元素下的第n个子元素

  • 选择父元素下的第n个子元素。
li:nth-child(odd) {background-color: #f2f2f2;
}

4. :nth-last-child(n):从最后一个子元素开始计数,选择第n个子元素

  • 从最后一个子元素开始计数,选择第n个子元素。
li:nth-last-child(2) {font-weight: bold;
}

5. :nth-of-type(n):选择与同类型的兄弟元素中的第n个元素

  • 选择与同类型的兄弟元素中的第n个元素。
p:nth-of-type(2n) {color: green;
}

6. :nth-last-of-type(n):从同类型的兄弟元素的最后一个开始计数,选择第n个元素

  • 从同类型的兄弟元素的最后一个开始计数,选择第n个元素。
p:nth-last-of-type(odd) {text-decoration: underline;
}

7. :first-of-type:选择同类型的兄弟元素中的第一个元素

  • 选择同类型的兄弟元素中的第一个元素。
h2:first-of-type {font-size: 24px;
}

8. :last-of-type:选择同类型的兄弟元素中的最后一个元素

  • 选择同类型的兄弟元素中的最后一个元素。
span:last-of-type {border: 1px solid #ccc;
}

9. :only-child:选择是其父元素中唯一的子元素的元素

  • 选择是其父元素中唯一的子元素的元素。
div:only-child {background-color: yellow;
}

10. :only-of-type:选择是其父元素中唯一的特定类型的子元素的元素

  • 选择是其父元素中唯一的特定类型的子元素的元素。
p:only-of-type {color: purple;
}

2.功能性伪类:

1.:not(selector):选择不匹配给定选择器的元素

  • 选择不匹配给定选择器的元素。
input:not([type="submit"]) {border: 1px solid #999;
}

3.界面状态伪类:

1. :hover:鼠标悬停时应用的样式

  • 鼠标悬停时应用的样式。
a:hover {color: orange;
}

2. :active:元素被激活时应用的样式

  • 元素被激活时(例如,按钮被按下)应用的样式。
button:active {background-color: #ccc;
}

3. :focus:元素获得焦点时应用的样式

  • 元素获得焦点时应用的样式,通常与表单元素一起使用。
input:focus {border: 2px solid blue;
}

4.界面结构伪类:

1. :target:选择当前活动的目标元素

  • 选择当前活动的目标元素,通常与页面内链接(锚点)一起使用。
#section1:target {background-color: lightyellow;
}

5.链接伪类:

1. :link:选择未被访问的链接

  • 选择未被访问的链接。
a:link {color: blue;
}

2. :visited:选择已被访问的链接

  • 选择已被访问的链接。
a:visited {color: purple;
}

6.动态变化伪类:

1. :focus-within:选择包含有焦点元素的元素

  • 选择包含有焦点元素的元素。
form:focus-within {border: 2px solid #555;
}

7.表单伪类:

1. :checked:选择被选中的表单元素

  • 选择被选中的表单元素,例如复选框或单选按钮。
input[type="checkbox"]:checked {border-color: green;
}

2. :disabled:选择被禁用的表单元素

  • 选择被禁用的表单元素。
input:disabled {background-color: #eee;
}

3. :enabled:选择处于启用状态的表单元素

  • 选择处于启用状态的表单元素。
input:enabled {background-color: #fff;
}

8.其他伪类:

1. :empty :选择没有子元素的元素

  • 选择没有子元素的元素。
p:empty {display: none;
}

2. :is():选择器匹配元素,类比组合选择器

  • 用法::is(selector):matches(selector)

  • 示例:选择所有段落和标题元素,其中至少一个具有类名为 “important” 的元素。

  • :is() 伪类允许您组合多个选择器,只要其中至少一个选择器匹配元素,整个选择器就匹配。这有助于简化复杂的选择器,提高代码的可读性。

    :is(p, h1, h2, h3):is(.important)
    

3. :where():选择器匹配元素,优先级低

  • 用法::where(selector):matches(selector)

  • 示例:选择所有段落和标题元素,其中至少一个具有类名为 “important” 的元素。

  • :where():is() 类似,允许组合多个选择器。与 :is() 不同的是,:where() 不会影响特异性,因此它更适合用于提高代码的可读性而不引入额外的特异性。

    :where(p, h1, h2, h3):where(.important)
    

4. :has():选择器匹配元素

  • 用法::has(selector)

  • 示例:选择所有包含至少一个带有类名为 “highlight” 的子元素的 div 元素。

  • :has() 伪类用于选择包含特定后代的元素。如果指定的选择器匹配元素的后代,那么包含这些后代的元素就会被选择。这在需要选择包含特定内容的父元素时非常有用。

    div:has(.highlight)
    

5. :matches():多条件支持

:matches()多条件支持:允许在一个选择器中同时匹配多个条件,类似于逗号分隔的选择器列表,但更灵活。

p:matches(:hover, :active) {}

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

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

相关文章

Baumer工业相机堡盟工业相机如何通过NEOAPI SDK获取相机当前实时帧率(C++)

Baumer工业相机堡盟工业相机如何通过NEOAPI SDK获取相机当前实时帧率(C) Baumer工业相机Baumer工业相机的帧率的技术背景Baumer工业相机的帧率获取方式CameraExplorer如何查看相机帧率信息在NEOAPI SDK里通过函数获取相机帧率(C) …

从方程到预测:数学在深度学习中的作用

图片来源 一、说明 深度学习通常被认为是人工智能的巅峰之作,它的成功很大程度上归功于数学,尤其是线性代数和微积分。本文将探讨深度学习与数学之间的深刻联系,阐明为什么数学概念是该领域的核心。 二、数学框架 从本质上讲,深度…

水经微图IOS版即将发布!

我们从上周开始,已经在着手提交产品到苹果商店等相关工作,但又恰逢“圣诞节”,据说这会导致延长审核周期。 正所谓行百里者半九十,我们现在只需要耐心等待审核通过,到时大家就可以在苹果商店中下载安装了。 IOS版功能…

echarts半圆进度条半圆饼图

drawmonthproduce(){this.monthproduce echarts.init(document.getElementById(monthproduce));var data 60; //数值大小var max 100; //满刻度大小this.monthproduce.setOption({title: [{text: data %, left: 50%,top: 70%,textAlign: center,textStyle: {// fontWeight…

C语言rand函数,srand函数,time函数实现随机数,及猜数字小游戏

怀心之所爱,奔赴山河 前言 最近在复习c的知识,想起之前写过一个猜数字小游戏,所以今天就把自己关于随机数的使用经验分享一下,希望对大家有帮助。 一.rand函数 1.函数的声明如下 可以看到,返回值是int类型&#xff…

Miniconda 与 Anaconda 的区别

Miniconda 与 Anaconda 的区别 包含的包: Anaconda: 是一个较大的发行版,预装了大量的科学计算和数据分析相关的 Python 包。Miniconda: 更轻量级,只包含 Conda、Python 和它们的依赖,以及少量常用包。 安装体积: 由于预装了许多包&#xff…

人工智能的基础-深度学习

什么是深度学习? 深度学习是机器学习领域中一个新的研究方向,它被引入机器学习使其更接近于人工智能。 深度学习是机器学习领域中一个新的研究方向,它被引入机器学习使其更接近于最初的目标——人工智能。 深度学习是学习样本数据的内在规律和表示层次&…

优维携手深职大共建“中国高校‘双碳’技能仿真操作系统”!

优维“双碳”战略合作高校 优维科技与深圳职业技术大学碳中和技术研究院(深职碳研院)签署战略合作协议,深化产学研,聚力创新“双碳”发展。在“双碳”目标大背景下,优维科技和深职碳研院将携手共同开发中国高校“双碳…

主动红外探测器,预计到2026年将达到16 亿美元

主动红外探测器,也称为运动传感器,是一种通过发射红外辐射并检测反射来检测移动物体存在的电子设备。它们广泛用于安全系统、自动门、照明控制和其他需要运动检测的应用。近年来,由于对安全系统的需求不断增加以及智能家居和建筑的发展&#…

关于java循环结构while和do…while

关于java循环结构while和do…while 前面的文章中我们了解到了java的选择结构,本篇文章我们来了解一下java的循环结构😀。 循环结构 while 循环do…while 循环for 循环 while循环 while循环是循环结构中的一种,也是最基本的循环。while循…

C++标准模板库(STL)

标准模板库(STL)是一组C模板类,提供常见的编程数据结构和函数,如列表、堆栈、数组等。它是一个容器类、算法和迭代器的库。它是一个通用库,因此,它的组件是参数化的。模板类的相关知识是使用STL的先决条件。…

使用Jenkins和单个模板部署多个Kubernetes组件

前言 在持续集成和部署中,我们通常需要部署多个实例或组件到Kubernetes集群中。通过Jenkins的管道脚本,我们可以自动化这个过程。在本文中,我将演示如何使用Jenkins Pipeline及单个YAML模板文件(.tpl)来部署多个类似的…

Python开发GUI常用库PyQt6和PySide6介绍之三:交互和通信方式讲解

Python开发GUI常用库PyQt6和PySide6介绍之三:交互和通信方式讲解 在PyQt6和PySide6中,事件(Event)和信号(Signal)是两个不同的概念,它们都是Qt框架中用于处理不同类型的应用程序响应机制。简言…

【Mars3d】官网示例与项目仓库的历史版本下载

【Mars3d】官网示例与项目仓库的历史版本下载 1.进入官网仓库&#xff1a; mars3d-vue-example: mars3d功能示例&#xff0c;Vue版本 2.以下载3.4.26版本的历史示例为例 <一>建议先 git clone https://gitee.com/marsgis/mars3d-vue-example.git <二>使用vsco…

Unity | 快速修复Animation missing错误

目录 一、背景 二、效果 三、解决办法 一、背景 最近在做2D 骨骼动画相关的Demo&#xff0c;我自己使用Unity引擎进行骨骼绑定并创建了anim后&#xff0c;一切正常&#xff0c;anim也能播放。但是昨天我修改Obj及子物体的名称&#xff08;由中文改为英文&#xff0c;如&…

DataX实现Gauss300->ADB PG(前一天数据)增量迁移

1、提前准备源Gauss300、目标 ADB PG数据库连接信息。 psql -hx.x.x.x -p25308 -Utest1 -ddb_name xxxxxxpsql -hx.x.x.x -p3432 -Utest1 -ddb_name xxxxxx 2、编写迁移脚本&#xff0c;并执行迁移。 #!/bin/bash file_name1.json today_datadate "%Y-%m-%d 00:00:00&…

svg学习

概念 svg 可缩放矢量图形 svg 使用xml格式定义图像 svg 形状 矩形 <rect> <?xml version"1.0" standalone"no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd&q…

OpenCV入门01:图像处理简介/图像的基础操作

项目开源&#xff0c;地址&#xff1a;https://gitee.com/zccbbg/opencv_study 文章目录 图像处理简介灰度图像二值图像彩色图 opencv 介绍图像基础操作图像读取与显示绘制几何图形图像的属性其他操作算数操作加法混合 图像色彩空间转换 图像处理简介 灰度图像 ● 灰度图像是…

VIOOVI干货分享:生产标准工时的计算与观测次数确认

在制造业中&#xff0c;生产标准工时是一个关键指标&#xff0c;它可以帮助企业确定生产效率、评估员工绩效以及优化生产流程。本文将介绍生产标准工时的计算方法&#xff0c;并探讨如何确认观测次数&#xff0c;以充分利用ECRS工时分析软件。 一、生产标准工时的计算 生产标准…

【WPF.NET开发】对象生存期事件

本文内容 先决条件视觉对象的生存期事件其他生存期事件 在所有对象的生存期内&#xff0c;Microsoft .NET 托管代码中的所有对象都会经历“创建”、“使用”和“销毁”的阶段。 当关于这些阶段的通知出现在对象上时&#xff0c;Windows Presentation Foundation (WPF) 会通过…