我font-size: 0;
在父元素上使用过,这就是我如何让链接没有空格,但 Firefox 中的空间仍然存在。
请在 Firefox 中测试,然后在任何其他浏览器中进行测试,您会看到 Firefox 在链接之间显示一个空格(尽管 1px),因为没有其他浏览器这样做......好吧 IE6 和 7,但我们不要谈论它们......
有谁知道为什么?以及如何在不使用 javascript 来确定浏览器的情况下解决它?
也许你的意思是:
letter-spacing: 0
这会导致您的“错误”
编辑:
如果您希望字母间距为 1px,这是一个很好的解决方案,请搞定
只需添加:
display: inline-block
到Div
容器 css 和float: left
元素a
。
发生这种情况的原因是因为在 a 标记之间有一个带有换行符的文本节点。并且由于您已经设置letter-spacing: 1px;
并且 Firefox 编码器选择以他们的方式实现字母间距,因此您在该 textnode 之后或之前获得 1px 的字母间距。
正如其他地方已经暗示的那样,解决方案是更改规则以div#navigation
使其中没有行letter-spacing: 1px
,如下所示:
div#navigation {
position: relative;
padding: 1px 0;
border-top: 1px solid black;
border-bottom: 1px solid black;
font-family: Georgia, Serif;
margin: 0 auto 2px auto;
width: 400px;
font-size: 0;
text-shadow: 0 1px #fff;
}
您可以在此处看到应用了修复程序的工作版本:http: //jsfiddle.net/uZMzA/10/
阅读这篇文章。你会在它的正文和评论上找到所有可用的技术,以及它们的权衡。
http://css-tricks.com/fighting-the-space-between-inline-block-elements/
首先提到“删除空格”选项,因为它最容易实现。但它也“有点时髦”。
注释中列出了“基于字母间距”的选项,但请注意,如果您想让 IE < 8 满意,则必须包含额外的 css。
只需从您的代码中删除空格,就像这个jsFiddle 示例一样。
HTML:
<div id="navigation">
<a href="#">Link1</a><a href="#">Link2</a><a href="#">Link3</a><a href="#">Link4</a>
</div>
这很愚蠢,我无法真正解释这种情况的“原因”,但这里有两种纠正显示的方法。
FF 不喜欢代码中的空格。删除标签之间的回车<a>
或将它们注释掉,如下所示:
<div id="navigation">
<a href="#">Link1</a><!--
--><a href="#">Link2</a><!--
--><a href="#">Link3</a><!--
--><a href="#">Link4</a>
</div>