1

由于更新到 FF4,我的一个网站上似乎对 FF4 中的 css 有一些错误的解释。或者更准确地说:如果你覆盖 FF 和 Chrome 的屏幕截图,FF 中的文本比 Chrome 中的文本低 2-3px。所以它没有正确垂直对齐。如果我减少 .nav a 中的 padding-top 以在 FF 中调整它,它不在 Chrome 的中间。

在 FF 3.6 中,一切看起来都很好。在 IE 中也可以。有任何想法吗?

此外,FF 中的文本似乎比 Chrome 中的更广泛。你可以在这张图片上看到它:http: //i54.tinypic.com/2nsz6nn.jpg

第一个“开始”在 FF 中,第二个在 Chrome 中(应该如何)。下一个文本是 FF 和 Chrome 之间的叠加 - FF 更广泛。

是我网站上的导航栏,html:

<div id="nav_wrapper"> 
<div align="center" class="nav"><a href="/1" title="1">Link one</a></div>
<div class="nav_sep"></div>
<div align="center" class="nav"><a href="/2" title="2">Link two</a></div>
<div class="nav_sep"></div>
<div class="nav nav_last" style="width:249px;">
    <div class="right">
     <div class="left">
      <form action="/suche/" method="get" name="nav_searchForm">
       <input type="text" name="s" class="nav_searchInput" />
      </form>
     </div>
     <div class="btn nav_searchBtn"><div class="lf">&nbsp;</div><div class="ct">search</div><div class="rt">&nbsp;</div></div>
    </div>
</div>
<div style="clear:both"></div>

CSS:

/* navigation */
#nav_wrapper{width:100%;}
.nav{background-image:url(/img/nav.png);background-position:-10px 0px;background-repeat:no-repeat;color:#FFF;height:46px;float:left;font-size:16px;}
.nav a{display:block;color:#FFF;text-decoration:none;padding:15px 18px 10px 18px;}
.nav:hover{background-position:-10px -46px;}
.nav_sep{background-image:url(/img/nav.png);background-position:-444px top;height:46px;float:left;width:2px;}
.nav_last{height:34px;padding:12px 18px 0 18px;}
.nav_searchInput{background-image:url(/img/magnifier.png);background-repeat:no-repeat;background-position:left top;border:1px solid #D5D5D5;font-size:13px;margin:0 4px 0 0;padding:3px 2px 3px 26px;width:146px;}

任何想法如何解决它?我不想使字段 Javascript-Clickable (这将是一种解决方案:放弃 display:block 并应用 javascript onclick 事件,与边距而不是填充对齐)。

谢谢你。

信息:它不依赖于任何其他布局。也在干净的页面上对其进行了测试。

4

1 回答 1

2

有几个问题。最简单的解决方案是将 .nav 的 line-height 设置为规则,如下所示:

.nav a { line-height: 16px; }

每个浏览器都有不同的默认衬线和无衬线字体。每个浏览器甚至都有不同的字体渲染算法。如果您依赖文本作为要控制其高度的元素的框模型,请始终明确设置元素的行高和高度。

于 2011-03-23T18:54:45.687 回答