<li>标签做横向导航栏时中间有间距的原因和解决方案

前端开发中,当我们用<li>来实现横向导航栏的时候,总是发现中间会出现一条间隙,效果图如下:


下面是这个效果图的代码,可以发现此时每个<li>之间都出现了间隔。

<style>
	ul{
	    background-color: black;  
	    width: 500px;  
	    height: 30px;
	    border: 1px solid;
	}
	ul>li{
	    background-color: white;  
	    list-style: none;  
	    display: inline-block;
	    width: 100px;  
	    height: 30px;  
	    text-align: center;  
	    line-height: 30px;
	}
</style>
<ul>
	<li>1</li>
	<li>2</li>
	<li>3</li>
	<li>4</li>
</ul>

引发这种问题的原因是:<li>标签之间存在间隙,每个标签是不连贯的,存在空格。


所以我们的解决方案如下:

一:既然是因为间隙,最直接的就是去掉间隙。如下。

       

<ul>
	<li>1</li><li>2</li><li>3</li><li>4</li>
</ul>
或者
<ul>
	<li>1</li><!--
	--><li>2</li><!--
	--><li>3</li><!--
	--><li>4</li><!--
--></ul>

这种方法虽然解决了标签之间的间隙,但是感觉代码的排版杂乱,而且实际开发中比较繁琐。


二:将<li>的父标签,也就是<ul>标签的属性 font-size:0,再给 li 标签设置 font-size:...px,代码如下:

<style>
	ul{
	    background-color: black;  
	    width: 500px;  
	    height: 30px;
	    border: 1px solid;
	    font-size: 0;
	}
	ul>li{
	    background-color: white;  
	    list-style: none;  
	    display: inline-block;
	    width: 100px;  
	    height: 30px;  
	    text-align: center;  
	    line-height: 30px;
	    font-size: 14px;
	}
</style>

三:这个方法就方便多了,给 li 标签设置 float:left; 属性,我的开发中一般都是用这个方法。

<style>
	ul{
	    background-color: black;  
	    width: 500px;  
	    height: 30px;
	    border: 1px solid;
	}
	ul>li{
		background-color: white;  
	    list-style: none;  
	    display: inline-block;
	    width: 100px;  
	    height: 30px;  
	    text-align: center;  
	    line-height: 30px;  
	    float: left;
	}
</style>


tips:font-size:0;还可以解决图片元素img排列时候出现的间隙问题。给img的父级元素设置font-size:0;即可解决间隙问题。

  • 5
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值