60 个 CSS 选择器,一网打尽!

CSS 选择器用于选择 HTML 元素并将样式应用于它们。使用这些选择器,可以定义特定条件下应用哪些样式。除了普通的选择器外,还有伪类和伪元素,用于选择具有特定状态或特定部分的元素,并将样式应用于它们。本文将通过图文并茂的方式展示这些选择器的使用方法!

选择器

1、通用选择器

通用选择器使用 * 来选择全部元素。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

2、元素选择器

同于选择指定 HTML 元素。

3、类选择器

选择具有指定类名的所有元素。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

4、ID选择器

选择具有指定ID的元素。

5、组合选择器

连接两个或多个类名或 ID,以选择具有所有指定类名/ID的元素。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

6、多重选择器

使用逗号将多个选择器声明分开,这样可以很容易地将相同的样式应用于多个选择器声明。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

7、后代选择器

后代选择器表示选择某个元素的所有后代元素,即位于该元素内部的所有子孙元素。在使用后代选择器时,在两个选择器之间加上一个空格,表示前一个选择器所选中的元素中包含的后代元素。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

8、相邻选择器

相邻选择器用于选择紧接在另一个元素后面的直接相邻兄弟元素的选择器,使用加号(+)作为组合符号,将两个选择器连接起来。它选择的是位于第一个选择器后紧邻的同级元素。

9、子选择器

子选择器用于选择某个元素的直接子元素,使用大于号(>)作为组合符号,将两个选择器连接起来。它选择的是父级元素下的直接子元素,即元素树结构中的一级关系。

10、通用兄弟选择器

通用兄弟选择器使用波浪号(即通用兄弟组合符)来选择在第一个选择器之前的所有元素,而不要求它们是第一个选择器的直接兄弟元素。

11、猫头鹰选择器

猫头鹰选择器用于选择所有具有前置兄弟元素的元素,用来在一个容器内的元素之间添加间距,但不包括第一个元素,因为第一个元素没有前置兄弟元素。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

12、属性选择器

属性选择器用于选择具有特定属性的元素。

  • 使用[attribute]来选择所有具有 attribute 属性的元素:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  • 使用 [attribute=value] 来选择具有指定属性及属性值的元素:

  • 使用 [attribute~=value] 来选择具有指定属性,并且该属性的多个值中包含给定值的元素:

  • 使用 [attribute*=value] 来选择具有指定属性,并且该属性的值中包含特定部分值的元素。

  • 使用 [attribute^=value] 来选择具有指定属性,并且该属性的值以给定值开头的元素。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  • 使用 [attribute$=value] 来选择具有指定属性,并且该属性的值以给定值结尾的元素。

伪类

1、链接伪类选择器

这 4 个伪类用于选择链接处于不同状态的元素。它们最常与链接一起使用,但是 :active 也适用于按钮,而 :hover 可以用于各种元素:

  • :link:选取未被访问过的链接,用于为用户尚未点击的超链接设置样式。
  • :visited:选取已经被用户访问过的链接,用于为用户之前点击过的超链接设置样式。
  • :hover:当用户指针(例如鼠标光标)悬停在某些元素(通常是链接)上时,选取这些元素。
  • :active:在元素(通常是链接或按钮)被激活时,例如用户点击它们的瞬间,选取这些元素。

这 4 个伪类可用于提高用户交互性,例如增加链接的可见度,使其更加显著突出,从而改善用户体验。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

2、:focus 伪类

:focus 伪类用于选择当前获得焦点的元素。当用户与网页上的表单元素进行交互时,可以通过点击或键盘导航,使某个特定的输入框处于焦点状态。这意味着用户的输入将直接应用到该输入框上。

3、:checked 伪类

:checked 伪类用于选择当前被选中或选择的单选按钮、复选框或 select 元素的选项。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

4、:disabled 伪类

:disabled 伪类用于匹配被禁用的表单元素,例如按钮或文本输入框。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

5、:enabled 伪类

:enabled 伪类用于匹配可以交互和接收输入的表单元素。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

6、:valid 伪类

:valid 伪类用于选择具有与其属性(如 pattern、type 等)所指定要求相匹配的内容的输入元素。

当 input 元素的内容符合其属性所指定的要求时,可以使用 :valid 伪类选择它们。

7、:invalid 伪类

:invalid 伪类用于选择具有内容不符合要求的输入元素。

当input元素的内容不符合其要求时,可以使用 :invalid 伪类来选择它们。

