如何清除LI之间的间距

这两天在做一个竖向排列的菜单,考虑到访问速度问题,决定不使用大块的背景图来解决鼠标移动和选中后的背景色问题。但是,一个问题始终困扰着我,IE下各项菜单之间的间距很大(FireFox下无此问题),代码如下:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">
<htmlxmlns="http://www.w3.org/1999/xhtml">

<head>
<meta http-equiv="Content-type" content="text/html;charset=GB2312">
<meta http-equiv="X-UA-Compatible"content="IE=EmulateIE7">
<title></title>
<style type="text/css">

html,body,ul,li,ol,dl,dd,dt,p,h1,h2,h3,h4,h5,h6,form,fieldset,legend,img{
 margin:0;
 padding:0;
}

body {
 background:#ffffff;
 color:#000000;
 font:12px/20px "SimSun", "宋体", "Arial Narrow";
 webkit-text-size-adjust: none;
}

img {
 border:none;
}

a {
 color:#000000;
 text-decoration: none;
}



.main_catalog {
 position:relative;
 float:left;
 top:0px;
 left:0px;
 width:100px;
 border-style: solid;
 border-width: 1px;
 border-color: #BEBEBE;
 background-color: #E0E0E0;
}

.main_catalog .cata-selected {
 position:relative;
 left:0px;
 top:0px;
 list-style-type: none;
 width:100%;
 height:34px;
 font-weight:normal;
 font-size:18px;
 text-align:center;
 line-height:34px;
}

.main_catalog .cata-unselected {
 position:relative;
 left:0px;
 top:0px;
 list-style-type: none;
 width:100%;
 height:34px;
 font-weight:normal;
 font-size:18px;
 text-align:center;
 line-height:34px;
}

.main_catalog ul {
 list-style-type: none;
 margin:0;
 line-height:0px;
}

.main_catalog .cata-split {
 position:relative;
 left:0px;
 top:0px;
 list-style-type: none;
 width:100%;
 height:1px;
 background-image: url(/img/main-catalog-split.jpg);
}

.main_catalog  a {
 position:relative;
 float:left;
 left:0px;
 top:0px;
 display:block;
 height:34px;
 width:100px;
}

.main_catalog  img {
 position:relative;
 float:left;
 left:0px;
 height:1px;
 width:100px;
 margin-left:-1px;
}

.main_catalog .cata-selected a {
 background-color: #FFFFFF;
 font-weight:bold;
}

.main_catalog .cata-unselected a {
 background-color: #E0E0E0;
}

.main_catalog .cata-unselected a:hover {
 background-color: #FFFFFF;
 font-weight:bold;
}

</style>

</head>
<body>
 <div class="main_catalog">
  <ul>
   <liclass="cata-selected"><ahref="#">图书音像</a></li>
   <liclass="cata-split"></li>
   <liclass="cata-unselected"><ahref="#">数码家电</a></li>
   <liclass="cata-split"></li>
   <liclass="cata-unselected"><ahref="#">服装鞋帽</a></li>
   <liclass="cata-split"></li>
   <liclass="cata-unselected"><ahref="#">个护化妆</a></li>
  </ul>
 </div>
</body>
</html>
测试了很多方式都没有解决,后来发现css配置中.main_catalog .cata-selected、.main_catalog.cata-unselected以及.main_catalog.cata-split没有float:left。加入后,菜单能很好的显示了。
从网上资料中得知设置float:left的元素脱离了默认布局,遇到多个这样的元素,一旦显示超过右侧边界,浏览器就自动重起一行开始排列。那么是否可以认为,默认布局过程中,li之间是有间距的,而且在整个调试过程中发现这个间距是根据内部元素的高度而变化的。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值