Html <;之间的1px间距;a>;firefox中的标签

Html <;之间的1px间距;a>;firefox中的标签,html,css,spacing,Html,Css,Spacing,我使用了字体大小:0,这就是为什么我得到的链接没有空格,但在Firefox中仍然有空格 请在Firefox和其他浏览器中进行测试,您将看到Firefox在链接之间显示了一个空格(尽管是1px),而其他浏览器没有这样做。。。嗯,IE6和IE7,但我们不要谈论它们 有人知道为什么吗?我如何在不使用javascript确定浏览器的情况下着手解决它呢?也许你的意思是: letter-spacing: 0 这会导致你的“错误” 编辑: 如果希望字母间距为1px,这是一个很好的解决方案 只是补充: d

我使用了
字体大小:0,这就是为什么我得到的链接没有空格,但在Firefox中仍然有空格

请在Firefox和其他浏览器中进行测试,您将看到Firefox在链接之间显示了一个空格(尽管是1px),而其他浏览器没有这样做。。。嗯,IE6和IE7,但我们不要谈论它们

有人知道为什么吗?我如何在不使用javascript确定浏览器的情况下着手解决它呢?

也许你的意思是:

letter-spacing: 0
这会导致你的“错误”


编辑:

如果希望字母间距为1px,这是一个很好的解决方案

只是补充:


display:inline block
Div
容器css和
float:left
a
元素。

只需像这样从代码中删除空白即可

HTML:


这很愚蠢,我无法真正解释发生这种情况的“原因”,但这里有两种方法来纠正显示

FF不喜欢代码中的空格。在
发生这种情况的原因是,在a标记之间有一个文本节点,其中有一个换行符。由于您设置了
字母间距:1px
而firefox的编码人员已经选择按他们的方式实现字母间距,在textnode之后或之前,您可以获得1倍的字母间距

正如其他地方已经暗示的那样,解决方案是将
div#navigation
的规则更改为不包含行
字母间距:1px
,如下所示:

<div id="navigation">
    <a href="#">Link1</a><!--
    --><a href="#">Link2</a><!--
    --><a href="#">Link3</a><!--
    --><a href="#">Link4</a>
</div>
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;
}

您可以在此处看到应用了修复程序的工作版本:

阅读本文。您将在其正文和注释中找到所有可用的技术,以及它们的权衡

首先提到“删除空格”选项,因为它是最容易实现的。但它也“有点时髦”


注释中列出了“基于字母间距”选项,但请注意,如果您想让IE<8满意,则必须添加额外的css。

为什么要投否决票?我不知道为什么我愚蠢到在这里否决多个答案,但这是正确的解决方案。-1因为这不是一个真正的解决方案。您让布局由源代码决定,这是您永远不应该做的。正确的解决方案是删除导致问题的规则
字母间距:1px
。这绝对是一个解决方案,因为OP的问题是由空白引起的,注释或删除都可以解决。问题不是源代码,而是应用的样式。更改源代码是一个解决方案,就像服用止痛药是解决反复撞墙引起的头痛一样。但真正的解决办法是停止用头撞墙。可能的复制品我知道前几天我读到了一些关于这方面的东西。好链接。
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;
}