8、:required 伪类

:required 伪类用于选择具有 required 属性的输入元素,该属性表示在提交表单之前必须填写它们。

当 input 元素具有 required 属性时,可以使用 :required 伪类选择它们。

9、:optional 伪类

:optional 伪类用于选择没有 required 属性的输入元素,这意味着它们不是必填项。

当input 元素没有 required 属性时,可以使用 :optional 伪类选择它们。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

10、:first-child 伪类

:first-child 伪类用于选择父元素中的第一个子元素。

11、:last-child 伪类

:last-child 伪类用于选择父元素中的最后一个子元素。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

12、:nth-child 伪类

:nth-child 伪类根据元素在父元素中的位置进行选择,允许进行各种选择。:nth-child 还可以自定义模式选择元素:

  • :nth-child(odd) 或 :nth-child(2n+1) 选择每个奇数位置的子元素
  • :nth-child(even) 或 :nth-child(2n) 选择每个偶数位置的子元素

公式中的 n 就像一个计数器,可以按重复周期选择元素。例如,:nth-child(3n) 将选择每三个元素。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

13、:nth-last-child 伪类

:nth-last-child 伪类与 :nth-child 类似,但是从最后一个子元素向后计数。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

14、:only-child 伪类

当需要选择在其父级元素中唯一的一个子元素时,可以使用 :only-child 伪类。

15、:first-of-type 伪类??

:first-of-type 伪类选择在其父元素中的特定类型的元素中的第一个元素。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

16、:last-of-type 伪类

:last-of-type 伪类选择在其父元素中的特定类型的元素中的最后一个元素。

17、:nth-of-type 伪类

当需要根据元素在兄弟元素中的类型和位置选择元素时,可以使用 :nth-of-type 伪类。

18、:nth-last-of-type 伪类

:当需要根据元素在兄弟元素中的类型和位置选择元素,并且从末尾开始计数时,可以使用 :nth-last-of-type 伪类。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

19、:only-of-type 伪类

当需要选择在其兄弟元素中为特定类型的元素仅有一个的元素时,可以使用 :only-of-type 伪类。

20、:target 伪类

:target 用于选择具有与 URL 片段匹配的 ID 属性的元素。URL 片段是指 URL 中的 # 符号后面的部分。当从页面中的链接点击跳转到带有特定片段的 URL 时,:target 伪类将会被应用于与片段匹配的对应元素上。这样可以利用 :target 来为被直接链接到的页面部分设置不同的样式,从而提供视觉上的反馈和突出显示。

21、:not() 伪类

使用 :not() 伪类可以选择不符合指定选择器或条件的元素。这在需要排除某些特定元素时非常有用。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

22、has() 伪类

使用 :has() 伪类可以选择包含某个特定元素或选择器的父级元素,并为其应用样式。

23、其他伪类

除了上面提到的伪类,CSS中还包含以下伪类:

  • :root:选择文档中最高级别的父元素,通常是HTML文档中的 元素。可用于定义对所有页面元素可用的CSS变量。
  • :is():匹配可以是多个选择器之一的元素,使得长的选择器列表更加简短和易读。例如,:is(h1, h2, h3) 会匹配这三个标题元素之一。
  • :where():与 :is() 类似,但允许根据条件选择元素,而不影响选择器的特异性。
  • :default:匹配设置为默认选择状态的用户界面元素(如单选按钮或复选框)。
  • :empty:选择没有子元素(包括文本节点)的元素。
  • :fullscreen:选择当前以全屏模式显示的元素。
  • :in-range:匹配值在指定范围内的表单元素(使用 min 和 max 属性指定范围)。
  • :out-of-range:匹配值在指定范围之外的表单元素。
  • :indeterminate:选择状态不确定的表单元素,例如既未选中也未取消选中的复选框(在树状结构中经常见到)。
  • :read-only:匹配由于 readonly 属性而不可编辑的表单元素。
  • :read-write:选择可由用户编辑的表单元素,意味着它们不是只读的。
  • :lang():根据元素的语言属性进行匹配。例如,:lang(en) 选择使用英语定义的元素。

三、伪元素

1、::before 伪元素

::before 伪元素用于在元素内容之前插入内容。它可以用于添加装饰性内容、图标或其他不需要出现在实际 DOM 中的元素。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

2、::after 伪元素

::after 伪元素与 ::before 伪元素类似,用于在元素的内容之后插入内容。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

