我尝试使用下面的CSS来创建一个对话窗口:Internet Explorer中:问题与叠加/阻
#blackOverlay {
display: block;
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background-color: #000000;
-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=80)";
filter: alpha(opacity=80);
-moz-opacity: 0.8;
-khtml-opacity: 0.8;
opacity: 0.8;
z-index: 1001;
}
#whiteOverlay {
display: block;
position: absolute;
top: 10%;
left: 10%;
width: 80%;
height: 80%;
z-index:2002;
overflow: auto;
background: #c4e982;
}
及以下JS:
var div = $("<div id='blackOverlay'></div");
$("body").prepend(div);
var div = $("<div id='whiteOverlay'></div");
div.html("Loading......");
var u = "myurl?function=example";
div.load(u);
$("body").prepend(div);
这正常工作在Firefox中, Safari,Chrome和Opera。
不幸的是,它在IE中失败,至少在版本8.0上。颜色/不透明度仅适用于身体,不适用于其他DIV。尽管加载的内容正确显示(位于屏幕的中心,前面),但并非“隐藏”blackOverlay后面的所有内容,所有内容(链接,按钮,输入字段...)仍然可用。
任何帮助表示赞赏!
谢谢jduren指着我在正确的方向。试图描述here来处理它在类似的方式后,我想出了以下解决方法:
function shime() {
jQuery.each(jQuery.browser, function(i) {
if($.browser.msie){
$('div').each(function() {
$(this).addClass("shine");
});
}
});
}
function unshime() {
jQuery.each(jQuery.browser, function(i) {
if($.browser.msie){
$(".shine").each(function() {
$(this).removeClass("shine");
});
}
});
}
下面CSS:
div.shine {
display: none;
}
我知道这不是最好的解决办法,但我由于IE的“功能”而厌倦了在圈子里跑步。
尝试设置一个z-index为1的正文和/或使用append代替前置 – lnrbob 2010-09-22 12:21:32
谢谢!我尝试了两种分开和合并,遗憾的是没有任何影响。 – MrG 2010-09-22 12:26:35