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绝对定位元素的出现

你可能感兴趣的:(ie6)