DIV显示在最顶层
今天工作中遇到一个问题,原本是用一个div来做页面的提示框嘛!后面发现div没有显示在最上层,给部分控件档住了!很自然就想到z-index属性,一查,还真的没有写这个属性,呵呵!补上去,把他的值设置成比较在的就又重新编辑运行了!嗯,我运行了一下,OK了!过了一下子,有个同事和我说,还是给档到了!我看了一下,给一个select标签挡到了,百思不得其解的情况下只好问baidu了!经过一番查询后,才得知这个select标签是比较特殊的,对select标签时,div设置z-index属性是无效的。也不是这样说他特别,应该说是IE6的一个BUG吧!IE7,IE8,FF,搜狗都没有出现类似的问题,没办法,人家MS就是叼,就是错了也不改,你能怎么样呀,哈哈,没办法,人家用户量多,只能按他的“标准”做咯
根据众多网友说的,用iframe就可以解决问题了,经过又是一番查询,问题是解决了,但还不是很明白!因为我根本看不出iframe和我的div有什么关联,不过确实是解决了问题了,汗死,呵呵!在这里记录一下,下次遇到也可以查查。像我们以前老大说的,我们是做应用的,不是做研究的!
我们看看代码吧!
HTML代码:
<select>
<option>FFF</option>
</select>
<div id='pageBase_Div' style='display:none; z-index: 12001; background-color:#FFFF00 ;text-align:center; position:absolute;padding:5px 6px 0px 6px;border:1px solid red;left:0px;top:0px;'>AAAAAAAAAAAAAAAAA</div>
<iframe id="pageBase_iframe" src="javascript:false;" scrolling="no" frameborder="0" style="position:absolute; top:0px; left:0px; display:none;">
</iframe>
JS代码:
<script type="text/javascript">
var pagebase_div = document.getElementById('pageBase_Div');
var pagebase_iframe = document.getElementById('pageBase_iframe');
pagebase_div.style.display = "block";
pagebase_iframe.style.width = pagebase_div.offsetWidth;
pagebase_iframe.style.height = pagebase_div.offsetHeight;
pagebase_iframe.style.top = pagebase_div.style.top;
pagebase_iframe.style.left = pagebase_div.style.left;
pagebase_iframe.style.zIndex = pagebase_div.style.zIndex - 1;
pagebase_iframe.style.display = "block";
</script>
据说这样是让div放到iframe里面,我倒是没有感觉到!不过这样确实在IE6下就可以达到我们想要的效果了!没试过的朋友,不妨试下。。