Jquery 在除一个元件外的所有元件上应用过滤器

Jquery 在除一个元件外的所有元件上应用过滤器,jquery,css,Jquery,Css,我尝试在主体上应用不透明度,除了一个元素 $('body').css('opacity', '0.45'); $('body').css('filter', 'alpha(opacity=45)'); 除了像这样的元素 $('#fadeForSearch').not('body').css('opacity', '0.45'); $('#fadeForSearch').not('body').css('filter', 'alpha(opacity=45)'); 有人能帮我吗?因为你要做的实

我尝试在主体上应用不透明度,除了一个元素

$('body').css('opacity', '0.45');
$('body').css('filter', 'alpha(opacity=45)');
除了像这样的元素

$('#fadeForSearch').not('body').css('opacity', '0.45');
$('#fadeForSearch').not('body').css('filter', 'alpha(opacity=45)');

有人能帮我吗?

因为你要做的实际上是在单击搜索输入时淡出除搜索输入之外的所有内容,所以你可以通过显示一个半透明的固定定位层来摆脱它,该层的高度为100%,当你的输入被聚焦时,它会100%显示出来。输入必须具有更高的z索引(+相对位置/绝对位置,z索引才能工作),以便它保持在覆盖上方

html,正文{
身高:100%;
背景颜色:钢蓝色;
}
.覆盖{
宽度:100%;高度:100%;
位置:固定;顶部:0;左侧:0;
背景色:rgba(0,0,0,0.5);
显示:无;
}
输入{
位置:相对位置;
z指数:100;
}
输入:focus~.overlay{
显示:块;
}


如果在body上应用,则将应用于body的所有内容,从而应用于所有元素。acity从父元素继承。也许您可以尝试使用
背景色:rgba(200200.45)
不透明度不是真正的继承,但更糟糕。没有覆盖任何继承属性的方式。当您将父对象设置为.45时,这是任何子对象都可以获得的最大不透明度。他们的“不透明度1”(默认值)类似于“使用父级允许的最大不透明度的100%”,这仍然允许他们从视觉角度看为.45。如果将父级设置为.5,则对子级应用不透明度.5,子级将获得.25的视觉不透明度。希望这能帮助你理解它是如何工作的。。您不能简单地设置主体的不透明度,然后让一个元素覆盖它。@Facundo Corradini感谢您的帮助explain@FacundoCorradini这是真的。尚未对其进行测试,但如果子元素处于绝对位置,它可能会起作用。但我不确定它是否适合你的解决方案