2011-12-02 56 views
9

可能重复:
How do I remove the visibility of spaces between inline elements?在HTML源锚之间的新线在浏览器中创建空的空间

我通常的格式由人容易读我的源代码,据我所知的浏览器中删除任何\n\t来自源的字符,所以它们不会进入呈现的html。

今天,我构建了一个菜单,它在呈现的html中的两个锚点之间有几个像素,我找不到CSS/HTML中“空白”空间的来源。几个小时后,我删除源头中两个锚点之间的新线(\n)(以防万一)并且空的空间消失。

我创建了一个小提琴here

第一个菜单元素在源代码的同一行中有锚,其他2个菜单项在锚之间有一个新行。 (把鼠标悬停在菜单上,看看我在说什么)。我在Firefox 8.0,Firefox Nightly 11.0a1(2011-12-01)和Chromium 14.0.835.202(Developer Build 103287 Linux)Ubuntu 11.10中具有相同的行为。

我只是不明白为什么会发生这种情况。

我做错了什么,我该如何避免这种行为(不改变源代码的可读性)?

回答

16

锚是内联元素。如果在元素之间添加空格(空格,制表符,newine,..),则会出现间隙。

根据不同的情况,可以使用以下两种方法来摆脱的差距:

  • 添加负margin-left,例如margin-left:-4px;
  • 使用float,例如, float:left;
  • 删除元素之间的空白。为了保持代码的可读性几分,你可以在开始标记后突破,如:

    <a href="..">Link</a><a 
        href="..">Link 2</a> 
    
+0

虽然不应该在一个垂直移位造成的,除非它们是偶然在一行的末尾。 – GolezTrol

+2

今天我学到了一些新东西,谢谢 –