ie6绝对定位层元素消失

在ie6中,relative块元素内,absolute块元素的上一个元素如果是浮动的话,absolute块元素将消失掉。具体触发原因是:

绝对定位层前面一个元素是浮动层;大元素内的总宽度被所有子元素占满了,即子元素宽度排列已经塞不下任何一像素了。代码如下:

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8" />
<style>
*{ margin:0; padding:0; font-size:14px; line-height:20px;}
.main{ position:relative; width:300px; height:300px; overflow:hidden; background:black;}
.a{ float:left; width:290px; height:100px; background:aqua;}
.b{ float:left; width:10px; height:50px; overflow:hidden; background:blue;}
.absolute{ position:absolute; top:10px; left:10px; width:100px; height:100px; background:red;}
</style>
</head>
<body>
<div class="main">
    <div class="a"></div>
    <div class="b"></div>
    <div class="absolute"></div>
</div>
</body>
</html>

解决办法是:

1)仅增加.absolute元素clear:both属性

2)仅增加绝对定位层(.absolute)和前一个浮动层(.b)之间加入空div标签,即

<div class="b"></div>
<div></div>
<div class="absolute"></div>

3)仅调整.a+.b的width总值小于父项.main的宽度

以上三种方案都不需要累加,单一步骤即可实现ie6下absolute绝对定位元素的出现

posted @ 2012-11-26 19:22  Joerias  阅读(208)  评论(0编辑  收藏  举报