原因

因为浏览器默认把inline元素之间的空白符(Tab、空格、换行)渲染成一个空格。而如下述代码,两个li元素之间的换行符被渲染成一个空格,则元素之间产生了间隙。

用Chrome浏览器将场景模拟出来:

HTML:

<ul>
<li>1</li>
<li>2</li>
<li>3</li>
<li>4</li>
<li>5</li>
</ul>

CSS:

li {
display: inline-block;
border: 1px solid red;
}

在浏览器打开页面,如下图,li元素之间产生了间隙。

解决办法

1、从根本原因上找解决方案,既然li元素间的间隙是因为换行符导致的,则可以将li写成一行。

<ul>
<li>1</li><li>2</li><li>3</li><li>4</li><li>5</li>
</ul>

但该方案会导致HTML的代码可读性较差,一般不建议用此方法;

2、用margin去掉元素间隙。

li {
display: inline-block;
border: 1px solid red;
margin-left: -6px;
}

但因为每个浏览器的间隙不一样,导致margin-left的值也需不一样,存在浏览器兼容性问题,同样不建议用此方案;

3、用浮动去掉元素间隙。

li {
display: inline-block;
border: 1px solid red;
float: left;
}

4、将li的父级元素font-size设置为0,再在li中将font-size设置为正常值。

ul {
font-size: 0;
}
li {
display: inline-block;
border: 1px solid red;
font-size: 14px;
}

当li设置为line-block时,元素之间出现间隙的原因和解决方法的更多相关文章

  1. inline-block元素间隙问题原因及解决方法

    inline-block元素间隙问题原因及解决方法 原因: 书写时由空格.换行或回车所产生空白符所致 解决方法: 方法1:font-size:0 方法2:改变书写方式 方法3:使用margin负值 方 ...

  2. display:inline-block元素之间空隙的产生原因和解决办法

    在CSS布局中,如果我们想要将一些元素在同一行显示,其中的一种方法就是把要同行显示的元素设置display属性为inline-block.但是你会发现这些同行显示的inline-block元素之间会出 ...

  3. tcp连接时,BROKEN PIPE错误的原因以及解决方法

    问题: 写了一个server和一个client,UNIX套接字的,server不断接收消息并打印出来,client是一个交互程序,输入一个消息回车发送,接着又可以输入消息.出问题了:当server监听 ...

  4. apt-get update 更新 ubuntu时出现Hash sum mismatch的原因及解决方法

    $ sudo apt-get update ...... Hit http://mirrors.163.com trusty/main Sources                          ...

  5. java写文件时,输出不完整的原因以及解决方法

    在java的IO体系中,写文件通常会用到下面语句 BufferedWriter bo=new BufferedWriter(new FileWriter("sql语句.txt")) ...

  6. java写文件时,输出不完整的原因以及解决方法close()或flush()

    在java的IO体系中,写文件通常会用到下面语句 BufferedWriter bw=new BufferedWriter(new FileWriter("sql语句.txt")) ...

  7. 鼠标聚焦到Input输入框时,按回车键刷新页面原因及解决方法

    参考地址:http://blog.csdn.net/xuezhongsong/article/details/6859037 方式1:全局控制回车,13-回车键,27-ESC,113-F2 docum ...

  8. 鼠标聚焦到Text输入框时,按回车键刷新页面原因及解决方法

    前提 一个form中只有一个输入框,当输入框获取焦点后,点击回车,导致整个页面都刷新,问题解决办法. 1.处理form  在form中添加事件 <form onsubmit="retu ...

  9. libevent在windows下用visual studio编译时出现error C2894错误的原因与解决方法

    libevent是一个使用很广泛的网络库,今天想了解下它.于是去git clone了一份源码,用vs2005的命令行:nmake -f makefile.nmake编译之,顺利编译通过,生成三个静态库 ...

随机推荐

  1. codevs——T1220 数字三角形

    http://codevs.cn/problem/1043/  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 黄金 Gold 题解  查看运行结果     题目描述 Descr ...

  2. java 数组中求最值

    java中数组求最值,这在实际的开发中差点儿用不到,可是在面试中会偶尔被问到,这是考你主要的思维能力,如今说下这个题的基本思路 思路: 1:先定义一个变量,通常是用数组的第一个值 2:在循环中推断(从 ...

  3. 【MongoDB】windows平台搭建Mongo数据库复制集(相似集群)(三)

    关于windows平台搭建Mongo数据库复制集这个话题,我已经在前面写了两篇博客 第一篇: 怎样在windows平台搭建Mongo数据库复制集 第二篇: 数据同步和故障自适应測试 在本篇里面,咱们重 ...

  4. JAVA小程序:和电脑猜拳

    import java.util.Scanner; import java.util.Random; public class Hello {      public static int judge ...

  5. 基于spark1.4的Spark-Sql

    Author: kwu 基于spark1.4的Spark-Sql,spark1.4.1在7月15刚公布.提供较好sql支持 1.怎样启动Spark-Sql 启动脚本例如以下 #!/usr/bin/en ...

  6. Task.ConfigureAwait

    public ConfiguredTaskAwaitable ConfigureAwait( bool continueOnCapturedContext ) Configures an awaite ...

  7. Working with SQL Server LocalDB

    https://docs.asp.net/en/latest/tutorials/first-mvc-app/working-with-sql.html The ApplicationDbContex ...

  8. Swift Int to String

    最近在项目中用到 swift, 涉及到 Int 转 String 类型,需要保留两位数,所以去研究了一下,做个记录 1.通常情况下1.1 Int转 String let intValue1 = 2 l ...

  9. word2vec (一) 简介与训练过程概要

    摘自:http://blog.csdn.net/thriving_fcl/article/details/51404655 词的向量化与word2vec简介 word2vec最初是Tomas Miko ...

  10. [Pulgin] 利用swfupload实现java文件批量上传

    URL:http://blog.csdn.net/xuweilinjijis/article/details/8876305 之前在网上找过很多相关资料,很多所谓的批量上传都是忽悠人的,真正的批量上传 ...