`element [attribute = value]元素.class`选择器未应用

时间:2015-09-13 10:00:56

标签: css

当设置黑色背景时,我希望标记为.light的颜色从第二个select消失,
我的CSS出了什么问题?



body[data-background="Black"] {
  background: black
}
body[data-background="Black"] option .light {
  display: none !important;
}

<select onchange="document.getElementsByTagName('body')[0].setAttribute('data-background', this.value)">
  <option>White</option>
  <option>Black</option>
</select>
<select>
  <option>Green</option>
  <option class="light">darkBlue</option>
  <option class="light">Indigo</option>
  <option>Purple</option>
</select>
&#13;
&#13;
&#13;

2 个答案:

答案 0 :(得分:2)

问题是option .light它意味着内部内部选项标记

尝试将其替换为&#34; option.light&#34;

Reference

  

有时,作者可能希望选择器匹配一个元素   文档树中另一个元素的后代(例如,&#34;匹配那些   H1元素包含的EM元素&#34;)。后裔   选择者以模式表达这种关系。后代   选择器由两个或多个由白色分隔的选择器组成   空间即可。形式的后代选择器&#34; A B&#34;匹配时   元素B是某个祖先元素A的任意后代。

答案 1 :(得分:2)

您对.light使用<option>课程不是为了孩子。所以使用:

body[data-background="Black"] option.light {
  display: none !important;
}