IE6/7下绝对定位(position:absolute)元素消失
2012-08-09 11:36
169 查看
在IE6、7中如果一个浮动元素与绝对定位元素相邻的话,在某些情况下绝对定位元素将会消失。在网上找了一下,有如下解释:
1.当绝对定位层的邻近浮动层的宽度不等于父层宽度时,以及没有清除浮动时,IE6/7,FF中显示一致;
测试代码1如下:
2.当绝对定位层的邻近浮动层的宽度不等于父层宽度时,有清除浮动时,IE6/7不显示绝对定位层,FF显示;
只需在测试代码1的基础上,在.pa的样式中加入clear:both属性即可。
3.当绝对定位层的邻近浮动层的宽度等于父层宽度时,以及没有清除浮动时,IE6不显示绝对定位层,IE7/FF显示;
只需在测试代码1的基础上,把.floatDiv中的width属性值改为300px即可。
4.当绝对定位层的邻近浮动层的宽度等于父层宽度时,有清除浮动时,IE6/7不显示绝对定位层,FF显示;
只需在测试代码1的基础上,把.floatDiv中的width属性值改为300px,在.pa的样式中加入clear:both属性即可。
测试环境:win7 IEtester V0.4.11 Firefox 9.0.1
上面的问题可能是由于环境的原因,因为IEtester在win7下还有很多问题,如:IE7不能打开非服务器解析的文件(本地的文件拖进去没反映),IE6的透明效果等等。
最后就是上面问题的解决方法:把绝对定位元素和浮动元素分开,就是在两个元素中间加一个空白的div就行啦!
原文转自:http://www.110201.com/article/314.html
1.当绝对定位层的邻近浮动层的宽度不等于父层宽度时,以及没有清除浮动时,IE6/7,FF中显示一致;
测试代码1如下:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>IE6/7绝对定位元素消失-110201.com</title> <style type="text/css"> .wrap { position:relative; width:300px; height:120px; margin:0 auto; background-color:#000 } .pa { position:absolute; top:10px; right:10px; height:20px; padding:5px; width:20px; border:1px solid #fff; background-color:#f00; color:#00f; line-height:20px; } .floatDiv { float:left; width:200px; height:100px; line-height:100px; text-align:center; background-color:#0ff; color:#f00; } </style> </head> <body> <div class="wrap"> <div class="floatDiv">Float A</div> <div class="pa">PA</div> </div> </body> </html>
结果:IE6、7、8、9、Firefox下均表现正常。
2.当绝对定位层的邻近浮动层的宽度不等于父层宽度时,有清除浮动时,IE6/7不显示绝对定位层,FF显示;
只需在测试代码1的基础上,在.pa的样式中加入clear:both属性即可。
结果:IE6、7、8、9、Firefox下均表现正常,与上面的描述有差异,不知为何。。。
3.当绝对定位层的邻近浮动层的宽度等于父层宽度时,以及没有清除浮动时,IE6不显示绝对定位层,IE7/FF显示;
只需在测试代码1的基础上,把.floatDiv中的width属性值改为300px即可。
结果:IE6中绝对定位元素消失,IE7、8、9、Firefox正常,与上面的描述无异。
4.当绝对定位层的邻近浮动层的宽度等于父层宽度时,有清除浮动时,IE6/7不显示绝对定位层,FF显示;
只需在测试代码1的基础上,把.floatDiv中的width属性值改为300px,在.pa的样式中加入clear:both属性即可。
结果:IE6、7、8、9、Firefox下均表现正常,与上面的描述有差异,不知为何。。。
测试环境:win7 IEtester V0.4.11 Firefox 9.0.1
上面的问题可能是由于环境的原因,因为IEtester在win7下还有很多问题,如:IE7不能打开非服务器解析的文件(本地的文件拖进去没反映),IE6的透明效果等等。
最后就是上面问题的解决方法:把绝对定位元素和浮动元素分开,就是在两个元素中间加一个空白的div就行啦!
原文转自:http://www.110201.com/article/314.html
相关文章推荐
- IE6、IE7下绝对定位position:absolute和margin的冲突bug解决方法
- IE6、IE7下绝对定位position:absolute和margin的冲突bug解决方法
- IE绝对定位元素神秘消失或被遮挡的解决方法
- IE下当a标签使用position:absolute绝对定位时没有点击区域的bug
- IE7-/Win: 在浮动元素后的定义了“position:absolute”的元素框可能会消失
- IE绝对定位元素神秘消失或被遮挡的解决
- IE6 7下绝对定位引发浮动元素神秘消失
- position的值, relative和absolute分别是相对于谁进行定位的? absolute :生成绝对定位的元素, 相对于最近一级的 定位不是 static 的父元素来进行定位。 fi
- 【转】IE绝对定位元素神秘消失或被遮挡的解决
- IE5、6下绝对定位元素和浮动元素并列,绝对定位元素消失不见解决方案
- css基础 绝对定位 position:absolute 相对于document元素进行定位 (无定位的祖先元素)
- css基础 绝对定位 position:absolute 相对于document元素进行定位 (无定位的祖先元素)
- IE绝对定位元素始终被遮挡或者消失的解决方法
- IE6/IE7下position:absolute;绝对定位偏移、不显示问题
- IE绝对定位元素神秘消失或被遮挡的解决方法
- css基础 绝对定位 position:absolute 相对于定位的祖先元素进行定位
- IE绝对定位元素神秘消失
- css基础 绝对定位 position:absolute 相对于定位的祖先元素进行定位
- IE6/IE7下position:absolute;绝对定位偏移、不显示问题
- IE7以下绝对定位position被后面元素遮挡问题