zoukankan      html  css  js  c++  java
  • 内联元素间的间隔

    问题描述:

    内联元素间会出现不是由margin引起的间隔,具体如下描述:

    HTML:
    <div>
      <span>a</span>
      <span>b</span>
      <span>c</span>
      <span>d</span>
    </div>
    CSS:
    *{margin:0;padding:0;}
    span{
      background-color: #ddd;
    }

    以上代码的结果为:

    image

    通过调试,发现各个span间没有margin,也不存在任何其他元素,但却有间隔。

    解决方案:

          span间的间隔是由span标签间存在空格、tab、换行字符导致(经过实验发现,内联元素、替换元素、inline-block元素均存在此问题),故有如下两种解决方案。

    1)删掉空格等字符:既然间隔是空格等导致,删掉或用注释连接。如下:

    删掉空格
    <div>
      <span>a</span><span>b</span><span>c</span><span>d</span>
    </div>
    用注释连接
    <div>
      <span>a</span><!--
      --><span>b</span><!--
      --><span>c</span><!--
      --><span>d</span>
    </div>

    2)空格、tab、换行均为字符,故其大小与font-size有关。根据实践发现将父元素div的font-size调大,间隔也会变大。因此,可以通过将div的font-size设为0,即可消除间隔。然而font-size是可继承属性,此时span的font-size也为0,span的内容将无法显示,此时只需单独为span设置font-size即可。

    即解决办法为:将父元素font-size设置为0,并为内联元素单独设置font-size

    div{
        font-size:0;
    } 
    span{
      font-size:20px;
      background-color: #ddd;
    }

    以上代码的显示结果如下,间隔被消除。

    image

  • 相关阅读:
    字幕文件处理(2)
    使用RelativeLayout控制WebView以及Bottom按钮的位置
    使用ActionBar Tab
    使用自定的Adapter绑定ListView/GridView数据
    Mono.Android 基础
    Azure自动化实例: 复制blog用于备份
    使用C#程序处理PowerPoint文件中的字符串
    SQL语言Select经典语句
    Row_Number() and Rank() in SQL
    C# Main函数中调用异步方法的2种实现
  • 原文地址:https://www.cnblogs.com/youhong/p/6486033.html
Copyright © 2011-2022 走看看