您尚未登录,请登录后浏览更多内容! 登录 | 立即注册

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 2308|回复: 0

多浏览器下IE6 IE7 firefox li 间距问题

[复制链接]

111

主题

112

帖子

375

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
375
QQ
发表于 2013-8-10 21:59:06 | 显示全部楼层 |阅读模式
我们经常会遇到一个ie5下li产生空白行距的问题,下面来测试一下进行说明。
新建一个简单的HTML测试文件,下面来测试ul li标签。
  1. <ul>
  2. <li><a href="#">菜单一</a></li>
  3. <li><a href="#">菜单一</a></li>
  4. <li><a href="#">菜单一</a></li>
  5. <li><a href="#">菜单一</a></li>
  6. <li><a href="#">菜单一</a></li>
  7. <li><a href="#">菜单一</a></li>
  8. </ul>
复制代码
测试一,定义css为如下代码:
  1. body{font-size:12px;margin:0}
  2. ul{list-style:none;margin:0;padding:0;width:120px;}
  3. ul li{background:green;height:20px;}
  4. ul li a{color:#fff;padding:0 0 0 10px;}
复制代码
发现在IE5和IE5.5下左边都产生了空白,并且在IE5下,LI之间的行距产生空白。

测试二,定义css为如下代码:
  1. body{font-size:12px;margin:0}
  2. ul{list-style:none;margin:0;padding:0;}
  3. ul li{background:green;height:20px;width:120px;}
  4. ul li a{color:#fff;padding:0 0 0 10px;}
复制代码
和测试一相比,只是将width:120px;从ul的定义放置到li的定义,解决了IE5和IE5.5左边产生空白的问题,而IE5的li之间的间距还是有,如下图:


测试三,定义css为如下代码,(最佳写法)
  1. body{font-size:12px;margin:0}
  2. ul{list-style:none;margin:0;padding:0;}
  3. ul li{background:green;height:20px;width:120px;vertical-align: bottom;}
  4. ul li a{color:#fff;padding:0 0 0 10px;}
复制代码
和测试二比较,在li的定义中加上vertical-align: bottom;ie5下正常,li之间的空白行距消失了,取得各个浏览器的效果一样。

总结
1.解决li在IE5下产生空白行距的方法:如果li定义了宽度,那么需要在li里面再定义vertical-align: bottom。
2.宽度最好不要定义在UL,定义在LI或者UL外层的DIV里面。
3.书写LI的最佳方式,li里面要书写高度和宽度,以及vertical-align: bottom;(for ie5/win bug),或者在ul外面加上一层div,并定义宽度,那么在li里面不用定义宽度和vertical-align: bottom;,也显示正常(IE5下不会产生空白行距),不过高度还是要定义一下的。


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

      本站部分内容来自互联网,如有侵权,请提前告知,谢谢! WEB开发技术交流群
    Archiver|手机版| QQ

GMT+8, 2018-4-25 14:29 , Processed in 0.084456 second(s), 32 queries .

© 2012-2013 Powered by Discuz! X3. Theme By Yeei!

快速回复 返回顶部 返回列表