【问题标题】:How can I apply a css rule to all descendants of an elements如何将 css 规则应用于元素的所有后代
【发布时间】:2014-11-02 04:31:52
【问题描述】:

如果一个类在另一个特定的类中,你如何重新定义它?

div.cls {
color:blue;
}

div.tst > div.cls {
color:red;
}

<div class="cls">test</div> // text color = blue

<div class="tst">
  <div class="cls">test</div> // text color = red
  <div>
    <div class="cls">test</div> // text color = blue
  </div>
<div>

如何让最后一个也变红?

jsfiddle

http://jsfiddle.net/gpD7H/

【问题讨论】:

  • 您的代码应该可以正常工作。你在问什么?
  • 您的问题到底是什么?那里有没有您期望的颜色的东西?
  • 如果cls 类不是tst 的直接子类?
  • 如 asnwers 中所说,只需从“子”(>)选择器更改为后代选择器(两者之间没有任何内容)。

标签: css css-selectors


【解决方案1】:

我用过这个,它对我有用:

.name-of-parent * { 颜色:红色; }

【讨论】:

  • 完美运行,节省大量时间
【解决方案2】:

使用descendant selector [W3C]div.tst div.cls

&gt;child selector [W3C],只会匹配元素的子元素。

【讨论】:

    【解决方案3】:

    就是这样。但是,您的第二个分区不会是红色文本,因为它也包含在另一个分区中。 &gt; 选择器只匹配在它之前匹配的元素下的直接子元素,因此它只在一层内查看div.tst。尝试从选择器中删除 &gt;

    div.tst div.cls {
    color:red;
    }
    

    Your updated jsFiddle

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-08-20
      • 2011-02-26
      • 2017-05-18
      • 2012-05-30
      • 2011-05-25
      • 2015-04-21
      • 1970-01-01
      相关资源
      最近更新 更多