CSS3选择器:last-child与:last-of-type区别

360 阅读1分钟

这是2个常用又容易混淆的选择器,在此记录一番。

:last-child

该选择器用来匹配父元素中最后一个子元素,需要注意的是,选择器前面的标签指的是子元素,而不是父元素。

image.png

上图来看,选择器正常工作,但是一旦p标签后面有别的标签,则会失败:

image.png

所以,对于p:last-child来说,指的是作为最后一个子元素存在的p标签,而不是p标签中最后一个子元素。

:last-of-type

要解决上面的问题,可以使用另一个选择器::last-of-type, 该选择器用来匹配位于同一父元素下特定类型中的最后一个子元素

image.png

选择成功,所以对于p:last-of-type来说,这些p标签是同一个父元素,然后再匹配这些p标签中的最后一个,该标签可以不是父元素中的最后一个子元素。