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

IE6/7 and IE8/9/10(IE7模式)依次隐藏具有absolute或relative的父元素和子元素后再显示父元素,子元素依然能显示bug

    博客分类:
  • BUG
 
阅读更多

多数情况下隐藏(设置display:none)一个元素,无需依次将其内的所有子元素都隐藏。非要这么做,有时会碰到意想不到的bug。如下

1,两个div,d1中包含d2

2,d1,d2都设置了absolute或relative

3,隐藏d1

4,隐藏子元素d2

5,显示d1

 

这时IE6/7 and IE8/9/10(IE7模式)中会发现,子元素d2也能显示出了(别忘了,d2被display:none 了哦)。但IE8/9/10/Firefox5/Safari4/Chrome12中子元素d2仍然是被隐藏的。

重现代码

<!DOCTYPE HTML>
<HTML>
	<HEAD>
		<meta charset="utf-8" />
		<title>IE6/7 and IE8/9/10(IE7模式)依次隐藏具有absolute或relative的父元素和子元素后再显示父元素,子元素依然能显示bug</title>
	</HEAD>

	<BODY>
		<p>
		<button onclick="hidden_d1()">1) 隐藏div[id=d1]</button>
		<button onclick="hidden_d2()">2) 隐藏div[id=d2]</button>
		<button onclick="display_d1()">3) 显示div[id=d1]</button>
		</p>
		<div id="d1" style="position:absolute;width:200px;height:200px;border:1px solid gray;">
			<div id="d2" style="position:absolute;width:100px;height:100px;background:gold;"></div>
		</div>
		<script>
		var d1 = document.getElementById('d1');
		var d2 = document.getElementById('d2');
		function hidden_d1() {
			d1.style.display = "none";
		}
		function hidden_d2() {
			d2.style.display = "none";
		}
		function display_d1() {
			d1.style.display = "block";
		}
		</script>
	</BODY>
</HTML>
0
0
分享到:
评论

