

【译】一张图搞定CSS选择器知识
source link: https://gylidian.js.org/ejIjWE/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.


【译】一张图搞定CSS选择器知识
原文:CSS selectors cheatsheet & details
📜 CSS selectors cheatsheet
这些天,我一直在折腾 CSS 选择器。
拥有杂七杂八符号的 CSS 选择器太多了,比如 > . , * + ~ [] 等等,因此我经常被如何使用这些选择器搞得头大。
终于,我把它们在我脑海中理顺了,并按照我的理解来构建知识体系。
*事实上,为了节省纸张、保护地球,我原本是想把它们全部只放在一张 A4 大小的页面上,但因为有太多的选择器我想添加,所以我不得不做成多页。除了封面外,其余四页都是 A4 的。
把这张纸打印出来,贴在墙上,别刻意去记,只是用来没事儿偷瞄几眼而已。我希望这张 cheatsheet 能帮助你快速找到合适的 CSS 选择器并节省时间。
🔮 来!下载 CSS selectors cheatsheet.pdf 吧!然后玩玩 这个游戏🕹!
🔎 Dive into CSS selector.
我会列出图表和来自 MDN 的标准定义,使得这些知识更容易理解。
元素选择器
CSS 元素选择器(也称为类型选择器)通过 node 节点名称匹配元素. 因此,在单独使用时,寻找特定类型的元素时,元素选择器都会匹配该文档中所有此类型的元素. - MDN
ID 选择器
在一个 HTML 文档中,CSS ID 选择器会根据该元素的 ID 属性中的内容匹配元素,元素 ID 属性名必须与选择器中的 ID 属性名完全匹配,此条样式声明才会生效。 - MDN
后代选择器
当使用
␣
选择符 (这里代表一个空格,更确切的说是一个或多个的空白字符) 连接两个元素时使得该选择器可以只匹配那些由第一个元素作为祖先元素的所有第二个元素(后代元素) . 后代选择器与 子选择器 很相似, 但是后代选择器不需要相匹配元素之间要有严格的父子关系. - MDN
组合使用后代选择器和 ID 选择器
在一个 HTML 文档中,CSS 类选择器会根据元素的类属性中的内容匹配元素。类属性被定义为一个以空格分隔的列表项,在这组类名中,必须有一项与类选择器中的类名完全匹配,此条样式声明才会生效。 - MDN
组合使用类选择器
组合器和多个选择器
组合器和选择器组 — 将多个选择器组合在一起以进一步利用其选择能力的两种方式。 - MDN
通配选择器
在 CSS 中,一个星号(
*
)就是一个通配选择器.它可以匹配任意类型的 HTML 元素.在配合其他简单选择器的时候,省略掉通配选择器会有同样的效果.比如,*.warning
和.warning
的效果完全相同. - MDN
组合使用通配选择器
相邻兄弟选择器
相邻兄弟选择器 (
+
) 介于两个选择器之间,当第二个元素紧跟在第一个元素之后,并且两个元素都是属于同一个父元素
的子元素,则第二个元素将被选中。 - MDN
通用兄弟选择器
在使用 ~ 连接两个元素时,它会匹配第二个元素,条件是它必须跟(不一定是紧跟)在第一个元素之后,且他们都有一个共同的父元素
. - MDN
当使用
>
选择符分隔两个元素时,它只会匹配那些作为第一个元素的直接后代(子元素)的第二元素. 与之相比, 当两个元素由 后代选择器 相连时, 它表示匹配存在的所有由第一个元素作为祖先元素(但不一定是父元素)的第二个元素, 无论它在 DOM 中”跳跃” 多少次. - MDN
:first-child
:first-child CSS pseudo-class 表示在一组兄弟元素中的第一个元素。 - MDN
:only-child
CSS伪类
:only-child
代表了属于某个父元素的唯一一个子元素.等效的选择器还可以写成:first-child:last-child
或者:nth-child(1):nth-last-child(1)
,当然,前者的权重会低一点. - MDN
:last-child
:nth-child
:nth-child(an+b) 这个 CSS 伪类首先找到所有当前元素的子元素,然后按照位置先后顺序从 1 开始排序,选择的结果为第(an+b)个元素的集合(n=0,1,2,3…)。 - MDN
:nth-last-child
:nth-last-child(an+b) 这个 CSS 伪类匹配文档树中在其之后具有
*a*n+*b*-1
个兄弟节点的元素,其中 n 为正值或零值。它基本上和:nth-child
一样,只是它从结尾处反序计数,而不是从开头处。 - MDN
:first-of-type
:nth-of-type
:nth-of-type() 这个 CSS 伪类匹配文档树中在其之前具有
*a*n+*b*-1
个相同兄弟节点的元素,其中 n 为正值或零值。简单点说就是,这个选择器匹配那些在相同兄弟节点中的位置与模式 an+b 匹配的相同元素。 - MDN
🔮 Note:
:nth-of-type(even)
:nth-of-type(odd)
:nth-of-type(2)
:nth-of-type(2n)
:nth-of-type(3n-1)
:nth-of-type(2n+2)
:only-of-type
附上 :only-child
和 :only-of-type
的对比:
:last-of-type
:last-of-type
CSS 伪类 表示了在(它父元素的)子元素列表中,最后一个给定类型的元素。当代码类似 Parent tagName:last-of-type 的作用区域包含父元素的所有子元素中的最后一个选定元素,也包括子元素的最后一个子元素并以此类推。 - MDN
:empty
:empty
CSS 伪类 代表没有子元素的元素。子元素只可以是元素节点或文本(包括空格)。注释或处理指令都不会产生影响。 - MDN
:not()
CSS 否定伪类,:not(X),是以一个简单的以选择器 X 为参数的功能性标记函数。它匹配不符合参数选择器 X 描述的元素。X 不能包含另外一个否定选择器。
:not 伪类的优先级即为它参数选择器的优先级。:not 伪类不像其它伪类,它不会增加选择器的优先级。 - MDN
属性选择器
属性选择器是一种特殊类型的选择器,它根据元素的 属性 和属性值来匹配元素。它们的通用语法由方括号 (
[]
) 组成,其中包含属性名称,后跟可选条件以匹配属性的值。 属性选择器可以根据其匹配属性值的方式分为两类: 存在和值属性选择器和子串值属性选择器。 - MDN
存在属性选择器
值属性选择器
子串值属性选择器
这种情况的属性选择器也被称为“伪正则选择器”,因为它们提供类似 regular expression 的灵活匹配方式(但请注意,这些选择器并不是真正的正则表达式)- MDN
[attr^=val]
选择 attr 属性的值以
val
开头(包括val
)的元素。
[attr$=val]
选择 attr 属性的值以
val
结尾(包括val
)的元素。
[attr*=val]
选择 attr 属性的值中包含子字符串
val
的元素(一个子字符串就是一个字符串的一部分而已,例如,”cat“ 是 字符串 ”caterpillar“ 的子字符串)。
🎉 (完) 🎉
📖 参考文章
🕹 CodePen
来来来,看这里 👉 https://codepen.io/nana8/pen/aXQgoj
Recommend
-
57
在开始聊CSS选择器Level 4( Selectors Level 4 )之前,先要明确一个简单的概念。时至今日,在CSS的世界之中再不会有大版本的称谓,比如以前大家熟悉的CSS2.1、CSS3。现在的CSS都只会...
-
37
上次给大家简单介绍了html与css的基本组成部分,这一期给大家介绍下css的选择器吧! 先给大家讲几种比较常用的吧。第一种基础选择器,类选择器,它的书写方式为.加上类名,类名是自定义的,写类名最好是见名知意,给大家举一个例子吧...
-
11
by zhangxinxu from https://www.zhangxinxu.com/wordpress/?p=9002 本文可全文转载,无需授权。 一、只缘身在此山中 小时候,...
-
13
by zhangxinxu from http://www.zhangxinxu.com/wordpress/?p=5542 本文全文转载需购买版权(500¥),摘要引流则免费,具体
-
5
文章目录 深入解析 CSS 选择器二、CSS 选择器的分类三、不同种类选择器的用法属性选择器伪类选择器伪元素选择器
-
7
CSS Selector 选择器Tuesday, April 2nd 2019, 10:15:53 am ( ISO 8601 )了解并且熟用 CSS3 为我们提供的强大并且优雅的选择器,就可以简化我们的代码。 ** 一、基本选择器 ** A. 通配选择器 「*」
-
8
by zhangxinxu from http://www.zhangxinxu.com/wordpress/?p=5559 本文全文转载需购买版权(500¥),摘要引流则免费,具体
-
14
你敢相信吗,CSS选择器都可以写一本书!张鑫旭大佬的这本书绝对值得一读! CSS选择器可分为4类:选择器(如body{})、选择符(如相邻兄弟关系选择符+)、伪类(如:hover)和伪元素(如::before)。 CSS只有一个全局作用域,但是Shadow DOM...
-
4
CSS 选择器发表于2021-05-22更新于2021-05-29阅读次数6翻 MDN 文档重新系统地学习下 CSS 选择器知识,记录下来当作笔记。 所谓 CSS selector 用于在 HTML 文档中选取指定的元素节点,可用于 CSS 文件中设置 style 或者在某些...
-
9
CSS :not()伪类选择器已支持复杂参数 这篇文章发布于 2022年02月12日,星期六,23:07,归类于 CSS相关。 阅读 1042 次, 今日 112 次...
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK