去除inline-block元素间间隙的方法

对于inline-block元素,如几个设置为display:inline-block的span元素,在ie6、7中显示无间隙,在其他ie版本和高级浏览器中显示有间隙。

<div>
    <span></span>
    <span></span>
</div> 

span{
    width: 50px;
    height: 50px;
    border: 1px solid red;
    display: inline-block;   vertical-align:top;(防止因span里面字体太多而两span间上下错位)
}

下图:除ie6、7外的高级浏览器中显示

方法一:

元素之间有间隙,是因为标签之间有空格,去掉空格即可

<div>
    <span></span><span></span>
</div> 

或者借助HTML注释

<div>
    <span></span><!--
    --><span></span>
</div> 

方法二:

使用margin-right

span{
    display: inline-block;
    margin-right:-8px;
}

margin-right的值大小要视span的父元素div字体类型、大小而定。

参考

http://www.zhangxinxu.com/wordpress/2010/11/%E6%8B%9C%E6%8B%9C%E4%BA%86%E6%B5%AE%E5%8A%A8%E5%B8%83%E5%B1%80-%E5%9F%BA%E4%BA%8Edisplayinline-block%E7%9A%84%E5%88%97%E8%A1%A8%E5%B8%83%E5%B1%80/

方法三:

使用font-size:0

方法二中提到margin-right的值要看父元素div而定,故可以联想到使用fon-size:0消除间隙

div{
    font-size:0;
}span{    font-size:12px;}

方法四:

使用letter-spacing(字符间距)

div{
    letter-spacing:-8px;
}
span{
    letter-spacing:0;
}

具体div的letter-spacing值是多少,视字体而定

方法五:

使用word-spacing(单词间距)

div{
    word-spacing:-8px;
}
span{
    word-spacing:0;
}

方法六:

div{
    display:inline-table; || display:table;
}
时间: 2024-08-03 03:04:26

去除inline-block元素间间隙的方法的相关文章

关于 inline block 元素之间的空格

本篇文章由:http://xinpure.com/about-the-inline-block-element-between-spaces/ 说点什么 display: inline-block 属性很好的避免了元素的浮动问题,但是会有点小问题,就是 inline-block 元素间的回车会被显示为一个空格.然而,我们写代码时,都是用回车来格式化的... 最简单的方法就是把 inline-block 元素之间的回车删除,就是代码显示有点不美观,影响阅读. 方法总结 以下方法不保证浏览器兼容性问

CSS font-size: 0去除内联元素空白间隙

我们在编写HTML标签的时候,通常会使用换行,缩进来保证代码的可读性.同时,在编写CSS样式的时候,也会需要把一些元素设置为inline或inline-block.这样一来,有时在页面中会出现意外的空白间隙导致页面视图与本意不符. 先来了解一下出现空白间隙的原因吧!因为内联元素默认排版中有空白间隙,以此来把每一个内联元素独立分开,这里的空白间隙也就是空白的文本节点,在缩进代码时会占据宽度,所以就导致了意外的空白间隙. 那么接下来为大家提供三种解决方法 1.去掉两个HTML标签中的空白,也就是去掉

[转]去除inline-block元素间间距的N种方法

来自张鑫旭-鑫空间-鑫生活[http://www.zhangxinxu.com] 一.现象描述 真正意义上的inline-block水平呈现的元素间,换行显示或空格分隔的情况下会有间距,很简单的个例子: <input /> <input type="submit" /> 间距就来了~~ 我们使用CSS更改非inline-block水平元素为inline-block水平,也会有该问题: .space a { display: inline-block; paddi

转载&gt;&gt;去除inline-block元素间间距的N种方法《重》

一.现象描述 真正意义上的inline-block水平呈现的元素间,换行显示或空格分隔的情况下会有间距,很简单的个例子: <input /> <input type="submit" /> 间距就来了~~(正确理解:inline,inlin-block;block) 我们使用CSS更改非inline-block水平元素为inline-block水平,也会有该问题: .space a { display: inline-block; padding: .5em 1

去除inline-block元素间间距的N种方法

真正意义上的inline-block水平呈现的元素间,换行显示或空格分隔的情况下会有间距. 方法1:移除空格 <div class="space"> <a href="##"> 哈哈</a><a href="##"> 呵呵</a><a href="##"> 嘻嘻</a> </div> 方法二:借助HTML注释 <div cla

去除inline-block元素间间距

一.现象描述 真正意义上的inline-block水平呈现的元素间,换行显示或空格分隔的情况下会有间距,很简单的个例子: <input /> <input type="submit" /> 间距就来了~~ 我们使用CSS更改非inline-block水平元素为inline-block水平,也会有该问题: .space a { display: inline-block; padding: .5em 1em; background-color: #cad5eb;

inline-block 元素之间间隙清除的几种方法

两个 inline-block 元素之间会有间隙(事实上,除了 inline-block 元素,两个 inline 元素之间也是有间隙的),究其根本,其实就是 html 元素换行导致(可以尝试下,换行和元素之间加个空格,或者多个空格,结果一样,最后都是一个空格).如何清除这个间隙呢? 方法 0 - 移除空格 我们知道,产生间隙的原因,是因为元素之间有空格(换行,tabs,多个空格等,最后的表现都是一个空格),那么理论上,去掉这个空格,就不会有间隙了. 如果 html 是在后端模板中,那么有些模板

去除行内(inline/inline-block)元素之间的间距

先展示一下,行内元素之间存在间距,实例代码如下: <style> div { color: #fff; padding: 25px 50px; } .inline-f00 { display: inline; background: #f00; } .inline-0f0 { display: inline; background: #0f0; } .inline-block-00f { display: inline-block; background: #00f; } .inline-bl

inline-block元素间的间隙问题

在我们使用inline-block时会发现元素间存在间隙,如下例所示 <nav> <a href="#">one</a> <a href="#">one</a> <a href="#">one</a> </nav> nav a{ display:inline-block; padding:5px; background:red; } 上面代码的效果如上