3、::first-letter 伪元素

::first-letter 伪元素用于选择并修改块级元素的第一个字母,从而应用特定的样式。这个伪元素只能选择每个块级元素的第一个字母,并且仅在有文本内容的时候生效。

4、::first-line 伪元素

::first-line 伪元素用于选择并修改块级元素的第一行,从而应用特定的样式。这个伪元素只能选择每个块级元素的第一行,并且仅在有文本内容的时候生效。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

5、::placeholder 伪元素

::placeholder 伪元素用于选择并修改表单字段的占位符文本,从而应用特定的样式。占位符文本是在用户未输入任何内容时显示的默认文本。

6、::selection 伪元素

::selection 伪元素用于选择并修改用户所选文本的样式。可以应用于包含文本内容的任何元素,如段落、标题、按钮等。

7、::marker 伪元素

::marker 伪元素用于为列表项中的标记符设置样式,这些标记符通常包含无序列表的项目符号或有序列表的数字/字母。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

8、其他伪元素

除了上述伪元素之外,CSS 还提供了以下伪元素:

  • ::file-selector-button:用于选择文件的按钮元素的伪元素。它可以用来样式化文件上传控件中的选择按钮。
  • ::cue:用于样式化媒体元素(如音频或视频)中的字幕或注释的伪元素。可以用来设置字幕的样式,比如字体、颜色等。
  • ::part():用于自定义 Web 组件的内部部件的伪元素。它可以针对组件的具体部分应用样式,并通过组件的 shadow DOM 提供的 Custom Elements API 进行访问。
  • ::slotted():用于样式化插槽内容的伪元素。插槽是一种在 Web 组件中用于插入内容的机制,::slotted() 可以应用样式到被插入的内容,以实现更精确的样式控制。

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

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

相关文章

Windows11家庭版安装Docker

文章目录 安装Docker安装hyper-v继续解决报错完成效果图进一步测试是否完成安装 安装Docker windows如何安装docker 装好之后,我打开报错。 安装hyper-v 按这个视频操作:Windows 11 家庭版安装 Hyper-V bat文件里的代码是: pushd "…

【投稿优惠|快速见刊】2024年图像,机器学习和人工智能国际会议(ICIMLAI 2024)

【投稿优惠|快速见刊】2024年图像,机器学习和人工智能国际会议(ICIMLAI 2024) 重要信息 会议官网:http://www.icimlai.com会议地址:深圳召开日期:2024.03.30截稿日期:2024.03.20 (先…

2024全国水科技大会暨高氨氮废水厌氧氨氧化处理技术论坛(四)

一、会议背景 为积极应对“十四五”期间我国生态环境治理面临的挑战,加快生态环境科技创新,构建绿色技术创新体系,全面落实科学技术部、生态环境部等部委编制的《“十四五”生态环境领域科技创新专项规划》,积极落实省校合作&…

什么是BGP网络 (边界网关协议)

BGP(边界网关协议)是一种用于在互联网中交换路由信息的协议。作为网关或路由器之间的协议,BGP主要用于帮助确定数据包在网络中的路径。它通过在不同自治系统(AS)之间交换路径信息,实现了全球互联网网络的连…

MySQL进阶之(三)InnoDB数据存储结构之数据页结构

三、InnoDB数据存储结构之数据页结构 3.1 数据库的存储结构3.1.1 MySQL 数据存储目录3.1.2 页的引入3.1.3 页的概述3.1.4 页的上层结构 3.2 数据页结构3.2.1 文件头和文件尾01、File Header(文件头部)02、File Trailer(文件尾部) …

【JavaEE】_Spring Web MVC简介

目录 1. Spring Web MVC简介 2. MVC简介 3. Spring MVC 1. Spring Web MVC简介 官网对于Spring Web MVC的介绍如下: 链接如下: https://docs.spring.io/spring-framework/reference/web/webmvc.html#https://docs.spring.io/spring-framework/refer…

将SU模型导入ARCGIS,并获取高度信息,多面体转SHP文件(ARCMAP)

