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

标签 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;
}
<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>

最佳答案

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


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

.container .class {
    border-left: 1px solid;
    padding-left: 15px;  
 }

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

关于CSS 选择最多 N 层深的嵌套元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38596338/

相关文章:

javascript - Firefox 中的 body 最大高度

html - Bootstrap 3 下拉菜单更改子菜单焦点的背景

c# - 使用递归从嵌套对象到 XML 文档

css - 需要哪些设置来确保 CSS/SCSS 的更改在开发过程中动态发生?

html - 页脚问题

html - On :hover opacity 0. 0 on other level in css

c++ - 嵌套在 for 语句中的 if 语句将不起作用

ruby-on-rails - Rails 嵌套形式,从嵌套项目计算值

sql - 在执行 WHERE/通过取消嵌套/展平后在 Google BigQuery 上丢失行

c# - ASP.NET MVC 中的嵌套包