CSS选取第几个标签元素:nth-child、first-child、last-child

在前端开发中,我们可能会碰到这样的需求:想让列表中的第一个部分显示不同的样式 ,想让列表中的偶数部分显示不同的背景颜色,想让列表中的最后一部分样式不一样……这样的需求,我们怎样来实现?其实,如果前面文件是php开发的,可以通过php的循环语句+判断语句+css样式来实现。但是,如果是静态代码,php就无法用了。这时,我们还可以通过CSS来实现,CSS给我们提供了几个非常有用的样式参数:first-child、last-child、nth-child(n)。下面,详细看一下它们的使用。

1、first-child

first-child表示选择列表中的第一个标签。代码如下:

li:first-child{background:#090}

上面的意思是,li 列表中的 第一个li模块的背景颜色。

2、last-child

last-child表示选择列表中的最后一个标签,代码如下:

li:last-child{background:#090}

3、nth-child(3)

表示选择列表中的第3个标签,代码如下:

li:nth-child(3){background:#090}

上面代码中的3也可以改成其它数字,如4、5等。想选择第几个标签,就填写几。

**4、nth-child(2n) **

这个表示选择列表中的偶数标签,即选择 第2、第4、第6…… 标签。

5、nth-child(2n-1)

这个表示选择列表中的奇数标签,即选择 第1、第3、第5、第7……标签。

6、nth-child(n+3)

这个表示选择列表中的标签从第3个开始到最后。

7、nth-child(-n+3)

这个表示选择列表中的标签从0到3,即小于3的标签。

8、nth-last-child(3)

这个表示选择列表中的倒数第3个标签。

上面这些CSS样式是非常有用的,在我们的网页开发过程中,会派上非常大的用场,可以给我们的网页带来不一样的风格。如上一章中我们介绍的“为导航菜单添加分隔符”,就用到了 first-child。

标签:

有时候我们需要用CSS选择非第一个子元素,例如下面这样的HTML,希望让两个span之间间隔一定的距离,但又不希望简单的给每个span设置margin-right(会导致最后一个span也有margin-right,可能影响之后元素的排版)。

1. 
1. <div>
2. <span></span>
3. <span></span>
4. <span></span>
5. <span></span>
6. </div>
复制代码

这时如果能排除第一个元素,并给其他元素设置margin-left属性,就能实现比较好的效果了。

可以利用notfirst-child,通过下面的CSS实现。

1. 
1. div > span :not(:first-child){
2.     margin-left:10px
3. }
复制代码

还可以利用兄弟元素选择器+,像这样:

1. 
1. div > span + span {
2.     margin-left:10px
3. }
复制代码

如果HTML是这样的,应该怎么做呢?

1. 
1. <div>
2. <span></span>
3. <p></p>
4. <span></span>
5. <span></span>
6. </div>
复制代码

其实也很简单,用通配符就可以了:

1. 
1. div >*:not(:first-child){
2.     margin-left:10px
3. }
复制代码

本文由jzj1993原创,转载请注明来源:www.hainter.com/css3-not-fi…

CSS3选择非第一个子元素

标签:

原文地址:http://blog.csdn.net/jzj1993/article/details/44520253

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值