IE6下解决select层级高的问题

div在IE6下无法遮盖select,原因是在IE6下,浏览器将select元素视为窗口级元素,这时div或者其它的普通元素无论z-index设置的多高都是无法遮住select元素的。

解决方法有三种:

1:当浮动层div出现的时候,用JS将select隐藏,当浮动层div消失的时候select恢复出现。

2.可以用ul,li等进行模拟一个select的元素

3. 利用iframe的方式进行。

下面讲讲第三种最常用的的方式:

注意:生成的iframe是添加到要遮盖select的元素上。 其实相当于iframe作为它的背景存在。

<iframe frameborder="0" style="position:absolute;top:0;left:0;width:100%;height:100%;filter:alpha(opacity=0);"></iframe>

当然可以用JS动态的创建,当识别的为IE6的时候

function createIframe(){//为兼容IE6创建框架                var myIframe = document.createElement(‘iframe‘);                myIframe.src = ‘about:blank‘;                myIframe.style.position = ‘absolute‘;                myIframe.style.zIndex = -1;                myIframe.style.left = ‘-1px‘;                myIframe.style.top = 0;                myIframe.style.border = 0;                myIframe.style.filter = ‘alpha(opacity= 0)‘;                myIframe.style.width =  ‘250px‘;                myIframe.style.height = ‘250px‘;                return myIframe;            }

再添加到需要遮盖select的元素上面。

IE6下解决select层级高的问题

时间: 2024-10-13 05:18:39

IE6下解决select层级高的问题的相关文章

ie6下兼容问题

最小高度问题:overflow:hidden 在ie6.7下 li本身不浮动 内容浮动 li产生3像素间隙 解决:vertical-align:top; 二.当ie6下最小高度问题和li间隙问题共存时 给li加浮动 滤镜:标准浏览器[opacity:0.5] ie6[filter:alpha(opacity=50)] 图片底部3像素问题:vertical-align:top; padding是占位置的. ie6下 子元素会撑开父级设置好的宽高  : 计算一定要正确,不要让内容的宽高,超出设置的宽

IE6下弹出层被select遮挡的解决

一些使用定位的弹出层在IE6下会被select遮挡,通过调整弹出层的z-index并不能解决问题,其实在弹出层中加一个iframe即可解决. 在弹出层加入代码如下: <div class="dialog"><!--我是弹出层--> <!--我是iframe--> <div style="position:absolute;z-index:-1;left:0;top:0;width:100%;height:100%;">

IE6下select覆盖div z-index无效 解决方案

遇到了IE6 select遮挡div的bug,这个bug表现为页面有浮动元素(某个div元素)在select上面时,在IE6里面select总是显示在这个浮动元素上方,该元素z-index的值多大都没有作用. 解决的思路是:IE6中iframe可以覆盖select,而div可以覆盖iframe,所以解决办法就是使用iframe元素包裹或者覆盖select元素或浮动元素,或者在select元素或浮动元素添加一个Iframe作为子元素. 方法一:Iframe包裹select元素  使用iframe包

IE6下div层被select控件遮住的问题解决方法

Select在IE6下是处于最顶层的,因此想要遮住它,设置zIndex属性是不行的,就需要一个优先级更高的元素,就是iframe,当把iframe嵌套在弹出div层中后,把iframe设置为不可见,但它使弹出的div能浮于select等一些元素之上,因此完美解决了此问题,如下是需要弹出的Div代码,星号内代码为添加的iframe: <div id="quest"> <!--*******************************iframe***********

让层遮挡select(ie6下的问题)

虽然现在很多比较大的网站已经不考虑ie6了,不过这些方法,或者其中原理还是值得记录下来的.所以整理的时候,把这篇文章留下了. <script language="javascript">var ie55up = IsIE55Up();var overIframe = null;function DivOver(objID){var obj = document.all[objID];// 只有IE5.5以上Iframe的z-index才有效if (ie55up){if (o

IE6下select被这罩住

在我们做弹出遮罩层时经常遇到这种问题,就是select被这罩住不兼容IE6,其实解决这种问题并不难,只要掌握住原理就挺简单的. 首先就是当遮罩层出现时select要暂时隐藏,但是不能用display:none; 要用visibility:hidden;这样select的虽然隐藏但位置还在. 下面是js代码: <script language="javascript">function f(o){o.style.display = "none";docum

IE6下fixed失效的解决方法

在网上找了好久,终于找到一种亲测有效的解决方法. <!--[if IE 6]> <script type="text/javascript"> (function($) { jQuery.fn.Fixed = function(options) { var defaults = { x:0, y:0 }; var o = jQuery.extend(defaults, options); var isIe6 = !window.XMLHttpRequest; v

css解决select下拉表单option高度的办法

css在给select下拉表单设置样式如边框时可以轻松搞定,而我们在不喜欢其默认的下拉箭头的样式时试图通过background:url(图片路径)来修改之,则往往会出现浏览器的兼容性问题,在网上查了好多资料,最好的解决办法也是大神们用js来模拟下拉表单.额~,好吧,暂且就按照大神们的办法来解决这个问题吧. 下边来说说css如何解决select的option高度的? 有时我们在设置了select的高度后,发现其option的高度还是默认的高度,跟我们设置的select的高度大相径庭,很显然,这不是

解决IE6下png-24使用滤镜(_filter)透明问题 效果出不来

今天说说IE6下使用滤镜(_filter)解决png-24透明效果遇到的一些问题: css代码:background:url(../images/button1.png) no-repeat;_background:none; _filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src="images/button1.png"); 在使用上述代码解决IE6下透明效果时,有的人会出现明明使用了上述代码,为什么没有出现想要的