1、简单选择器:(1)、类型选择器:根据一个元素的标签名来选中元素。
(2)、全体选择器:可以选中任意元素(*)。
(3)、id选择器:#name .
(4)、class选择器: .name。
(5)、属性选择器:[att]、[att=val]、[att~=val]、[att|=val]
(6)、伪类选择器:树结构关系伪类选择器,链接与行为伪类选择器,逻辑与其他选择器。
树结构关系伪类选择器:
[1]、:root 表示树的跟元素,一般用html标签即可选中根元素。
[2]、:empty 表示没有子节点的元素,例外:子节点为空白文本的情况,,意思就是如果<div> </div>一个标签中有空格就不算没有子节点
[3]、:nth-child 和 :nth-last-child 根据你提供的计算方法选择元素 例:nth-child(3n-1 of li.inportant),选择3n-1的li.important节点。
2、复合选择器:连续写在一起的简单选择器
3、复杂选择器:由“空格”,“>”,“~”,“+”,“||”等符号连接的复合选择器。
(1)、“空格”:后代选择器,表示选中所有符合条件的后代节点。
(2)、“>”:子代选择器,表示选中符合条件的子节点。
[子代选择器只能选择自己的子类,孙子类选不上,后代选择器可以选择所有的后代]。
(3)、“~”:后继选择器:表示选中所有符合条件的后继节点。
(4)、“+”:直接后继选择器:表示选中符合条件的直接后继节点。
[“~”选择处于当前父元素的所有兄弟节点,“+”选择某元素后相邻的兄弟节点,紧挨着的,单个的]。
(5)、“||”:列选择器:表示选中对应列中符合条件的单元格。
4、选择器列表:有逗号分隔的复杂选择器,表示“或”的关系。
5、选择器的优先级:[1]、id选择器为a。[2]、class选择器和伪类选择器记做b。[3]、伪元素选择器和标签选择器记为c。[4]、“ * ” 不影响优先级。
CSS标准有一个三元组(a、b、c)来构成一个复杂选择器的优先级。优先级的算法:specificity=base*base*a+base*b+c;【base是一个足够大的整数】