【发布时间】:2020-02-20 20:39:28
【问题描述】:
我没有完全理解一些 css 伪类选择器的行为。
看看这个简单的html模板:
<body>
<div>
<p>One</p>
<p>Two</p>
</div>
<div>
<p>Three</p>
<p>Four</p>
</div>
<div>
<p>Five</p>
<p>Six</p>
</div>
<div>
<p>Seven</p>
<p>Eight</p>
</div>
</body>
我不明白为什么下面的 css 实际上会将样式应用于第一个 div:
div:nth-child(1){
color: red;
}
并且下面的 css 不会将样式应用到最后一个 div:
div:nth-last-child(1){
color: red;
}
据我了解nth-child选择器会找到目标,寻找他的父母并选择与目标相对应的nth-child。
感谢您的帮助。
安德烈亚
【问题讨论】:
-
div:nth-last-child(1)为什么会选择倒数第二个 div ?为什么不是最后一个?与last-child相同。nth-last-child(1)它从最后读取第一个孩子。 -
是的对不起,它应该选择最后一个 div 但它没有...
-
确保 DOM 在元素结构方面与您在 HTML 中编写的内容完全匹配,否则这将不起作用。例如,如果您将整个内容放入 jsfiddle 中,它会自动在正文的末尾插入一个脚本元素 - 使 that 成为实际的最后一个子元素。您显示的代码按预期工作,如果生成的 DOM 不会因外部因素而变得混乱。
标签: html css css-selectors pseudo-class