要求在css和js下解决不知有没可能??<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档</title>
<style>
body{
margin: 0px;
padding: 0px;
}
#box{
margin-top: 500px;
margin-left: 200px;
}
#top{
margin-top: 100px;
margin-left: 300px;
}
#bottom{
margin-top: 1240px;
margin-left: 300px;
}
#sig{
height: 20px;
width: 90px;
margin-left: 100px;
margin-top: 100px;
background-color: #0066FF;
font-weight: bold;
color: #FFFFFF;
}
#ajax{
background-color: #CCCCCC;
position: absolute;
z-index: 9999;
left: 0px;
top: 0px;
right: 0px;
bottom: 0px;
}
</style>
</head><body>
<div onclick="ec()" id="sig">点击注册</div>
<div id="top">
求这能看到(要求灰色背景在的前提下)
</div>
<div id="box">
求这能看到(要求灰色背景在的前提下)
</div>
<div id="bottom">
求这也能看到
</div>
</body>
<script>
function $(x){ return document.getElementById(x);}
function ec() {
if($('ajax')){
$('ajax').parentNode.removeChild($('ajax'));
}
  var div = document.createElement("div")
  div.setAttribute("id", "ajax");
  div.style.height =document.body.clientHeight+"px"; //定位
  div.style.width =document.body.clientWidth+"px";
  document.body.appendChild(div);
  $('ajax').innerHTML="<b>aaaaaaaaaaaaaaaa </b>"
  }
</script>
</html>

解决方案 »

  1.   

    方法一
    使用
    opacity
    filter
    确实有遮罩的效果,即 页面的button click不能触发
    产生的问题是, 遮罩层上的文字也会产生透明的效果#ajax{
        background-color: #CCCCCC;
        position: absolute;
        z-index: 9999;
        left: 0px;
        top: 0px;
        right: 0px;
        bottom: 0px;
    opacity:.4;
    filter:alpha(opacity=40);
    }方法2
    使用  rgba + 渐变滤镜
    ie下 遮罩不成功, button可以触发事件
    但文字没有被影响为透明的。#ajax{
        background-color: #CCCCCC;
        position: absolute;
        z-index: 9999;
        left: 0px;
        top: 0px;
        right: 0px;
        bottom: 0px;
    background-color:rgba(0,0,0,.4);
    filter:progid:DXImageTransform.Microsoft.Gradient(GradientType=0, StartColorStr='#4c000000', EndColorStr='#4c000000');
    }
    可以用两个层来做,
    弄个背景遮罩层,设置为透明,再弄个内容层,显示具体的内容。