问题:将Sketchup中导出的su模型,导入arcgis并得到面shp文件,进而获取各建筑的高度、面积等信息。 思路: (1)导入arcgis得到多面体 (2)转为面shp文件 (3)计算高度/面积等 1、【3D Analyst工具】【转换】【由文件转出】【导入3D文件】(在此步骤之间,建议先建立一个…

栈和队列OJ题

文章目录 一、双队列实现栈二、双栈实现队列 一、双队列实现栈 题目链接: https://leetcode.cn/problems/implement-stack-using-queues/description/ 题目分析: 栈的结构是后进先出,而队列的结构是先进先出,我们利用这个性质&a…

AI Word Helper (Chorme Extentions) AI单词助手(谷歌浏览器插件)

AI Word Helper (Chorme Extentions) AI单词助手(谷歌浏览器插件) 英文网站,划词查单词,还是看不懂?因为单词意思那么多,词性搞不清,上下文搞不清,出来的意思就没法用,G…

一个基于轮询的广告系统

无论PC 客户端还是手机客户端,可能会遇到需要发布一些广告,这些广告可能是自己开发的,可能是三方的,而且希望是比较通用,能随时发布,随时就能看到效果。 本文提供了一种基于轮询的广告系统,主要…

【服务器数据恢复】昆腾存储中raid5磁盘阵列数据恢复案例

服务器数据恢复环境&故障: 10个磁盘柜,每个磁盘柜配24块硬盘。9个磁盘柜用于存储数据,1个磁盘柜用于存储元数据。 元数据存储中24块硬盘,组建了9组RAID1阵列1组RAID10阵列,4个全局热备硬盘。 数据存储中&#xff0…

Java基于springboot的个人理财系统

基于springboot的个人理财系统 摘要 随着信息技术在管理上越来越深入而广泛的应用,管理信息系统的实施在技术上已逐步成熟。本文介绍了个人理财系统的开发全过程。通过分析个人理财系统管理的不足,创建了一个计算机管理个人理财系统的方案。文章介绍了个…

考研机试C++题目精选

更多内容会在godownio.github.io更新 算法练习(C代码) 考研上机或C语言代码笔试准备,暨大机试原题letcode牛客中南大等高校机试 快速幂算法 题目:输入一个整数 n ,求 n^n 的个位数是多少。 快速幂算法:…

【复试2.293.1】c语言——基础杂项

1.define定义常量类似全局变量,引用是直接拼到代码中去。 2.关于e 3.参数传递 形参直接接收的是数组的起始地址 4.数组越界乱码问题 5.scanf读字符串的时候会自动在末尾放0(结束符 6.scanf是读取输入缓冲区的数据,是一种拿走操作。读取若有…

文本多分类

还在用BERT做文本分类?分享一套基于预训练模型ERNIR3.0的文本多分类全流程实例【文本分类】_ernir 文本分类-CSDN博客 /usr/bin/python3 -m pip install --upgrade pip python3-c"import platform;print(platform.architecture()[0]);print(platform.machine…

Linux第67步_linux字符设备驱动_注册和注销

1、字符设备注册与注销的函数原型” /*字符设备注册的函数原型*/ static inline int register_chrdev(unsigned int major,\ const char *name, \ const struct file_operations *fops) /* major:主设备号,Limnux下每个设备都有一个设备号,设备号分…

【六袆 - React】Next.js:React 开发框架;Next.js开发框架的特点

Next.js:React 开发框架 Next.js的特点 1.直观的、基于页面的路由系统(并支持动态路由) Next.js 提供了基于文件系统的路由,意味着你可以通过创建页面文件来定义路由。 伪代码示例: // pages/index.js export defa…

MYSQL--JDBC优化

一.JDBC优化: 优化前提: 有时候我们并不清楚某些表当中一共有多少列,以及这些列的数据类型,这个时候我们就需要提前通过一些方法提前了解到这些数据,从而更好的进行输出 具体语句: package cn.jdbc;import java.sql.*;public class JDBCDEmo1 {public static void main(String…

【数学建模获奖经验】2023第八届数维杯数学建模:华中科技大学本科组创新奖获奖分享

2024年第九届数维杯大学生数学建模挑战赛将于:2024年5月10日08:00-5月13日09:00举行,近期同学们都开始陆续进入了备赛阶段,今天我们就一起来看看上一届优秀的创新奖选手都有什么获奖感言吧~希望能帮到更多热爱数学建模的同学。据说点赞的大佬…

elment-ui table表格排序后 清除排序箭头/恢复默认排序 的高亮样式

问题描述: 1.默认排序是按照名称升序排列(图一) 2.在选择了筛选项以及其他排序方式之后,箭头高亮是这样的(图二) 3.当我点击清空按钮后,类型清空了,并且传给后端的排序方式是名称/升…