3

我创建了简单的水平菜单,并在每个 LI 内提供相等的左右填充,但在 ie 版本中,它在最后一个 li 或下一行之后留下额外的空间。

我花了 3 个小时让它跨浏览器兼容,但最终失败了。当我在最后一个 LI 上添加额外的填充以调整空间时,它在 Firefox 中很好,但在 ie 中显示了不需要的空间。我想让它跨浏览器兼容而不使用黑客。

在此处输入图像描述

下面是代码:

<section class="topContent">
    <nav>
        <ul>
            <li><a href="javascript:;">home</a>
            </li>
            <li><a href="javascript:;">earthmoving</a>
            </li>
            <li><a href="javascript:;">attachments</a>
            </li>
            <li><a href="javascript:;">power systems</a>
            </li>
            <li><a href="javascript:;">truck tailer</a>
            </li>
            <li><a href="javascript:;">ag equipment</a>
            </li>
        </ul>
    </nav>
    <!--/nav-->
</section>
.topContent{ width:940px; margin:0 auto;}
.topContent nav{ background:#ffce12; height:42px;}
.topContent nav ul{ padding:0; margin:0;}
.topContent nav li{ float:left; list-style:none;}
.topContent nav li a{ font:14px/42px Arial, Helvetica, sans-serif; color:#000; padding:0 40px; text-transform:capitalize; display:block;}
.topContent nav li a:hover, .topContent nav li a.active{ background:#464646 url(../images/hover-arrow.jpg) no-repeat center 0; display:block; color:#fff;}
4

2 回答 2

0

您的“设计公司”CSS 根本没有对齐/分隔项目,您只是调整了填充值以使其在一个浏览器上工作。

解决它的一种方法是证明 nav items 的合理性,或者如果您对动态内容不感兴趣(即 nav item 标题长时间不会更改),您可以明确设置元素宽度并将它们的文本居中。

于 2012-11-04T22:55:17.960 回答
0

问题是基于菜单的宽度。我相信,因为文本在每个浏览器甚至操作系统中呈现略有不同,所以你不会得到这么完美。如果菜单不是动态的,您可以尝试分别调整宽度/填充。或者,您可以将菜单宽度的宽度除以链接数。如果某些项目太长,可能看起来有点奇怪。如果这样做,请确保将文本居中对齐。

nav a {
    padding: 0; /*just need to remove the padding*/
    width: 156.6px; /*940 / 7 (the amount of links)*/
    text-align:center; 
}
于 2012-11-04T23:13:26.113 回答