CSS中的:first-child和:last-child作用不显示的问题(解决方法)

  • Post author:
  • Post category:其他


首先要搞清楚在结构化伪类选择器中


:first-child



last-child选择器



:first-of-type



:last-of-type选择器

之间的关系。

1、概念

(1)

:first-child



last-child选择器分别用于为父元素中的第一个或者最后一个子元素设置样式。(父元素下的(body除外)第一个或最后一个元素,必须在结构的第一位或者最后一位)

(2)

:first-of-type



:last-of-type选择器用于匹配属于父元素的第n个子元素和倒数第n个子元素。(同结构内首次或最后出现的元素,无需在结构的第一位或者最后一位)

2、问题描述

我遇到的问题是”江流宛转绕芳殿”没有应用我所写的样式


3、问题解析及解决(重点)

(1)通过对概念的刨析,我认为是标记的结构所导致。在<body></body>中,有5个<p>元素,来看第一个<p>标记,它确实是第一个父级元素,也是父级元素下第一个子元素,所以被选中了,但我们要找的是父级元素下的第一个或者最后一个子元素,这才是

:first-child



last-child选择器

的用处所在。

(2)我们将第一个<p>标记下加上几个子元素,再来试验一下

(3)试验成功,可以看到

:first-child



last-child选择器

都生效了,这个就是

:first-child



last-child选择器的功能。

所以说要搞清楚选择器的本质。当然也有可能是浏览器的问题,可以自己研究研究。

4、理论扩展

回到刚开始我遇到的问题上,如果要实现<p>标记中的”江流宛转绕芳殿”被选中,并应用我们写的样式怎么办?

答案是用

:first-of-type



:last-of-type选择器

来解决。因为它们的作用是在同级结构中,而不是像

:first-child



last-child选择器

那样,在父级结构之下。

5、解决步骤:更换选择器即可,改用

:first-of-type



:last-of-type选择器。

大功告成。

总结:对于CSS中的多种选择器,在接触时难免会有所疏忽,特别是这几个功能类似的选择器,但是遇到问题总要解决,不可半途而废。



版权声明:本文为weixin_49122171原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。