<div id="mask">
<div class="mask_box">
<div class="mask_title">试卷预览</div>
<div class="mask_con">
这里是浮动层的内容
<div class="operation">
<a href="#" class="f_btn_a" id="mask_close">返回</a>
</div>
</div>
</div>
</div>
CSS/** Mask ***/
#mask{
display:none;
background:#000;
position:absolute;
filter:alpha(opacity=70);
opacity:0.7;
z-index:999;
}
.mask_box{
border:#00A300 3px solid;
background:#FFF;
position:absolute;
/* top:50%;
left:50%;*/
top:0;
left:0;
color:#000;
padding:10px;
text-align:left;
line-height:20px;
width:700px;
min-height:400px; /*~{#(=b>v~}ie8.9.ff.chrome~{#)~}*/
*+min-height:400px; /*~{#(=b>v~}ie7~{#)~}*/
_height:400px; /*~{#(=b>v~}ie6~{#)~} ie6~{3,3vWT6/Rg3v~}*/
filter:alpha(opacity=100);
opacity:1;
z-index:1000;
background-attachment:fixed;
}
Jquery
$(document).ready(function() {
// Mask
$("#btn_view").bind("click",function(items){
var mask_w_doc = $(document).width();
var mask_h_doc = $(document).height();
var mask_w_win = $(window).width();
var mask_h_win = $(window).height();
var mask_w;
var mask_h;
var mask_box_w = $(".mask_box").width();
var mask_box_h = $(".mask_box").height();
alert(mask_w_doc + "/" + mask_h_doc + "/" + mask_w_win + "/" + mask_h_win + "/" + mask_box_w +"/"+mask_box_h);
var margin_w = (mask_w_doc - mask_box_w)/2;
var margin_h = (mask_h_win - mask_box_h)/2;
alert(margin_h + "/" + mask_h_win);
if(mask_h_doc>mask_h_win){
mask_h = mask_h_doc;
}
else{
mask_h = mask_h_win;
}
$("#mask").css({
"display":"block",
"width":mask_w_doc ,
"height":mask_h
});
$(".mask_box").css({
"margin-left":margin_w ,
"margin-top":margin_h
});
});
$("#mask_close").click(function(){
$("#mask").hide();
});
});
.mask_box{
border:#00A300 3px solid;
background:#FFF;
position:absolute;
/* top:50%;
left:50%;*/
top:0;
left:0;
color:#000;
padding:10px;
text-align:left;
line-height:20px;
width:700px;
min-height:400px; /*~{#(=b>v~}ie8.9.ff.chrome~{#)~}*/
*+min-height:400px; /*~{#(=b>v~}ie7~{#)~}*/
_height:400px; /*~{#(=b>v~}ie6~{#)~} ie6~{3,3vWT6/Rg3v~}*/ _height样式写错了
filter:alpha(opacity=100);
opacity:1;
z-index:1000;
background-attachment:fixed;
}
理由
1.jquery对于定位后的元素,获取其高度值均为0。无法获取高度,则无法实现水平垂直方向均居中。
2.因为遮罩层设了透明度,这样则遮罩内容层作为它的子元素,继承了透明度,这是我们不想的。
1、LZ下面说"jquery对于定位后的元素,获取其高度值均为0",这句话是不对的。
LZ上面的样式是考虑到兼容性问题,但是你那样的设置估计jquery是没考虑的,$("#").height()估计只会正确的获取样式中设置了height的元素高度。
2、弹出层一般跟遮罩层是同级的,不过LZ你这么写也没有问题,子元素虽然继承了父容器的一些属性,但是必要的时候自己可以重写这些属性的。