选择所有X类型的元素,但在它们内部再次选择不同的类型

时间:2011-06-18 13:16:20

标签: css css-selectors

例如,如果有多个DIV元素,则一个在另一个内。让我们说3个级别 你怎么会只选择第二级Div,不知道它们有多深,
并且不能提供更多的课程?

// html example of a possible DOM
<div class="level1'>
    <a>
        <div>
            <a>
                <div></div>
            </a>
        </div>
    </a>
    <a>
        <div></div>
    </a>
</div>

选择器概述:
div.level1 > div =&gt; (BAD)不会返回任何内容,因为Div位于a

div.level1 > a > div =&gt; (BAD)第二级div可能更深,并且不应写出确切的xpath

是否有某种CSS选择器组合可以返回'找到元素但永远不会在其中找到',所以div.level1 div只会返回第二级Div但不会那些可能在他们里面的东西(某种东西)。我发现这是一个非常强大的东西。

2 个答案:

答案 0 :(得分:0)

不太可能。
但是你可以做的是在级别&gt; = 2(div.level1 div)上设置所需的属性,并在级别2(div.level1 div div)以下的所有div上取消它。

当然,总是可以选择为每个级别使用不同的类。

答案 1 :(得分:0)

你的第一个选择器看起来非常好。请查看此示例CSS:

<style type="text/css">
    a, div {
        display: block;
        margin: 10px;
        border: 1px solid grey;
        background-color: red
    }
    div.level1 > div {
        background-color: green;
    }
</style>

只有第二级DIV匹配,因为它是div.level1的直接子级。

BTW:你的HTML毫无意义。内联元素内的DIV很糟糕。但链接内部的链接更糟糕:)