当前位置: 首页 > 图文教程 > 网页制作 > CSS样式表 > 多浏览器下IE6 IE7 firefox li 间距问题

CSS样式表
分页显示之超级提速版
兼容多浏览器实现半透明(Opera ie firefox)
解析IE, FireFox, Opera 浏览器支持Alpha透明的方法
utf8和unicode编码究竟是什么关系?有何区别?
XHTML下css+div布局总结 超强推荐
在IE下拖动滚动条时border消失的解决方法
CSS中常用的单位
有关表格边框的css语法整理(1)
中文排版CSS心得
一个针对IE7的CSS Hack
css也疯狂! 用background 插入flash播放器
如何解决下拉菜单被flash覆盖的问题
网页中关闭IE的图像工具栏和XP主题
解决IE升级后Flash线框问题
em px的关系
在iframe中隐藏横向滚动条的方法大全
Iframe自适应其加载的内容高度
固定右栏宽度, 左栏内容先出现同时自适应宽度的布局
IE Bug--浮动对象外补丁的双倍距离的解决方法
解决IE7以下版本不支持无A状态伪类的几种方法

CSS样式表 中的 多浏览器下IE6 IE7 firefox li 间距问题


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-12   浏览: 1123 ::
收藏到网摘: n/a

今天小雷提到一个ie5下li产生空白行距的问题,下面来测试一下。
新建一个简单的HTML测试文件,下面来测试ul li标签。
复制代码 代码如下:

<ul>
<li><a href="#">菜单一</a></li>
<li><a href="#">菜单一</a></li>
<li><a href="#">菜单一</a></li>
<li><a href="#">菜单一</a></li>
<li><a href="#">菜单一</a></li>
<li><a href="#">菜单一</a></li>
</ul>

测试一,定义css为如下代码,效果如下:
body{font-size:12px;margin:0}
ul{list-style:none;margin:0;padding:0;width:120px;}
ul li{background:green;height:20px;}
ul li a{color:#fff;padding:0 0 0 10px;}
发现在IE5和IE5.5下左边都产生了空白,并且在IE5下,LI之间的行距产生空白,如下图


测试二,定义css为如下代码:
复制代码 代码如下:

body{font-size:12px;margin:0}
ul{list-style:none;margin:0;padding:0;}
ul li{background:green;height:20px;width:120px;}
ul li a{color:#fff;padding:0 0 0 10px;}

和测试一相比,只是将width:120px;从ul的定义放置到li的定义,解决了IE5和IE5.5左边产生空白的问题,而IE5的li之间的间距还是有,如下图:

测试三,定义css为如下代码,(最佳写法)
复制代码 代码如下:

body{font-size:12px;margin:0}
ul{list-style:none;margin:0;padding:0;}
ul li{background:green;height:20px;width:120px;vertical-align: bottom;}
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下不会产生空白行距),不过高度还是要定义一下的。