Html CSS'n儿童'行为段落vs div?

Html CSS'n儿童'行为段落vs div?,html,css,css-selectors,Html,Css,Css Selectors,我有以下CSS代码: article ul ul :nth-child(2) { border:1px solid black; } 它选择dom树中的第二个元素,而不考虑树中的深度。(但它必须在ul内,必须在ul内,必须在文章内) 但为什么在本例中不选择每秒钟一项 第n个孩子(2){ 边框:1px纯黑; } 这不是 这不是 这不是 这个 这不是 为什么不是这个 您的标记无效。ul只能将li元素作为其直接后代。此外,li是p的无效子级。只能包含,不包括li。我建议您检查

我有以下CSS代码:

article ul ul :nth-child(2) {
    border:1px solid black;
}
它选择dom树中的第二个元素,而不考虑树中的深度。(但它必须在
ul
内,必须在
ul
内,必须在
文章
内)

但为什么在本例中不选择每秒钟一项

第n个孩子(2){ 边框:1px纯黑; }

  • 这不是
  • 这不是
    • 这不是
    • 这个
    • 这不是
    • 为什么不是这个

您的标记无效。
ul
只能将
li
元素作为其直接后代。此外,
li
p
的无效子级。只能包含,不包括
li
。我建议您检查下面的代码片段,看看您的浏览器是如何改变的,以试图纠正您的标记错误。至少对于chrome来说,它最终将段落标记一分为二,并将嵌套的
li
元素与其他元素放在同一级别上

第n个孩子(2){ 边框:1px纯黑; }

  • 这不是
  • 这不是
    • 这不是
    • 这个
    • 这不是
    • 为什么不是这个

正如@Huangism已经提到的,您的HTML无效

发件人:

允许的内容:
零个或多个
  • 元素,这些元素通常包含嵌套的
    元素

    下面是一个示例,说明需要如何构造dom才能使其工作:

    第n个孩子(2){ 边框:1px纯黑; }
    
    
    • 这不是
    • 这不是
      • 这不是
      • 这个
        • 这不是
        • 为什么不是这个

    您应该将html更正为有效的html,然后它就可以工作了
    ul
    不能作为子级位于另一个
    ul
    内部。它应该是列表项,然后是列表项内部的
    ul
    。您的段落标记也应该位于列表项的内部,而不是作为
    ul
    的子元素检查元素,您会看到您的错误,请参见