我在父元素上使用了font-size: 0;
,这就是我如何获得没有空格的链接,但Firefox中的空间仍然存在。
请在Firefox和其他任何浏览器中进行测试,你会发现Firefox在链接之间显示了一个空格(尽管是1px ),因为没有其他浏览器正在这样做... IE6& 7但是不要谈论它们......
有谁知道为什么?如何在不使用javascript确定浏览器的情况下解决问题?
答案 0 :(得分:1)
也许你的意思是:
letter-spacing: 0
这会导致“bug”
编辑:
如果你希望字母间距为1px,这是一个很好的解决方案,fiddle up
只需添加:
display: inline-block
到Div
容器css,float: left
到a
元素。
答案 1 :(得分:1)
发生这种情况的原因是因为在a-tags之间存在一个带有换行符的文本节点。因为你设置了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/
答案 2 :(得分:1)
阅读这篇文章。您将在其正文和评论中找到所有可用的技术,以及它们的权衡。
http://css-tricks.com/fighting-the-space-between-inline-block-elements/
首先提到“删除空格”选项,因为它最容易实现。但它也“有点时髦”。
评论中列出了“基于字母间距的”选项,但请注意,如果要使IE< ,则必须包含额外的css。 8开心。
答案 3 :(得分:0)
只需删除代码中的空格,例如 jsFiddle example 。
HTML:
<div id="navigation">
<a href="#">Link1</a><a href="#">Link2</a><a href="#">Link3</a><a href="#">Link4</a>
</div>
答案 4 :(得分:0)
这很愚蠢,我无法解释这种情况的“原因”,但这里有两种方法可以纠正显示。
FF不喜欢代码中的空格。请删除<a>
标记之间的回车符或将其注释掉,如下所示:
<div id="navigation">
<a href="#">Link1</a><!--
--><a href="#">Link2</a><!--
--><a href="#">Link3</a><!--
--><a href="#">Link4</a>
</div>