html中由inline-block引起的空白问题及解决方法

发布时间:2019-09-02编辑:脚本学堂
在html页面中做水平导航条时,需要使块元素并排显示,从而用到浮动,然而块元素浮动给边距(margin)的时候出现加倍的BUG,即会引起空白问题,要解决的话请看下面文章介绍的三种方法。

首先,制作一个水平的导航条
做法:使用li,设置inline-block使li横向显示代码如下:

复制代码 代码示例:
01.<style type="text/css">
02.    li {
03.        border:1px solid #000;
04.        display:inline-block;
05.        *display:inline; /*for IE6、IE7*/
06.        zoom:1; /*for IE6、IE7*/
07.    }
08.</style>
09.<ul>
10.    <li>链接</li>
11.    <li>链接</li>
12.    <li>链接</li>
13.    <li>链接</li>
14.    <li>链接</li>
15.</ul>

上面运行结果是除了IE6、IE7以外的浏览器,每个li之间都有一段空白。
注:IE6、IE7不支持inline-block;所以不会出现问题。

解决方法一般有三种:
1.将源代码中所有的li都放在同一行:

复制代码 代码示例:
01.<ul>
02.    <li>链接</li><li>链接</li><li>链接</li><li>链接</li><li>链接</li>
03.</ul>

2.换一种方式格式化源代码:

复制代码 代码示例:
01.<ul>
02.    <li>链接</li
03.    ><li>链接</li
04.    ><li>链接</li
05.    ><li>链接</li
06.    ><li>链接</li>
07.</ul>

3.设置ul的font-size为0,再设置li的font-size为正常值

复制代码 代码示例:
01.<style type="text/css">
02.    ul {
03.        font-size:0;
04.    }
05.    li {
06.        display:inline-block;
07.        border:1px solid #000;
08.        font-size:14px;
09.    }
10.</style>

这样,空白就被去掉了。