HTML/CSS中是否有任何东西告诉浏览器完全忽略空白?

很多时候,当你想把两张图片放在一起时,你拼命地想保持HTML的可读性,但浏览器在它们之间放了一个空格。

所以不是这样的:

<img src="images/minithing.jpg" alt="my mini thing" />
<img src="images/minithing.jpg" alt="my mini thing" />
<img src="images/minithing.jpg" alt="my mini thing" />
<img src="images/minithing.jpg" alt="my mini thing" />

你会得到这个

<img src="images/minithing.jpg" alt="my mini thing" /><img src="images/minithing.jpg" alt="my mini thing" /><img src="images/minithing.jpg" alt="my mini thing" /><img src="images/minithing.jpg" alt="my mini thing" />

这太可怕了!


当前回答

哦,你可以很容易地完成这一行CSS:

#parent_of_imgs { white-space-collapse: discard; }

你会问,缺点?目前还没有浏览器实现这个非常有用的特性(一般来说是内联块)。: - (

我时常做的事是,尽管它像黑夜一样丑陋,就是使用评论:

<p><!--
  --><img src="." alt="" /><!--
  --><img src="." alt="" /><!--
  --><img src="." alt="" /><!--
  --><img src="." alt="" /><!--
--></p>

其他回答

对此的最新解决方案是使用display: flex外部容器,您可以尝试以下示例:

代码笔→

(是的,Flexbox正在得到广泛支持:http://caniuse.com/#search=flexbox)

HTML:

<!-- Disregard spaces between inline-block elements? -->
<div class="box">
  <span></span>
  <span></span>
  <span></span>
</div>

CSS

.box {
  display: flex;
  display: -webkit-flex;    
}

span {
  display: inline-block;
  width: 30px;
  height: 30px;
  background-color: #fcf;
  border: 2px solid #f9f;
}

更新:此外,如果你想要你的项目包装(标准的内联块元素做),不要忘记添加flex-wrap: wrap到你的flexbox容器。

如果您使用的是php,这将非常有效。我在这里找到了答案。

我最初是想在用simplexml之类的东西解析html后删除仅由空白组成的文本节点,但这要便宜得多。

<?ob_start(function($html) {return preg_replace('/>\s+</','><',$html);});?>
    <img src='./mlp.png'/>
    <img src='./dbz.png'/>
    <img src='./b10af.png'/>
    <img src='./fma.png'/>
<?ob_end_flush;?>
<style>
  img {
     display: table-cell
  }
</style>
<img src="images/minithing.jpg" alt="my mini thing" />...

好吧,我可能是幸运的,因为我现在只需要担心让这个工作在webkit(特别是一个嵌入在QT),所以它在Chrome和Safari也工作。似乎display: table-cell拥有display: inline-block的所有优点,但没有空白的缺点(想想缩进的td)

这个解决方案有什么困难之处?

css

.no-whitespace {
    line-height: 0;
    font-size: 0;
}

html

<span class="no-whitespace">

    <a href=# title='image 1'>
       <img src='/img/img1.jpg' alt='img1'/>
    </a>

    <a href=# title='image 2'>
       <img src='/img/img2.jpg' alt='img2'/>
    </a>

    <a href=# title='image 3'>
       <img src='/img/img3.jpg' alt='img3'/>
    </a>

</span>

您可以将容器的字体大小设置为0,然后空白就会消失!