`
zhouyrt
  • 浏览: 1163825 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

IE6下著名的z-index bug

    博客分类:
  • BUG
阅读更多

abcc项目实现这样一个功能:点击“上载查询”,弹出一个绝对定位的div(类似qq文件中转站的“上传文件”按钮),里面有上传按钮等,点击后div在最上层。即z-index为最大。在firefox下表现良好,在IE6下无论如何也盖不住select。墨墨说是IE下一个著名的bug,解决方法用一个iframe包住select。

 

以下是一个测试的静态html,为bug重现及及解决方法。

 

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>

	<style type="text/css">	
	
		#d1,#d2 {
			width:	400px;
			height : 400px;
		}
		#d1 {		
			position : absolute;
			top : 100px;
			background : red;
			z-index : 1;
		}
		#d2 {
			position : absolute;
			top : 150px;
			background : blue;
			z-index : 2;
		}

	</style>
</head>
<body>	
	
	<div id="d1">	
		<form>			
			<input type="text" name="username"/>
		</form>
		<p>中國</p>
		<form>
			<iframe style="z-index:1"><!-- 用iframe 解决此bug -->	
			<select name="country">				
				<option value="1">china</option>
				<option value="2">japanese</option>
				<option value="1">U.S.A</option>
			</select>
			</iframe>
		</form>
	</div>
	
	<div id="d2">ddd</div>

</body>
</html>
 

 

分享到:
评论
5 楼 andot 2009-01-06  
还有个办法,就是要盖住它时隐藏它,不盖了再显示它。
4 楼 冯冀川 2009-01-06  
只存在IE6下,而且如果遮盖层下的select如果是可滚动的,在滚动的时候iframe还是该不住,最好的办法就是用div定制select框
3 楼 longleg 2009-01-06  
是的,这个问题只在IE6中存在。
2 楼 zhouyrt 2009-01-06  
hanjs 写道

我在ie7下,去掉iframe也没有问题啊。不知道ie6如何?

只是处理不了activex对象


是的,在IE8下也没问题了。看来在IE7后就微软就解决这个bug了
1 楼 hanjs 2009-01-06  
我在ie7下,去掉iframe也没有问题啊。不知道ie6如何?

只是处理不了activex对象

相关推荐

    IE6之Select的Z-Index設定【解决IE6的z-indexBUG】

    在IE6的環境下,如果網頁上有div區塊和下拉選單重疊在一起的時候,即使再怎麼調整下拉選單的z-index,下拉選單還是會把div區塊蓋住(在Firefox是正常的),google了一下網路上的資料,大多是用iframe來解這個問題,但...

    CSS 定位之 z-index 问题分析

    position值为非static时,如果不设置z-index属性,IE6/7下z-index默认为0,而IE8及以上浏览器z-index为auto,且zindex:auto的元素不参与堆叠优先级比较。 ff/chrome z-index IE6/7 IE8/9 不设置 0 auto au

    IE7 设置z-index的覆盖问题的解决方法

    在非IE7浏览器中,z-index的使用是相对直观和可靠的,但在IE7及更早版本中,由于引擎的限制或bug,出现了上述提到的覆盖问题。 在传统的CSS中,position:relative 与 position:absolute 是常用的定位方式。position...

    IE6 select z-index无效,遮挡div bug的解决方法

    今天我说说iframe解决的一般方法,已经使用jQuery插件bgiframe解决IE6 select z-index无效,遮挡div的bug。 解决方法之一:Iframe包裹select元素 使用iframe包住select,这样iframe有z-index,只要在div上设置的z-...

    Jquery 解决IE6 Select 框总是在图层(div)的上面显示的BUG

    本文将深入探讨如何利用jQuery解决一个特定的问题:在IE6下,Select元素总是显示在具有较高z-index的图层(如div)之上。 首先,我们要理解z-index的概念。在CSS中,z-index是一个用于控制元素在垂直方向(即Z轴)...

    解决IE6下三级下拉菜单被select遮挡的问题.docx

    总结来说,解决IE6下三级下拉菜单被`&lt;select&gt;`遮挡的问题主要通过以下两步: 1. 在下拉菜单元素之前插入一个透明的`&lt;iframe&gt;`,提高菜单的z-index层次。 2. 使用CSS控制菜单的布局和交互效果,包括定位、浮动、显示...

    js鼠标滑过弹出层的定位IE6bug解决办法

    但是,IE6并不完全支持`z-index`,导致在某些情况下,即使设置了较高的`z-index`,弹出层仍然会被其他元素遮挡。这在使用多个重叠的弹出层时尤为明显。 为了解决这个问题,我们可以利用jQuery动态调整元素的`z-...

    DIV在IE6中被下拉菜单占据的问题

    }`,这种写法只会在IE6下生效。 在提供的压缩包文件“解决下拉菜单在IE6中的bug”中,可能包含了具体的代码示例或修复策略,例如JavaScript脚本或CSS样式。通过查看这些文件,你可以得到更具体的解决步骤。在实际...

    前端项目-jquery-bgiframe.zip

    然而,在旧版IE浏览器中,特别是IE6,存在一个著名的bug,使得某些元素的z-index无法正确生效,特别是在浮动元素和绝对定位元素之间。这个问题通常会导致重叠元素的显示异常,遮挡了预期应该在上层显示的内容。 ...

    网页排版IE6兼容性问题修改方法

    `position:absolute`在IE6下可能无法正常工作,需要使用`position:relative`和`left/top`配合,或者使用`position:static`和`margin`调整。 8. **层叠上下文** IE6对层叠上下文的理解不同于其他浏览器,可能导致z...

    ie6 select无法被div遮盖的bug解决方法

    在早期的Internet Explorer 6(简称IE6)浏览器中,存在一个著名的布局bug,这个问题主要涉及到`&lt;select&gt;`元素与`&lt;div&gt;`元素的层叠上下文(Z-index)处理。当一个`&lt;div&gt;`元素试图遮盖页面中的下拉列表框`&lt;select&gt;`时...

    最全前端面试题-2.2(浏览器兼容问题篇-上百篇题集整理1个月).doc

    - **IE6的`z-index`无效**:在某些情况下,IE6的`z-index`不起作用,可以通过设置父元素的`hasLayout`或使用`position:relative`解决。 - **3像素问题**:在IE6中,水平边距计算错误,可通过负边距修正。 - **...

    css规范_IE bug,IE与Firefox的CSS兼容问题.....整理

    3. 浮动问题:IE6下浮动元素可能导致高度塌陷,需使用clearfix方法解决。 4. 层叠上下文:IE浏览器对于层叠上下文的处理与Firefox有所不同,可能需要调整`z-index`。 十三、微软IE6浏览器的应用分析 IE6的兼容性...

    css浏览器兼容整理

    6. **IE6下绝对定位的容器内文本无法正常选择** - 这是一个已知的IE6问题。可以通过设置`position: relative;`和`z-index`来解决。 7. **CSS双线凹凸边框** - 可以使用多重`border`或`box-shadow`来创建双线...

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

    总的来说,IE6下的`div`层被`select`控件遮住的问题可以通过在`div`内添加一个负`z-index`的`iframe`来解决。虽然如今IE6的使用率已经非常低,但了解这个历史遗留问题以及它的解决方案对于理解浏览器兼容性和前端...

    IE绝对定位元素神秘消失或被遮挡的解决方法

    在这个例子中,尽管绝对定位的黄色元素设置了较高的`z-index`,但由于它与后续的相对定位元素重叠,且父元素没有足够的`z-index`来保证其显示,因此在IE6和IE7中可能会被遮挡。解决这个问题的常见办法是提升父元素的...

    IE6下Select元素被div等元素覆盖的解决办法

    但是IE6有一个神奇的逻辑,div 无法覆盖select,但是iframe 可以覆盖select,而div可以覆盖iframe,所以解决办法就是用Z轴高度更高的Iframe元素,包裹或覆盖住下拉列表框控件,使其回到正常的Z轴高度上来!...

    IE8、IE7、IE6、FF简单的CSS HACK测试

    2. **z-index BUG依然存在**:IE8并没有完全修复z-index的处理方式,可能导致层叠顺序的混乱。开发者可能需要使用负值z-index或其他Hack来解决。 3. **行高(line-height)BUG**:IE8可能存在新的行高渲染问题,这...

Global site tag (gtag.js) - Google Analytics