今天做完页面重构,将页面交给页面审核同学进行页面审核时,出现了一个问题,问题文字描述如下:整个页面主要内容结构都是由ul、li嵌套组成,其中内容最后一段关于产品说明,因为内容有几条,所以在原有ul、li结构中再嵌套了一组ul、li,我自己在测试过程中因为只注重页面结构是否完整,没有太多注意细节,但页面审核同学都是火眼金睛。发现了页面在IE6、IE7下内容最后一段与它上一段中间产生了一个空行。初看还以为是哪个地方写错了,但试了好久都没有发现问题在哪,通过手机(公司不认上外网)上了下GOOGLE了解这个是IE BUG,但没找到一个合理的解决办法。由于时间紧,所以想先通过使用IE hack来先解决,即使用margin-top,但就在在尝试多次之后,突然发现了一个细节,那就是将内外层ul都加上宽度,就OK了。
贴上代码(没加宽度之前):
css:
*{padding:0;margin:0;}
ul,li{list-style:none;}
.demo1{width:200px;background:#666;margin:50px auto;}
.demo2{background:#C96;}
<ul class="demo1">
<li>
<ul class="demo2">
<li>jfdkasljfkl</li>
<li>wrejewljrelw</li>
</ul>
</li>
</ul>
加入宽度:
*{padding:0;margin:0;}
ul,li{list-style:none;}
.demo1{width:200px;background:#666;margin:50px auto;}
.demo2{background:#C96;width:200px;}
<ul class="demo1">
<li>
<ul class="demo2">
<li>jfdkasljfkl</li>
<li>wrejewljrelw</li>
</ul>
</li>
</ul>
原理:通过设置一个宽度来触发IE layout。
网上解决方法:
使用IE专有属性*zoom:1来解决。
原理:
即:通过设置zoom来触发IE layout。
*{padding:0;margin:0;}
ul,li{list-style:none;}
.demo1{width:200px;background:#666;margin:50px auto;}
.demo2{background:#C96;*zoom:1;}
<ul class="demo1">
<li>
<ul class="demo2">
<li>jfdkasljfkl</li>
<li>wrejewljrelw</li>
</ul>
</li>
</ul>
更多的li中嵌套ul在ie6,7下的bug请到论坛查看: http://BBS.TC711.COM
【 双击滚屏 】 【 评论 】 【 收藏 】 【 打印 】 【 关闭 】
来源:
互联网
日期:2012-6-5