Structural伪类选择器Structural伪类选择器是根据DOM树中DOM元素的结构特征(与父节点或兄弟节点的关系)进行匹配选择,比如元素的第一个子节点,最后一个节点,依此类推。:nth-child(an+b)1。函数nth发音为/enθ/,表示第n个孩子。匹配匹配元素指定位置(an+b计算的结果)的兄弟元素。“位置”也可以称为下标,下标从1开始,计数方式为从前到后(与:nth-last-child相反)。下标值等于表达式an+b的计算结果。2、语法:下标计算表达式an+b中的nth-child(an+b):a、b为系数,可以为任意整数;n是一个字面量的“n”,表示它是一个增量变量,它的值是从0开始的整数。比如a=3,b=1,那么计算出的下标是(n从0开始递增):n=0->3*0+1=1n=1->3*1+1=4n=2->3*2+1=7...即匹配下标为1,4,7的兄弟元素....比如a=-3,b=1,计算下标为:n=0->-3*0+1=1n=1->-3*1+1=-2(结果valueislessthan1,invalid)n=2->-3*2+1=-5(resultvaluelessthan1,invalid)...即只匹配下标为1的兄弟元素。3、比如我们有一段html:
/*表示下标1,3,5的li标签的字体颜色,and7isred*/li:nth-child(2n+1){color:red;}/*表示下标为2、4、6、8的li标签字体颜色为红色*/li:nth-child(2n){color:red;}4.下标变量变量odd和even是特殊的下标值,分别代表奇数和偶数位置。/*表示下标为1、3、5、7的li标签字体颜色为红色*/li:nth-child(odd){color:red;}/*表示下标为2、3、4,8li标签的字体颜色为red*/li:nth-child(even){color:red;}5.省略符号当a=1或a=-1时,a可以省略,只表示符号a=0时保留,a部分可以省略。当b=0时,b部分可以省略。当b<0时,必须省略加号+:nth-child(10n+-1)/*无效语法,必须省略加号*/:nth-child(10n-1)/*有效的写法*/6。总结1)下标从1开始,小于1的计算结果无效:nth-??last-child(an+b)函数和语法相同:nth-child,只是下标的计数方式不同。nth-last-child从后往前数。:nth-of-type(an+b)1。函数匹配元素的指定位置(an+b计算的结果),是同类型的兄弟元素。与:nth-child在功能和语法上的唯一区别是:nth-??of-type比后者多了一个限制,即只有具有相同标签的兄弟元素才算数。如HTML片段如:
2