《HTML 5与CSS 3 权威指南(第4版·下册)》 —16.3.3 选择器first-child、last-child、n

举报
华章计算机 发表于 2019/11/21 18:29:25 2019/11/21
【摘要】 本节书摘来自华章计算机《HTML 5与CSS 3 权威指南(第4版·下册)》一书中第16章,第16.3.3节,作者是陆凌牛。

16.3.3 选择器first-child、last-child、nth-child和nth-last-child

本节介绍first-child选择器、last-child选择器、nth-child选择器与nth-last-child选择器。利用这几个选择器,能够特别针对一个父元素中的第一个子元素、最后一个子元素、指定序号的子元素,甚至第偶数个或第奇数个子元素进行样式的指定。

1.单独指定第一个子元素、最后一个子元素的样式

接下来,让我们看一个示例。该示例对ul列表中的li列表项目进行样式的指定,在样式中对第一个列表项目与最后一个列表项目分别指定不同的背景色。

如果要对第一个列表项目与最后一个列表项目分别指定不同的背景色,目前为止采取的做法都是:分别给这两个列表项目加上class属性,然后对这两个class使用不同的样式,在两个样式中分别指定不同的背景色。但是,如果使用first-child选择器与last-child选择器,这个多余的class属性就不需要了。

接下来,我们在代码清单16-11中看一下如何使用first-child选择器与last-child选择器将第一个列表项目的背景色指定为黄色,将最后一个列表项目的背景色设定为浅蓝色。

代码清单16-11 first-child选择器与last-child选择器使用示例

image.png

这段代码的运行结果如图16-15所示。

 image.png

图16-15 first-child选择器与last-child选择器使用示例

另外,如果页面中具有多个ul列表,则该first-child选择器与last-child选择器对所有ul列表都适用,如代码清单16-12所示。

代码清单16-12 具有多个列表时first-child选择器与last-child选择器使用示例

image.png

这段代码的运行结果如图16-16所示。

另外,first-child选择器在CSS 2中就已存在,目前为止被Firefox、Safari、Google Chrome、Opera浏览器所支持,从IE 7开始被IE浏览器所支持。

last-child选择器从CSS 3开始被提供,目前为止被Firefox、Safari、Google Chrome、Opera浏览器所支持,到IE 8为止还没有获得IE浏览器的支持。

 image.png

图16-16 具有多个列表时first-child选择器与last-child选择器使用示例

2.对指定序号的子元素使用样式

如果使用nth-child选择器与nth-last-child选择器,不仅可以指定某个父元素中第一个子元素以及最后一个子元素的样式,还可以针对父元素中某个指定序号的子元素来指定样式。这两个选择器是first-child及last-child的扩展选择器。这两个选择器的样式指定方法如下所示。

nth-child(n){

// 指定样式

}

<子元素>:nth-last-child(n){

// 指定样式

}

将指定序号书写在“nth-child”或“nth-last-child”后面的括号中,如“nth-child(3)”表示第三个子元素,“nth-last-child(3)”表示倒数第三个子元素。

在代码清单16-13中,我们给出一个使用这两个选择器的示例,在该示例中,指定ul列表中第二个li列表项目的背景色为黄色,倒数第二个列表项目的背景色为浅蓝色。

代码清单16-13 nth-child选择器与nth-last-child选择器使用示例

image.png

image.png

这段代码的运行结果如图16-17所示。

另外,这两个选择器都是从CSS 3开始被提供,目前为止被Firefox、Safari、Google Chrome、Opera浏览器所支持,到IE 8为止还没有受到IE浏览器的支持。

image.png

3.对所有第奇数个子元素或第偶数个子元素使用样式

除了对指定序号的子元素使用样式以外,nth-child选择器与nth-last-child选择器还可以用来对某个父元素中所有第奇数个子元素或第偶数个子元素使用样式。使用方法如下所示。

nth-child(odd){

// 指定样式

}

// 所有正数下来的第偶数个子元素

<子元素>:nth-child(even){

// 指定样式

}

// 所有倒数上去的第奇数个子元素

<子元素>:nth-last-child(odd){

// 指定样式

}

// 所有倒数上去的第偶数个子元素

<子元素>:nth-last-child(even){

// 指定样式

}

接下来,我们在代码清单16-14中看一个使用nth-child选择器来分别针对ul列表的第奇数个列表项目与第偶数个列表项目指定不同背景色的示例。在该示例中将所有第奇数个列表项目的背景色设为黄色,将所有第偶数个列表项目的背景色设为浅蓝色。

代码清单16-14 使用nth-child对第奇数个、第偶数个子元素使用不同样式示例

image.png

这段代码的运行结果如图16-18所示。

另外,使用nth-child选择器与nth-last-child选择器时,虽然在对列表项目使用时没有问题,但是当用于其他元素时,还是会出现问题,在16.3.4节中,我们将阐述会产生哪些问题,以及怎么解决这些问题。


【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。