连续选取几个选取第几个元素nthchi

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

1、first-child

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

li:first-child{background:#}

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

2、last-child

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

li:last-child{background:#}

3、nth-child(3)

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

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

上面代码中的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.

2.

3.

4.

5.

6.

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

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

divspan:not(:first-child){

margin-left:10px

}

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

divspan+span{

margin-left:10px

}

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

1.

1.

2.

3.

4.

5.

6.

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

div*:not(:first-child){

margin-left:10px

}




转载请注明:http://www.aierlanlan.com/rzgz/3527.html