CSS抑制类似屏幕的Javascript警报

CSS抑制类似屏幕的Javascript警报,css,addclass,Css,Addclass,因此,我有一个隐藏的div,它显示在$(document).ready()上,显示一个要登录或注册的表单。我试图让屏幕看起来像显示传统Javascript警报一样被抑制。我正在测试阶段,只是使用一个类来设置主体的不透明度,但它也应用于弹出div。我正在尝试将不透明度设置为它后面的所有内容。这是我的 $("body").not("#overlay").addClass("suppress"); 我尝试了几种其他的变体来排除该div,但我不确定这是否可行,因为我正在应用于主体。您有什么建议可以引导

因此,我有一个隐藏的div,它显示在
$(document).ready()
上,显示一个要登录或注册的表单。我试图让屏幕看起来像显示传统Javascript警报一样被抑制。我正在测试阶段,只是使用一个类来设置主体的不透明度,但它也应用于弹出div。我正在尝试将不透明度设置为它后面的所有内容。这是我的

$("body").not("#overlay").addClass("suppress");
我尝试了几种其他的变体来排除该div,但我不确定这是否可行,因为我正在应用于
主体
。您有什么建议可以引导我朝正确的方向前进吗?

您应该将
#overlay
div设置为以下值:

#overlay {
     width: 100%;
     height: 100%;
     position:fixed;
     z-index: 1000;
     background: rgba(255, 255, 255, 0.7)
}
半透明白色背景覆盖将具有与降低主体不透明度相同的效果。或者,您可以使用1px x x半透明.png背景图像代替rgba

然后,您可以在#overlay中使用另一个div,它将使表单居中:

#overlay .inner {
     width: 200px;
     height: 200px;
     position: absolute;
     top: 50%;
     left: 50%;
     margin: -100px 0 0 -100px
}
这样,您就不必担心更改任何其他元素的css


要评论您在回答中提到的方法:

据我所知,您当前的代码是“查找任何没有id“overlay”的body元素并添加类“suppress”。。。换句话说,not()仅适用于匹配的元素集。如果要更改除#overlay之外的所有元素的不透明度,可以执行以下操作:

<body>
     <div id="overlay">
          overlay stuff in here
     </div>

     <div id="other-content">
          All page content in here
     </div>
</body>


$(document).ready(function(){
     $('#other-content').addClass('suppress');  
});

把东西放在这里
所有页面内容都在这里
$(文档).ready(函数(){
$(“#其他内容”).addClass('suppress');
});

您可以在主体和弹出窗口之间插入一个半透明的div。这可能也会阻止鼠标输入到身体,这让它感觉是模态的。@MattyK将其作为一个答案发布,因为它可能是正确的。听起来很好,我会尝试一下。