在前端开发中,我们可能会碰到这样的需求:想让列表中的第一个部分显示不同的样式 ,想让列表中的偶数部分显示不同的背景颜色,想让列表中的最后一部分样式不一样……这样的需求,我们怎样来实现?其实,如果前面文件是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
属性,就能实现比较好的效果了。
可以利用not
和first-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…
标签:
原文地址:http://blog.csdn.net/jzj1993/article/details/44520253