相关推荐

    IE6/7 and IE8/9/10(IE7模式)依次隐藏具有absolute或relative的父元素和子元素后再显示父元素

    这里提到的问题是关于IE6、IE7以及在IE8、9、10中使用IE7兼容模式下,对于绝对定位(absolute)或相对定位(relative)的父元素和子元素的显示与隐藏的一个特定bug。这个bug主要涉及到元素的`display`属性。 通常,...

    CSS让子容器超出父元素(子容器悬浮在父容器效果)

    第二步:子容器定位设置为 absolute(绝对定位)。 我要浮出去!&lt;/div&gt; &lt;/div&gt; #a{ width:400px; height:100px; background:rgb(0, 0, 0); position:relative;/*父元素&gt;相对定位*/ } #b{ width: 150px; ...

    IE6, IE7, IE8 CSS 兼容速查表

    8. **边距重叠问题**:当浮动元素的子元素有外边距时,IE6会出现边距重叠现象,可以使用`display:inline-block`或`float:left`来避免。 9. **CSS3属性兼容**:IE8及以下版本对CSS3新特性支持有限,如圆角、阴影、...

    纯CSS的下拉菜单,支持IE6,IE7,Firefox

    1. 对于IE6和IE7,我们可以使用`&lt;a&gt;`元素包裹整个`&lt;li&gt;`,然后使用`:hover`伪类: ```css .dropdown a:hover + ul, .dropdown a:hover &gt; ul { visibility: visible; opacity: 1; } ``` 2. IE6不支持透明度,所以...

    垂直居中布局 Vertical-aligned 应用测试:兼容IE6/8/FF

    在网页设计中,实现元素的垂直居中布局一直是一个常见的挑战,尤其是在需要兼容不同浏览器,尤其是老版本的 Internet Explorer(如 IE6、IE8)时。"垂直居中布局 Vertical-aligned 应用测试:兼容IE6/8/FF"这个主题...

    一个VUE组件子元素scroll父元素容器不跟随滚动兼容PC移动端

    在Vue.js应用中,我们经常会遇到这样的需求:子元素具有滚动功能,而父元素保持静止,不随子元素滚动。这种布局模式在各种界面设计中都很常见,特别是在需要固定顶部导航或者侧边栏的时候。在PC和移动端,由于设备...

    垂直居中显示ie7+

    本话题主要探讨如何在IE7及以上的浏览器中实现元素的垂直居中效果。 在IE7+中实现垂直居中,我们可以采用多种方法,每种方法都有其适用场景和优缺点。以下是一些常见的技术: 1. **CSS Table布局**: - 设置父...

    CSS的下拉菜单,支持IE6 IE7 Firefox

    ### CSS的下拉菜单,支持IE6 IE7 Firefox #### 概述 本文将详细介绍一个兼容Internet Explorer 6(IE6)、Internet Explorer 7(IE7)以及Firefox浏览器的纯CSS下拉菜单实现方法。该下拉菜单不仅具有良好的跨浏览器...

    IE6 -- IE8浏览器CSS兼容性查询手册【gif格式】

    5. 定位(Positioning):IE6对绝对定位(absolute positioning)和相对定位(relative positioning)的支持有限,可能会导致元素位置偏移。使用`position: fixed;`在IE6中无效,需要使用技巧如`expression`脚本或...

    实用右下角弹出菜单(支持firefox、IE6、IE7)

    本文将详细讲解如何实现一个实用的右下角弹出菜单,该菜单兼容Firefox、Internet Explorer 6 (IE6) 和 Internet Explorer 7 (IE7) 浏览器,并具有自定义关闭和自动消失功能。 首先,让我们了解弹出菜单的基本构建。...

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

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

    ie特有bug文档

    - **问题描述**:在IE6/7中,当子元素具有`position: relative`属性时,将父元素设置为`overflow: [hidden | auto]`等同于将子元素的定位模式重置为默认的`position: static`。 - **解决方案**:为父元素设置`...

    css兼容IE6、IE7、FF的技巧

    - **IE6的定位问题**:IE6对于`position: absolute`或`position: relative`的元素位置计算有误。 - **解决方法**: - 直接设置`.line-height`等于当前div的高度,并通过`vertical-align: middle`来居中显示。 - ...

    兼容ie6、ie7、ie8 和FF的本地上传图片预览

    在互联网的早期,浏览器兼容性问题一直是开发者头疼的问题,尤其是对于IE6、IE7和IE8这些较老的版本。本文将深入探讨如何实现一个兼容这些老版本IE以及Firefox的本地图片上传预览功能。 首先,我们需要理解浏览器...

    纯div+css下拉菜单支持ie6,ie7、火狐

    2. **定位(positioning)**:通常使用`relative`、`absolute`或`fixed`定位来控制菜单项的位置,使其能够在鼠标悬停时正确地显示或隐藏。 3. `display`属性:切换菜单项的可见性,通常使用`none`(隐藏)和`block`...

    ie6 7 支持css3 圆角

    "PIE_IE678_uncompressed.js" 和 "PIE_IE9_uncompressed.js" 分别是针对IE6、7、8的未压缩版本的JavaScript文件,而"PIE_IE9.js"则是针对IE9的。未压缩版本通常用于开发和调试,因为它们包含了完整的代码和易于阅读...

    垂直居中ie8+

    在网页设计中,"垂直居中ie8+"是一个常见的需求,指的是在Internet Explorer 8及更高版本的浏览器中实现元素的垂直居中对齐。在IE8+支持CSS的多种方法,使得开发者能够灵活地处理不同场景下的垂直居中问题。下面我们...

    如何解决IE6/7绝对定位元素神秘消失或被遮挡的方法

    在网页开发过程中,尤其是针对老版本的Internet Explorer(如IE6和IE7)时,开发者可能会遇到一个棘手的问题:绝对定位元素在这些浏览器中神秘消失或者被其他元素遮挡。这个问题主要涉及到浏览器的渲染差异,特别是...

    position的relative和absolute总结

    但当我们将`position`设置为`relative`或`absolute`时,元素的定位模式会发生变化。 1. **相对定位(relative):** 当`position`设为`relative`时,元素保持其在正常文档流中的位置,但我们可以使用`top`、`...

Global site tag (gtag.js) - Google Analytics