IE6绝对定位不显示

设计稿:

 

外层使用了相对定位,最左侧大标题这块使用绝对定位,分类使用的是dl定义列表加浮动。

.clearfix{ *zoom:1;}
.clearfix:after{ clear:both; height:0; overflow:hidden; display:block; content:"";}
.box{ position:relative; ....}
.box .box_tit{ position:absolute; left:-30px; top:-1px; height:86px; width:31px; *zoom:1;}
.box dl{ float:left; width:...; height:...;}
<div class="box clearfix">
  <div class="box_tit">标题</div>
  <dl>
    <dt>小标题</dt>
    <dd>类别</dd>
    <dd>类别</dd>
  </dl>
  <dl>
    <dt>小标题</dt>
    <dd>类别</dd>
    <dd>类别</dd>
  </dl>
  ...... 
</div>

如上所述,IE6的绝对定位层不显示。

 

IE6下绝对定位消失的原因:

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

  1.当绝对定位层的邻近浮动层的宽度不等于父层宽度时,以及没有清除浮动时,IE6/7FF中显示一致;

  2.当绝对定位层的邻近浮动层的宽度不等于父层宽度时,有清除浮动时,IE6/7不显示绝对定位层,FF显示;

  3.当绝对定位层的邻近浮动层的宽度等于父层宽度时,以及没有清除浮动时,IE6不显示绝对定位层,IE7/FF显示;

  4.当绝对定位层的邻近浮动层的宽度等于父层宽度时,有清除浮动时,IE6/7不显示绝对定位层,FF显示;

PS:如果是以上的这些情况,解决方法是把绝对定位元素和浮动元素分开,就是在两个元素中间加一个空白的div就行啦!<!--[if IE 6]><div></div><![endif]-->  

 

 

发现这个问题不是上述的几种情况。接着我把结构的位置换了下,把产品分类标题放到box最下面

<div class="box clearfix">
  <dl>
    <dt>小标题</dt>
    <dd>类别</dd>
    <dd>类别</dd>
  </dl>
  <dl>
    <dt>小标题</dt>
    <dd>类别</dd>
    <dd>类别</dd>
  </dl>
  ...... 
  <div class="box_tit">标题</div>
</div>

结果IE6就正常了!

posted @ 2012-11-22 11:52  caijf  阅读(312)  评论(0编辑  收藏  举报