设计稿:
外层使用了相对定位,最左侧大标题这块使用绝对定位,分类使用的是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下绝对定位消失的原因:
在IE6、7中如果一个浮动元素与绝对定位元素相邻的话,在某些情况下绝对定位元素将会消失。在网上找了一下,有如下解释:
1.当绝对定位层的邻近浮动层的宽度不等于父层宽度时,以及没有清除浮动时,IE6/7,FF中显示一致;
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就正常了!