【问题标题】:CSS limit depth styles can be applied to elementsCSS 限制深度样式可以应用于元素
【发布时间】:2016-11-16 18:59:14
【问题描述】:

有没有人知道在选择带有CSS 的元素时限制子深度的解决方案?

例子:

.my-class div div:end(styles:here)

这将避免必须将CSS 类添加到页面中的每一秒 div,同时防止样式向下传递到第三个第四个等子级。

【问题讨论】:

    标签: html css css-selectors


    【解决方案1】:

    您可以使用the > operator 明确告诉它只搜索更深一层。

    考虑以下示例:

    #target > p > span {
        background: red;
    }
    

    这将在#target 中搜索direct 子元素<p>,并在该元素中搜索direct 子元素<span>。所以如果有嵌套的<p>元素,里面有一个span,就不会受到影响。

    一个非常常见的用途是嵌套列表项,您希望主列表设置样式,而辅助列表不设置样式。

    ul#parent > li /* Direct descendant. */
    ul#parent > li > ul > li /* 2 levels deep descendant. */
    

    【讨论】:

    • 显然你不能使用它来直接在body标签下设置文本节点的样式,即使如果你只是为body设置样式,这些节点会与所有其他无样式节点一起包含在内。例如,如果您使用 color:blue 设置正文的样式,则不能以这种方式单独为顶级文本赋予蓝色:所有深度的所有未设置样式的文本都会变为蓝色。
    • @Michael 部分是因为根据规范,正文不能包含文本节点。主体只能容纳块级元素。
    • 但我总是看到这样的东西:一些文字。 .
    • @Michael:我看到人们一直没有在停车标志处停下来。这并不正确。此外,浏览器可能会以您意想不到的方式解释它。
    • 严格来说,规范似乎允许这样做:w3.org/TR/html-markup/body.html#body。正文可以包含流内容,定义为“与普通字符数据混合的流元素”。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-07-25
    • 2010-10-12
    • 1970-01-01
    • 2010-12-22
    • 2015-01-09
    相关资源
    最近更新 更多