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" />

这太可怕了!


当前回答

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

其他回答

不幸的是,换行符也算作空格字符。

我提出的最好的解决方案是在标签内部使用空白,而不是在标签外部:

  <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黑客,依赖于一个空间字符的大小被渲染或诉诸于相对定位,或JavaScript:)

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

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

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

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

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

图像是默认的内联元素,这就是为什么你会看到它们之间有空格。如果你在屏幕阅读器上听你的例子,你马上就知道为什么了:如果没有空白,你会听到:

我的小东西,小东西,小东西,小东西

所以,用我的迷你东西。(点加空格结束)作为alt文本或推与CSS一起的图像。不要只是删除代码中的空白。

缩小你的HTML!

在将响应呈现给浏览器之前缩小响应是一种很好的实践。

因此,除非您需要空格(并且您使用&nbsp;硬编码),否则您总是在缩小过程中删除空格。

如果您使用的是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;?>