CSS 选择器无疑是其核心之一,对于基础选择器以及一些常用伪类必须掌握。下面列出了常用的选择器。
基础选择器
- 标签选择器:
h1
- 类选择器:
.checked
- ID选择器:
#picker
- 通配选择器:
*
属性选择器
[attr]
: 指定属性的元素;[attr=val]
: 属性等于指定值的元素;[attr*=val]
: 属性包含指定值的元素;[attr^=val]
:属性以指定值开头的元素;[attr$=val]
:属性以指定值结尾的元素;[attr~=val]
:属性包含指定值(完整单词)的元素(不推荐使用);[attr|=val]
:属性以指定值(完整单词)开头的元素(不推荐使用);
例如:懒加载1
<img data-src="1.png"/>
1
document.querySelectorAll('img[data-src]');//使用标签选择器和属性选择器
组合选择器
- 相邻兄弟选择器:
A + B
; - 普通兄弟选择器:
A ~ B
; - 子选择器:
A > B
; - 后代选择器:
A B
;
伪类
条件伪类
:lang()
:基于元素语言来匹配页面元素;:dir()
:匹配特定文字书写方向的元素;:has()
:匹配包含指定元素的元素;:is()
:匹配指定选择器列表里的元素;:not()
:用来匹配不符合一组选择器的元素;
行为伪类
:active
:鼠标激活的元素;:hover
: 鼠标悬浮的元素;::selection
:鼠标选中的元素
状态伪类
:target
: 当前锚点的元素;:link
: 未访问的链接元素;:visited
: 已访问的链接元素;foucs
: 输入聚焦的表单元素;*:required
:输入必填的表单元素;*:valid
:输入合法的表单元素;*:invalid
:输入非法的表单元素;*:in-range
:输入范围以内的表单元素;*:out-of-range
:输入范围以外的表单元素;*:checked
:选项选中的表单元素;*:optional
:选项可选的表单元素;*:enabled
:事件启用的表单元素;*:disabled
:事件禁用的表单元素;*:read-only
:只读的表单元素;*:read-write
:可读可写的表单元素;*:blank
:输入为空的表单元素;*:current()
:浏览中的元素;*:past()
:已浏览的元素;*:future()
:未浏览的元素;
结构伪类
:root
:文档的根元素;:empty
:无子元素的元素;:first-letter
:元素的首字母;:first-line
:元素的首行;:nth-child(n)
:元素中指定顺序索引的元素;:nth-last-child(n)
:元素中指定逆序索引的元素;;:first-child
:元素中为首的元素;:last-child
:元素中为尾的元素;:only-child
:父元素仅有该元素的元素;:nth-of-type(n)
:标签中指定顺序索引的标签;:nth-last-of-type(n)
:标签中指定逆序索引的标签;:first-of-type
:标签中为首的标签;:last-of-type
:标签中为尾标签;:only-of-type
:父元素仅有该标签的标签;
伪元素
::before
:在元素前插入内容;::after
:在元素后插入内容;