CSS 选择最多 N 层深的嵌套元素

Ste*_*e J 5 css nested

我有许多嵌套元素,我试图只选择前 N 个级别。下面显示了一个工作示例,其中我选择了前 7 个级别并为其设置样式。这正是我想要的,但是,我希望有一种简化的方法来选择这些元素。

在我的实际用例中,我不知道嵌套元素的总数,并且我试图选择前 50 个级别,因此使用上述方法会非常混乱。不幸的是,我无法更改应用程序中的 HTML,因此它需要是一个仅限 CSS 的方法。谢谢。

.container > div,
.container > div > div,
.container > div > div > div,
.container > div > div > div > div,
.container > div > div > div > div > div,
.container > div > div > div > div > div > div,
.container > div > div > div > div > div > div > div {
  border-left: 1px solid;
  padding-left: 15px;
}
Run Code Online (Sandbox Code Playgroud)
<div class="container">
  <div>
    A
    <div>
      B
      <div>
        C
        <div>
          D
          <div>
            E
            <div>
              F
              <div>
                G
                <div>
                  H
                  <div>
                    I
                  </div>
                </div>
              </div>
            </div>
          </div>
        </div>
      </div>
    </div>
  </div>
</div>
Run Code Online (Sandbox Code Playgroud)

Ang*_*tis 5

这在目前的所有 CSS 版本中都是不可能的,而且据我所知,Descendant Level Selector选择所有元素达到指定级别的功能不打算很快实现。


您可以做的是为您想要选择和使用的所有元素设置一个类:

.container .class {
    border-left: 1px solid;
    padding-left: 15px;  
 }
Run Code Online (Sandbox Code Playgroud)

如果您无法对 HTML 进行任何更改或使用 JavaScript,那么您当前所拥有的就是您最好的选择。