CSS3 :nth-child()伪类选择器实现奇偶行显示不同样式


Posted in HTML / CSS onNovember 05, 2013

css3的强大,让人惊叹,人们在惊喜之余,又不得不为其艰难的道路感到可惜:好的标准只有得到行业浏览器的良好支持才算得上“标准”。CSS3标 准已提出数年,但是目前能实现她的浏览器并不多,虽然部分浏览器能实现部分规范,但这又有什么用呢?面对更多的兼容性问题,CSSer们只有望洋轻叹。虽 然如此,但有前瞻性的我们,又怎能停步不前呢?今天我们就来“前瞻”一下CSS3的一个伪类选择器“:nth-child()”。

语法:
:nth-child(an+b)
为什么选择她,因为我认为,这个选择器是最多学问的一个了。很可惜,据我所测,目前能较好地支持她的只有Opera9+和Safari3+。

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

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

例子:

复制代码
代码如下:

li:nth-child(3){background:orange;}/*把第3个LI的背景设为橙色*/

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

例子:

复制代码
代码如下:

li:nth-child(3n){background:orange;}/*把第3、第6、第9、…、所有3的倍数的LI的背景设为橙色*/

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

例子:

复制代码
代码如下:

li:nth-child(3n+1){background:orange;}/*匹配第1、第4、第7、…、每3个为一组的第1个LI*/
li:nth-child(3n+5){background:orange;}/*匹配第5、第8、第11、…、从第5个开始每3个为一组的第1个LI*/
li:nth-child(5n-1){background:orange;}/*匹配第5-1=4、第10-1=9、…、第5的倍数减1个LI*/
li:nth-child(3n±0){background:orange;}/*相当于(3n)*/
li:nth-child(±0n+3){background:orange;}/*相当于(3)*/

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

例子:

复制代码
代码如下:

li:nth-child(-3n+8){background:orange;}/*匹配第8、第5和第2个LI*/
li:nth-child(-1n+8){background:orange;}/*或(-n+8),匹配前8个(包括第8个)LI,这个较为实用点,用来限定前面N个匹配常会用到*/

第五种:奇偶匹配
:nth-child(odd) 与 :nth-child(even)
分别匹配序号为奇数与偶数的元素。奇数(odd)与(2n+1)结果一样;偶数(even)与(2n+0)及(2n)结果一样。
HTML / CSS 相关文章推荐
CSS3教程(2):网页边框半径和网页圆角
Apr 02 HTML / CSS
CSS3模块的目前的状况分析
Feb 24 HTML / CSS
Css3新特性应用之视觉效果实例
Dec 12 HTML / CSS
CSS3效果:自定义“W”形运行轨迹实例
Mar 29 HTML / CSS
CSS3 实现的火焰动画
Dec 07 HTML / CSS
整理HTML5的一些新特性与Canvas的常用属性
Jan 29 HTML / CSS
用html5绘制折线图的实例代码
Mar 25 HTML / CSS
HTML5+CSS3:3D展示商品信息示例
Jan 03 HTML / CSS
html5 canvas绘制网络字体的常用方法
Aug 26 HTML / CSS
CSS使用Flex和Grid布局实现3D骰子
Aug 05 HTML / CSS
使用CSS实现按钮边缘跑马灯动画
May 07 HTML / CSS
HTML 里 img 元素的 src 和 srcset 属性的区别详解
May 21 HTML / CSS
css3实现图片遮罩效果鼠标hover以后出现文字
Nov 05 #HTML / CSS
css3的transition效果和transfor效果示例介绍
Oct 30 #HTML / CSS
CSS3之多背景background使用示例
Oct 18 #HTML / CSS
CSS3之背景尺寸Background-size使用介绍
Oct 14 #HTML / CSS
CSS3之边框多颜色Border-color属性使用示例
Oct 11 #HTML / CSS
CSS3文本换行word-wrap解决英文文本超过固定宽度不换行
Oct 10 #HTML / CSS
CSS3图片旋转特效(360/60/-360度)
Oct 10 #HTML / CSS
You might like
Access数据库导入Mysql的方法之一
2006/10/09 PHP
php中文字母数字验证码实现代码
2008/04/25 PHP
PHP UTF8编码内的繁简转换类
2009/07/20 PHP
PHP反转字符串函数strrev()函数的用法
2012/02/04 PHP
用PHP和Shell写Hadoop的MapReduce程序
2014/04/15 PHP
PHP定时执行任务实现方法详解(Timer)
2015/07/30 PHP
php实现的XML操作(读取)封装类完整实例
2017/02/23 PHP
python进程与线程小结实例分析
2018/11/11 PHP
PHP切割整数工具类似微信红包金额分配的思路详解
2019/09/18 PHP
JQuery与Ajax常用代码实现对比
2009/10/03 Javascript
window.opener用法和用途实例介绍
2013/08/19 Javascript
为jQuery添加Webkit的触摸的方法分享
2014/02/02 Javascript
js中style.display=""无效的解决方法
2014/10/30 Javascript
jQuery中animate用法实例分析
2015/03/09 Javascript
jquery实现的树形目录实例
2015/06/26 Javascript
javascript实现一个网页加载进度loading
2017/01/04 Javascript
Vue-resource拦截器判断token失效跳转的实例
2017/10/27 Javascript
详解create-react-app 自定义 eslint 配置
2018/06/07 Javascript
javascript跳转与返回和刷新页面的实例代码
2019/11/20 Javascript
Vue组件模板的几种书写形式(3种)
2020/02/19 Javascript
OpenCV图像颜色反转算法详解
2019/05/13 Python
Python读取实时数据流示例
2019/12/02 Python
Python字符串格式化f-string多种功能实现
2020/05/07 Python
keras绘制acc和loss曲线图实例
2020/06/15 Python
Python SMTP配置参数并发送邮件
2020/06/16 Python
python读取图片颜色值并生成excel像素画的方法实例
2021/02/19 Python
编写html5时调试发现脚本php等网页js、css等失效
2013/12/31 HTML / CSS
汤米巴哈马官方网站:Tommy Bahama
2017/05/13 全球购物
《我爱祖国》演讲稿1000字
2014/09/26 职场文书
城管执法人员个人对照检查材料思想汇报
2014/09/29 职场文书
学校后勤工作总结2015
2015/05/15 职场文书
离婚财产分割协议书
2015/08/11 职场文书
推荐六本经典文学奖书籍:此生必读
2019/08/22 职场文书
导游词之南京莫愁湖公园
2019/11/13 职场文书
雄兵连:第三季先行图公开,天使恶魔联合,银河之力的新力量
2021/06/11 国漫
Python之matplotlib绘制饼图
2022/04/13 Python