1. 根选择器 :root。
:root{}就等同于html{}, 一般来说, 推荐使用:root{}

2. 属性选择器 :[]。

3. 否定选择器 :not。

否定选择器, 就是除此之外的。和jQuery中的:not一个意思。

4. 空选择器 :empty。
注意: :empty 只对一点内容都没有的元素生效, 哪怕有一个空格都不行。个人觉得没多大意思,如果一个元素一点内容都没有,还要它干嘛。我能想到的,就是当我们定义弹出类的插件时,一般都会定义一个背景阴影,那里面是没内容的。

5. 第一个与最后一个子元素 :first-child :last-child。

6. 指定子元素选择器/奇偶选择器 :nth-child(n) :nth-last-child(n)。

7. 第一个与最后一个匹配类型的子元素 first-of-type last-of-type,分别选择匹配类型元素的第一个和最后一个。

8. 指定匹配类型子元素选择器/匹配类型奇偶选择器 :nth-of-type(n) :nth-last-of-type(n)。

晃眼一看,P标签的索引全是2N,但并非如此,:nth-of-type仅针对的是所有p元素,你就把它当做除P之外的标签都不存在,然后再来找满足索引为2n的。

9. 唯一子元素选择器 only-child。
匹配的元素是独生子,没有兄弟元素,而且是一个唯一的子元素。(而不是一个只有一个元素的父元素)

10. 唯一匹配类型的子元素 only-of-type

第一个盒子里的div能匹配到,但第二个不能。因为在第二个里div有两个,不唯一。

11. 关于input的三个选择器,可用选择器 :enabled,不可用选择器 :disabled,被选中选择器 :checked。

12. 比较冷门的几个选择器,只读选择器 :read-only,非只读选择器 :read-write,高亮选择器 ::selection。

在网站中,你可以用::selection选择器把字体颜色和背景颜色设置为同一个颜色,给人一种文字无法选中的感觉。