热门标签 | HotTags
当前位置:  开发笔记 > 前端 > 正文

CSS3选择器之:nthchild()伪类选择器详解

1、语法:nth-child(anb)注意:(anb)不能写成(ban);描述:伪类:nth-child()的参数是anb,如果按照w3.org上的描述ÿ

1、语法:nth-child(an+b

注意: (an+b)不能写成(b+an);

描述:伪类:nth-child()的参数是an+b,如果按照w3.org上的描述,写成中文,很可能会让人头晕,再加上笔者的文笔水平有限,所以我决定避开an+b的说法,把它拆分成5种写法共5部分来说明。


2、用法:

2-1.简单数字序号写法 --->:nth-child(3);
:nth-child(number) 
直接匹配第number个元素。参数number必须为大于0的整数。  

        实例:去除ul中第三个li的上边框

ul li:nth-child(3){border-top:none;}


2-2.倍数写法 --->:nth-child(4n);
:nth-child(an) 
匹配所有倍数为a的元素。其中参数an中的字母n不可缺省,它是倍数写法的标志,如3n、5n。 

实例:去除ul中所有3的倍数的li的上边框

ul li:nth-child(3n){border-top:none;}


2-3.倍数分组匹配 --->:nth-child(4n+1)
:nth-child(an+b) 与 :nth-child(an-b) 
先对元素进行分组,每组有a个,b为组内成员的序号,其中字母n和加号+不可缺省,位置不可调换,这是该写法的标志,其中a,b均为正整数或0。如3n+1、5n+1。但加号可以变为负号,此时匹配组内的第a-b个。(其实an前面也可以是负号,但留给下一部分讲。) 

实例:去除ul中所有3n+1的li的上边框,即1,4,7,10的li

ul li:nth-child(3n+1){border-top:none;}


2-4.反向倍数分组匹配 --->:nth-child(-3n+1)
:nth-child(-an+b) 
此处一负一正,均不可缺省,否则无意义。这时与:nth-child(an+1)相似,都是匹配第1个,但不同的是它是倒着算的,从第b个开始往回算,所以它所匹配的最多也不会超过b个。 

实例:去除ul中所有-3n+10的li的上边框,即10,7,4,1的li

ul li:nth-child(-3n+10){border-top:none;}


2-5.奇偶匹配 
:nth-child(odd) 与 :nth-child(even) 
分别匹配序号为奇数与偶数的元素。奇数(odd)与(2n+1)结果一样;偶数(even)与(2n+0)及(2n)结果一样。


3、:nth-child(an+b)兼容性解决方法:(主要针对IE6,7,8)

使用jquery方法解决,具体如下:

原: ul li:nth-child(4n+1){color:red};

在jQuery中写:$("ul li:nth-child(4n+1)").css({"color","red"});

想一探究竟的童鞋可以去看看jquery中的源码。咳咳

或者看看这个点击打开链接



推荐阅读
author-avatar
我爱你2602912303
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有