选择器的分类
- ID选择器:
'#id'
- 类选择器:
'.class'
- 属性选择器:
[title]
- 伪类选择器:
:link, :visited, :hover, :active, :target, :root, :not, :host, :host-context, :content
- 相邻选择器:
selector + selector
- 兄长选择器:
selector ~ selector
,同级元素 - 后代选择器:
.parent .children
- 亲子选择器:
.parent>.child
- 标签选择器:
'div'
- 伪元素选择器:
::first-letter,::first-line,::after,::before,::selection, ::shadow
- 通配符选择器:
*
常见用法
子元素选择器:A>B
后代元素选择器:A B
这种选择器有一点特殊的地方:A和B必须同为元素选择器或者类选择器如:
正确:
'div span'
'.classsA .classB'
错误:
'div .class'
并集选择器:A,B
||
操作符
多类选择器:AB
&&
操作符
毗邻元素选择器:A+B
匹配紧随A后的B类同级元素
权重
|类型|权重|示例|
|-|-|-|
|内联样式|1000|Hello World
|
|Id选择器|100||
|类、伪类、属性、选择器|10|.selected|
|标签|1|p,a,div|
|伪元素|1|::after, ::before, ::first-letter, ::selection|
|通配符 * |0|*|
|复合选择器|两个选择器相加|.parent .children|
bugs
转义字符
使用h5的querySelector选择首字母是数字时,需要转义。
如果identifier的首字符是数字,那么你需要基于它的Unicode编码点(unicode code point)进行转义。例如,字符1的Unicode编码点是U+0031,所以你需要将其转义成\000031或\31 (注意一下这里有个空格)。
大致说来,转换任何数字字符的时候,你只需要在这个数字的前面加上\3并且在转义的末尾缀上一个空格。是的,Unicode编码!