:last child OR:如果后面跟有任何元素,则first child NOT WORKING



我不知道为什么选择器:第一个孩子为'p'元素和NOT:最后一个孩子作,而下面的span元素也发生了同样的情况,其中:最后一个子子子工作,但:first child不工作。(我想所有这些元素的默认父元素都是body元素(。我发现,如果我把任何元素放在段落元素后面,它(p:last child(都不起作用,甚至对下面的元素(span(起到奇怪的作用,为什么当我特别告诉它选择父元素(在这种情况下是主体(的'p'(或span(元素的最后/第一个子元素时,它不起作用?

<html>
<head>
<style> 
p:first-child  {
background: red;
}
span:last-child  {
background: red;
}
</style>
</head>
<body>
<p>The first paragraph.</p>
<p>The second paragraph.</p>
<p>The second paragraph.</p>
<span>A..</span><span>B.. </span><span>C.. </span>
</body>
</html>

编辑:我刚刚发现所有这些的SPEC:第一个类型,最后一个类型,第一个孩子和:最后一个孩子说-";所选元素必须具有父元素。从选择器级别4开始,这不再是必需的";,这意味着他们的规范中有一个小故障。如果他们不需要任何父母,那么它必须工作,即使他们需要,他们在我的情况下也有一个(身体元素(。首先,根据SPEC,它们不需要再是子元素,其次,它们确实是默认body元素的子元素。因此,所有这些都应该起作用(相对于母体(。

因为第三个p不是最后一个子级,而第一个span不是父级的第一个子级。

第三个pp:last-of-type,但不是p:last-child
同样,第一个spanspan:first-of-type,而不是span:first-child

p:first-child  {
color: red;
}
p:last-child {
color: blue;  /*This doesn't work*/
}
p:last-of-type {
color: green;
}
span:first-child  {
color: red;  /*This doesn't work*/
}
span:first-of-type {
color: blue;
}
span:last-child {
color: green;
}
<div>
<p>The first paragraph.</p>
<p>The second paragraph.</p>
<p>The second paragraph.</p>
<span>A..</span>
<span>B.. </span>
<span>C.. </span>
</div>

您无法理解这些选择器是如何工作的。

CCD_ 9和CCD_。在它前面加上像pspan这样的选择器,进一步限制了:first-child:last-child已经匹配的元素列表。

所以p:first-child实际上意味着查找所有作为其父元素的第一个子元素的元素;那么从这些发现中,只给我p元素

最新更新