标签:red doctype 节点 选择器 title 资料 tle -o body
对比了一下W3CSchool 中针对伪类选择器 :last-child 以及 :last-of-type的描述,如下:
:last-child p:last-child 选择属于其父元素最后一个子元素每个 <p> 元素。
:last-of-type p:last-of-type 选择属于其父元素的最后 <p> 元素的每个 <p> 元素。
说句老实话,在不懂这两个关系的时候,越看这两句描述,越是别扭,绕口,难懂,查阅网上资料搞懂了以后,就觉得说的还是蛮有道理的。
以一段代码为例:
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>last-child 和 last-of-type区别</title> <style type="text/css"> p:last-child{ color: red; } p:last-of-type{ color: blue; } </style> </head> <body> <div> <p>第一行</p> <p>第二行</p> <p>第三行</p> <span>我是测试行</span> </div> </body> </html>
运行的结果显示:没有任何一行显示为红色,第三行显示为蓝色。或许你可能会觉得两个选择器选中的是同一行,但是当你注释掉蓝色选择器的时候会发现,红色依然未被选中。
其实红色未被选中的原因很简单,上篇文章已经讲过,这里简单的描述一下
:last-child选择父节点最后一个子节点,并且与选择器进行匹配, 父节点div的最后一个节点是span,而匹配的选择器是p,两者不对应所以匹配不上。
而另外一个选择器
:last-of-type是从父节点的子节点中寻找最后一个与选择器相同的子节点,也就是说,这次寻找的并不是最后一个节点,而是最后一个P元素节点,所以只能找到第三行了。
(CSS):last-child与:last-of-type区别
标签:red doctype 节点 选择器 title 资料 tle -o body
原文地址:https://www.cnblogs.com/whbniit/p/8996987.html