我想选择具有特定背景颜色的子元素。
例如,我有我的父母#xxx(id),它有很多直接的孩子。我想从这个父母#xxx中选择所有有bakground的孩子:#000
我搜索了很多但无法找到答案。你可以帮帮我吗?这样的事情(当然不起作用):
#xxx > div(background:#000) {
}
答案 0 :(得分:1)
您无法使用css执行此操作,但您可以使用jquery:
$('#xxx div').filter((index, el) => {
return $(el).css('backgroundColor') == 'rgb(0, 0, 0)'
}).css('color', 'white');

.a {
background: red;
}
.b {
background: green;
}
.c {
background: blue;
}
.d {
background: black;
}

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="xxx">
<div class="a">a1</div>
<div class="b">a2</div>
<div class="c">a3</div>
<div class="d">a4</div>
</div>
&#13;
答案 1 :(得分:0)
如果您不想使用JQuery
,可以使用CSS3 [attribute*=value] Selector来实现这一目标:
#xxx > div(style*="background:#000")
{
...
}
BUT
注意1:请记住,由于属性选择器不支持正则表达式,因此只能执行属性值的完全子字符串匹配。
注意事项2 :您必须使用内嵌模式样式,否则无效。
我希望能提供帮助:)
答案 2 :(得分:0)
据我所知,这是不可能的。
你可以用jQuery做到。
但更好的选择可能是这样的:
.black { background-color: #000000; }
.red { background-color: #ff0000; }
#xxx > .black { padding: 10px; }
答案 3 :(得分:0)
有些人说这是不可能的,但有可能。这很有可能。您只需要注意颜色,浏览器(我可以尝试的Chrome和Firefox最新版本)允许基于背景颜色进行选择但是它必须是RGB格式,并且您需要在颜色中使用逗号之后的空格。这将完美地运作:
#xxx[style*="background: rgb(255, 255, 255)"]>div:hover{
border:10px solid #000000;
}