我有<div>
我在其上应用了灰色过滤器,但<div>
内的所有其他元素也受到过滤器的影响。
即使我尝试通过更具体的方式覆盖元素, 例如
.div-id span { color: blue }
到目前为止,CSS中的对我没有帮助。
我该如何解决这个问题?
HTML:
<div class="idea-box-tools text-center">
<span class="glyphicon glyphicon-wrench"></span>
<p class="box-headers">Dashboard & Tools</p>
<p class="box-paragraphs">Lorem ipsum dolor sit amet.</p>
</div>
CSS:
.idea-box-tools:hover {
background-image: url('includes/tools.jpg');
background-size: contain;
-webkit-filter: grayscale(80%) brightness(20%) contrast(100%);
}
答案 0 :(得分:0)
你无法避免它。就像你不能用opacity
一样。
然而,您可以在内部制作另一个div
(使用背景和过滤器),并将其显示在其他元素下方。
.idea-box-tools:hover > :first-child {
background-image: url('http://i.telegraph.co.uk/multimedia/archive/02690/Anne-Guichard_2690182k.jpg');
background-size: contain;
-webkit-filter: grayscale(80%) brightness(20%) contrast(100%);
}
.box-headers {
color: red;
}
<div class="idea-box-tools text-center" style="position: relative">
<div style="position: absolute; height: 100%; width: 100%;"></div>
<div style="position: relative">
<span class="glyphicon glyphicon-wrench"></span>
<p class="box-headers">Dashboard & Tools</p>
<p class="box-paragraphs">Lorem ipsum dolor sit amet.</p>
</div>
</div>
答案 1 :(得分:-1)
这样的东西?
.div-id { color: grey; }
.div-id * { color: red; }
*将匹配div下的所有元素..