IE6/7下绝对定位(position:absolute)元素消失

在IE6、7中如果一个浮动元素与绝对定位元素相邻的话,在某些情况下绝对定位元素将会消失。在网上找了一下,有如下解释:

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值