inline-block消除间隙

一、inline-block呈现效果的现象描述**

真正意义上的inline-block水平呈现的元素间,换行显示或空格分隔的情况下会有间距,很简单的个例子:
在这里插入图片描述

二.消除间隙的多种方法**

(1)内联样式的处理

消除间隙一:消掉空格的三种方法

<div class="space">
    <a href="">
        a1</a><a href="">
    a2</a><a href="">
    a3</a>
</div>
<div class="space">
    <a href="">a1</a
    ><a href="">a2</a
    ><a href="">a3</a>
</div>
<div class="space">
    <a href="">a1</a><!--
    --><a href="">a2</a><!--
    --><a href="">a3</a>
</div>

消除间隙二:去掉闭合标签

<div class="space">
    <a href="">a1
    <a href="">a2
    <a href="">a3</a>
</div>

注意,为了向下兼容IE6/IE7等浏览器,最后一个列表的标签的结束(闭合)标签不能丢。在HTML5中,我们直接:全部去掉闭合标签

<div class="space">
    <a href="">a1
        <a href="">a2
            <a href="">a3
</div>

(2)嵌入式CSS的处理

消除间隙一:使用margin负值, (推荐)设置方便
加入以下代码:

 .space a{
            margin-right: -5px;
            /*不同的浏览器选择的margin值不同*/
        }

消除间隙二:使用font-size值, 在div和a都设置

.space{
            font-size: 0;
        /*这个方法,基本上可以解决大部分浏览器下inline-block元素之间的间距*/
                /*(IE7等浏览器有时候会有1像素的间距)。不过有个浏览器,就是Chrome, */
                /*其默认有最小字体大小限制,因为,考虑到兼容性,我们还需要添加:*/
            -webkit-text-size-adjust:none;
            /*目前Chrome浏览器已经取消了最小字体限制。因此,*/
            /*上面的-webkit-text-size-adjust:none;代码估计时日不多了。*/
        }
        .space a{
            font-size: 12px;
        }

消除间隙三:使用letter-spacing,适用大部分浏览器

 .space{
           letter-spacing: -3px;
       }
        .space a{
            letter-spacing: 0;
        }

消除间隙四:使用Word-spacing,适用大部分浏览器

.space{
       word-spacing: -3px;
      }
 .space a{       
            word-spacing: 0;
        }
        /*一个是字符间距(letter-spacing)一个是单词间距*/
        /*(word-spacing), 大同小异。据我测试,word-spacing的负值只要大到*/
                      /*一定程度,其兼容性上的差异就可以被忽略。因为,貌似*/
                      /*,word-spacing即使负值很大,也不会发生重叠。*/

方法就列举这些…
对应代码在博客/inline-block去除间隙

你可能感兴趣的:(CSS)