1

我正在印度的一家非政府组织实习,并试图修复他们的网站,包括更新他们的菜单,使其不是页面上要加载的最后一项,并且它位于屏幕的中心。一切都很好,但是当我在 IE6 中尝试我的新菜单时,我收到了这个奇怪的错误,菜单下方的内容被额外填充了 30px 左右,最右边的下拉菜单中的材料出现在最左边屏幕,始终可见。当我下拉最右边的链接(“出版物”)时,内容会出现在正确的位置和屏幕最左侧的同一位置,并且当我悬停时也会改变颜色。很难描述,所以最好看一下:

在您的 IE6/IE7 浏览器中访问http://sevamandir.org/a30/aboutus.htm亲自查看。我真的很感谢你的帮助。此外,我使用的是 1000 像素宽的显示器,如果在该空间之外还有更多的 hijinks,我也想知道这一点。

我再次看了一下这个问题,它比我想象的还要奇怪。无论最左侧的下拉菜单中有多少项,都只显示最底部的下拉菜单项的两个字母。当我删除最左侧的下拉菜单时,下一个最左侧项目的底部项目显示在同一空间中。菜单和内容之间的填充始终相同。当我将鼠标悬停在真正的菜单项上时,左侧的两个字母会改变颜色以匹配悬停颜色。

不幸的是,许多访问我们网站的人都使用旧浏览器,因此 IE6 支持非常重要,不过这个问题真的很奇怪,我希望能得到一些帮助。

我在http://sevamandir.org/a30/aboutus.htm上传了一个包含整个 style.css 表的文件和下面的 HTML 代码。

以下是相关代码:

在html头中:

<script>
sfHover = function() {
var sfEls = document.getElementById("nav").getElementsByTagName("LI");
for (var i=0; i<sfEls.length; i++) {
    sfEls[i].onmouseover=function() {
        this.className+=" sfhover";
    }
    sfEls[i].onmouseout=function() {
        this.className=this.className.replace(new RegExp(" sfhover\\b"), "");
    }
}
}
if (window.attachEvent) window.attachEvent("onload", sfHover);
</script>

菜单周围的文字 - 菜单很简单

<ul id="nav"><li></li></ul>

等等

<!--begin catchphrase-->
    <div style="float:left; height:27px; width:520px; margin:0px; font:16px Arial, Helvetica, sans-serif; font-weight:bold; color:#769841;">
        Transforming lives through democratic &amp; participatory development
    </div>

    <?php include("menu.php"); ?>

    </div><!-- end header -->
<!--begin main text div-->
<div id="maincontent">

相关菜单CSS:

#nav, #nav ul {
font:bold 11px Verdana, sans-serif;
float: left;
width: 980px;
list-style: none;
line-height: 1;
background: white;
font-weight: bold;
padding: 0;
border: solid #769841;
border-width: 0;
margin: 0 0 1em 0;
}

#nav a {
display: block;
width: 140px;           /*this is the total width of the upper menu*/
w\idth: 120px;          /*this is the width less horizontal padding */
padding: 5px 10px 5px 10px; /*horiz padding is the 2nd & 4th items here - goes Top Right Bottom Left */
color: #ffffff;
background:#b6791e;
text-decoration: none;

}

#nav a.daddy {
background: url(rightarrow2.gif) center right no-repeat;
}

#nav li {
float: left;
padding: 0;
width: 140px;           /*this needs to be updated to match top #nav a */
background:#b6791e;
}

#nav li:hover, #nav li a:hover, #nav li:hover a {
background:#769841;
}

#nav li:hover li a {
    background:#ffffff;
    color:#769841;
}



#nav li ul {
    position: absolute;
    left: -999em;
    height: auto;
    width: 14.4em;
    w\idth: 13.9em;
    font-weight: bold;
    border-width: 0.25em;       /*green border around dropdown menu*/
    margin: 0;
}

#nav li ul a {
    background:#ffffff;
    color:#769841;
}

#nav li li {
    padding-right: 1em;
    width: 13em;
    background:#ffffff;
}

#nav li ul a {
    width: 13em;
    w\idth: 9em;
}

#nav li ul ul {
    margin: -1.75em 0 0 14em;
}

#nav li:hover ul ul, #nav li:hover ul ul ul, #nav li.sfhover ul ul, #nav li.sfhover ul ul ul {
    left: -999em;
}

#nav li:hover ul, #nav li li:hover ul, #nav li li li:hover ul, #nav li.sfhover ul, #nav li li.sfhover ul, #nav li li li.sfhover ul {
    left: auto;
}

#nav li:hover, #nav li.sfhover, {
    background: #769841;
    color:#ffe400;
}

#nav li a:hover, #nav li li a:hover, #nav li:hover li:hover, #nav li.sfhover a:hover {
    background: #769841;
    color:#ffe400;
}
4

1 回答 1

0

问题是 IE Ghost 文本错误,这是由浮动项目之间的 HTML 注释标签过多引起的。在此处阅读更多信息http://www.toastedweb.si/docs/ie_ghost_text_bug_fix.html

于 2010-05-05T03:05:48.780 回答