2

我已经使用 css 设计了一个导航列表。下面是我的代码

ul#mainnavigation li a {
    font: 14px/20px 'Open Sans', Open Sans, Helvetica, Arial, sans-serif;
    position:relative;
    font-weight:600;
    color:#686868;
    margin:0;
    padding:0 19.7px;
    height:50px;
    line-height:50px;
    display:inline-block;
    -webkit-transition:color 0.1s linear, background 0.1s linear, border-left-color 0.1s linear, border-bottom-color 0.1s linear;
    -moz-transition:color 0.1s linear, background 0.1s linear, border-left-color 0.1s linear, border-bottom-color 0.1s linear;
    -o-transition:color 0.1s linear, background 0.1s linear, border-left-color 0.1s linear, border-bottom-color 0.1s linear;
    transition:color 0.1s linear, background 0.1s linear, border-left-color 0.1s linear, border-bottom-color 0.1s linear;
    z-index:100;
}

我遇到的问题是在 Firefox 中它工作得很好,但在 chrome 中最后一个导航元素在下面消失了。

在 Firefoxpadding:0 25.7px;中给出了正确的结果

在 chromepadding: 0 26.5px;中给出了正确的结果

如何确保填充在两个浏览器上都能正常工作?

注意:我已将文档类型定义为<!DOCTYPE html>

4

1 回答 1

0

正如您所发现的,不同的浏览器通常会为相同的元素呈现略微不同的像素大小 - 这通常是因为字体大小以及浏览器缩放字体的方式,但可能有多种原因。

我的建议是:

1)如果导航菜单必须是 50px 高,缩放里面的元素,为浏览器留下一点额外的空间导致问题,或者:

2)您还可以删除菜单上硬编码的 50px 高度,并让它自动缩放以适合其元素。如果菜单中的任何内容是浮动的,则删除菜单容器上的“height”属性并添加“overflow:hidden;” CSS 的属性应该会导致菜单扩展到其中所有内容的高度。

于 2013-02-04T15:40:39.727 回答