设为首页  |  SEO论坛  |  CSS在线手册  |  收藏本站  |  
您的位置:seo俱乐部 >> CSS教程 >> 列表标签(li)间距兼容解决方案-全攻略

    列表标签(li)间距兼容解决方案-全攻略

  •         2007-12-7 13:13:05    点击率:
  • 新建一个简单的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下不会产生空白行距),不过高度还是要定义一下的。

    详情:http://blog.donews.com/dodo/archive/2007/04/15/1156062.aspx

      >>如有疑问,欢迎进入SEO俱乐部论坛参与讨论。
  • 上一篇:Div+CSS布局入门教程(四)
    下一篇:SEO俱乐部整站模板下载(kc模板)
  • 推荐文章
  • SEO常见问题解答
  • 赞助商链接
本站部分信息来自网络,如有版权争议,请给我们来信并说明源由,我们将在三个工作日内作出处理。E-mail:seoclub#seoclub.net   | 关于SeoClub | 网站地图
本站法律顾问:黄锋  ◎SeoClub.net all rights reserved.  粤ICP备08001990号