CSS :nth-last-child()
伪类选择器基于索引来匹配父元素中的子元素,从最后一个子元素开始计数。
:nth-last-child()
伪类选择器的参数在W3C官方表示为an+b
。an+b为一个公式. a,b为常量, n的取值是从0开始的整数。
如果将参数进行拆分,可以分为以下几种情况:
1、提供一个正数作为参数。
你可以为:nth-last-child()
提供一个正数作为参数。它表示要选择父元素中从最后一个元素起往上数,索引为该数值的子元素(索引值从1开始)。例如:
li:nth-last-child(
2
){
background
:
red
;
/*将倒数第二个li元素的背景颜色设置为红色*/
}
|
2、关键字表示法。
你可以使用关键字odd
或even
来选择元素,奇数和偶数均从最后一个元素开始计数。even
表示选择偶数项的子元素,odd
表示选择奇数项的子元素。例如:
table tr:nth-last-child(even){
/* 将表格中所有的偶数行的背景颜色设置为灰色 */
/* 从最后一行开始向上数,最后一行为1,是奇数,倒数第二行为2,是偶数*/
background
:
#ccc
;
}
|
3、倍数表示法。
:nth-last-child(an)
|
这种方法匹配所有从最后一个子元素开始计数,倍数为a的元素。其中参数an中的字母n不可缺省,它是倍数写法的标志,如2n、3n。例如:
li:nth-last-child(
3
n){
background
:orange;
/*把倒数第3、第6、第9、…、所有倒数为3的倍数的LI的背景设为橙色*/
}
|
4、倍数分组匹配。
:nth-last-child(an+b)
/* 或者 */
:nth-last-child(an-b)
|
先对元素进行分组,每组有a个,b为组内成员的序号,其中字母n和加号+不可缺省,位置不可调换,这是该写法的标志,其中a,b均为正整数或0。如3n+1、5n+1。但加号可以变为负号,此时匹配组内的第a-b个。例如:
/* 浏览器解析时,n依次等于0、1、2...*/
/* 所以(3n+1) 就等于1、4、7...*/
li:nth-last-child(
3
n+
1
){
background
:
blue
;
/*匹配倒数第1、4、7...个li元素*/
}
/* 浏览器解析时,n依次等于0、1、2...*/
/* 所以(3n+5) 就等于1、8、11...*/
li:nth-last-child(
3
n+
5
){
background
:
red
;
/* 匹配倒数第1、8、11...的li元素*/
}
|
示例代码
下面的代码为表格创建斑马线效果:
tr:nth-last-child(even) {
background-color
:
#eee
;
}
|
下面都是有效的:nth-child()
取值:
li:nth-last-child(-n+
1
) {}
p:nth-last-child(odd) {}
tr:nth-last-child(
2
n) {}
/* 2n 等效于 "even" */
article:nth-last-child(
2
n+
1
) {}
/* 2n+1 等效于 "odd" */
li:nth-last-child(
4
n+
1
) {}
|
在线演示
下面的例子使用li:nth-last-child(3n+1)
来匹配li元素,因此,第11(倒数第1项)、8(倒数第4项)、5(倒数第7项)、2(倒数第10项)项li元素的背景颜色会被修改。
- List Item 1
- List Item 2
- List Item 3
- List Item 4
- List Item 5
- List Item 6
- List Item 7
- List Item 8
- List Item 9
- List Item 10
- List Item 11
浏览器支持
所有的现代浏览器都支持:nth-last-child()
伪类选择器,包括:Chrome, Firefox, Safari, Opera9.5+, Internet Explorer 9+ 以及 Android 和 iOS。