开发者社区> lzhdim> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

使DIV不被select等控件遮挡的解决办法

简介: 在IE中,select属于window类型控件,它会“挡住”所有非window类型控件 可以这么理解,div这样的组件是在浏览器客户区使用代码“渲染”的, 他们被渲染在客户区的绘画表面上, 而select是使用的标准windows控件,只是作为客户区的子控件放置而已, 它会覆盖所有客户区绘画表面上“画”出来的一切,但不一定会覆盖其他类型的window控件, 比如iframe和其他的select,如果你使用过类似Delphi这样的环境就会自然理解。
+关注继续查看

     在IE中,select属于window类型控件,它会“挡住”所有非window类型控件
可以这么理解,div这样的组件是在浏览器客户区使用代码“渲染”的,
他们被渲染在客户区的绘画表面上,
而select是使用的标准windows控件,只是作为客户区的子控件放置而已,
它会覆盖所有客户区绘画表面上“画”出来的一切,但不一定会覆盖其他类型的window控件,
比如iframe和其他的select,如果你使用过类似Delphi这样的环境就会自然理解。

有4种办法;
1. 修改select,不用标准select,而是自己用其他html元素模拟
2. 修改你的div,使用iframe。
3. 在div被显示的时候或者到达select所在位置时隐藏select
4. 在div中或div的同一坐标上,用相同尺寸的iframe先遮挡一下,然后在iframe上显示div的内容。

第4种方法的例子:

<html>
<head>
<script>
function DivSetVisible(state){
     var DivRef = document.getElementById('PopupDiv');
     var IfrRef = document.getElementById('DivShim');
    if(state){
                  DivRef.style.display = "block";
                  IfrRef.style.width = DivRef.offsetWidth;
                  IfrRef.style.height = DivRef.offsetHeight;
                  IfrRef.style.top = DivRef.style.top;
                  IfrRef.style.left = DivRef.style.left;
                  IfrRef.style.zIndex = DivRef.style.zIndex - 1;
                  IfrRef.style.display = "block";
   }else{
                 DivRef.style.display = "none";
                 IfrRef.style.display = "none";
   }
}
</script>
</head>
<body>
<form>
<select>
<option>A Select Box is Born ....</option>
</select>
</form>
<div id="PopupDiv" style="position:absolute; top:25px; left:50px; padding:4px; display:none; background-color:#000000; color:#ffffff; z-index:100">
.... and a DIV can cover it up<br/>through the help of an IFRAME.
</div>
<iframe id="DivShim" src="javascript:false;" scrolling="no" frameborder="0" style="position:absolute; top:0px; left:0px; display:none;">
</iframe>
<br/>
<br/>
<a href="#" onclick="DivSetVisible(true)">Click to show DIV.</a>
<br/>
<br/>
<a href="#" onclick="DivSetVisible(false)">Click to hide DIV.</a>
</body>
</html>

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
select 选中
通过JQuery控制,选择对应Select选中的方法。 $("#pProductComposing_coloramount").find("option[value='"+response.pProductComposing.coloramount+"']").attr("selected",true);
863 0
解决DIV层被OBJECT、SELECT控件遮盖问题
浮动层或便捷菜单给用户操作极大的便利。使用IE6、7时,SELECT控件不能被DIV遮盖。OBJECT控件也不能被DIV遮盖。究其原因,大多表单控件或HTML控件是使用浏览器本身渲染绘制,因此层次可以由浏览器自身控制。
581 0
vb select case
引用:http://zhidao.baidu.com/question/21746427.html Select Case case 进行的事件... case 进行的事件... case 进行的事件.
523 0
+关注
lzhdim
人在20岁以意志力著称,在30岁以智慧取胜,在40岁则靠的是理智的判断。 一个人只有时刻保持幸福快乐的感觉,才会使自己更加热爱生命,热爱生活。只有快乐,愉快的心情,才是创造力和人生动力的源泉;只有不断自己创造快乐,与自己快乐相处的人,才能远离痛苦与烦恼,才能拥有快乐的人生。
文章
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载