Css之选择器

Posted by Shen Chaoran on September 15, 2017

选择器的分类

  • 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编码!