如何删除内联块生成的额外边距空间?

Pav*_*sev 33 css

我使用这个CSS格式化两列但我仍然在两个之间获得边距空间.我可以使用margin-left: -4px;或一些这样消除它.是否有更优雅的方式来做这个或CSS代码有什么问题?

div.col1{
  display: inline-block;
  min-height: 900px;
  height: 100%;
  width 300px;
  margin: 0px;
  background-color: #272727;
  overflow: hidden;
  border: 1px dotted red;
}

div.col2{
  display: inline-block;
  min-height: 900px;
  height: 100%;

  width: 620px;
  margin: 0px;

  vertical-align: top;
  border: 1px dotted red;
  overflow: hidden;
}
Run Code Online (Sandbox Code Playgroud)

Cal*_*leb 46

也许你有:

<div class="col1">
    Stuff 1
</div>
<div class="col2">
    Stuff 2
</div>
Run Code Online (Sandbox Code Playgroud)

?如果是这样,那么这可能是一个空白问题(事实证明,空格在html中很重要).这应该解决它:

<div class="col1">
    Stuff 1
</div><div class="col2">
    Stuff 2
</div>
Run Code Online (Sandbox Code Playgroud)

  • 更确切地说 - 这里很重要,因为块被视为内联(由于内联块) (9认同)
  • 不幸的是,这个答案需要更改标记(不是CSS应该修复的内容?: - /)并且不会为后处理/整理标记(就像在ASP.NET WebForms中生成的标记)进行分叉. (9认同)

小智 19

一个简单font-size:0的父元素将起作用.


jac*_*per 9

具有属性的元素inline-block将表现为内联(因此名称),因此遇到的任何空格都将被视为空格.例如:

<div></div><div></div>
Run Code Online (Sandbox Code Playgroud)

将以不同的方式呈现

<div></div>
<div></div>
Run Code Online (Sandbox Code Playgroud)

在这里查看一个实例

您可以使用HTML解决此问题,如下所示:

将所有元素放在同一行上,即

<div>
    // CONTENT
</div><div>
    // CONTENT
</div><div>
    // CONTENT
</div>
Run Code Online (Sandbox Code Playgroud)

或使用HTML注释删除空格

<div>
    //CONTENT
</div><!--
--><div>
    //CONTENT
</div>
Run Code Online (Sandbox Code Playgroud)

您可以使用CSS解决此问题,如下所示:

font-size: 0在父项上设置属性,即

parent {
    display: inline-block;
    font-size: 0
}
parent * {
    font-size: 12px
}
Run Code Online (Sandbox Code Playgroud)

或者zoom: 1在父级上设置属性,即

parent {
    display: inline-block;
    zoom: 1
}
Run Code Online (Sandbox Code Playgroud)


am8*_*80l 7

或者,要在不更改源代码格式的情况下修复此问题,您可以创建其他元素.

如果你在列表中这样做,它看起来像:

<ul >
    <li>
      <a href="#">Solutions Overview</a>
    </li>       
</ul>   


<style type="text/css">             
    ul {word-spacing:-1em;}
    ul li a{word-spacing:0;}
</style>
Run Code Online (Sandbox Code Playgroud)