掉落甚至没有出现在IE6中

时间:2010-05-10 22:07:10

标签: css internet-explorer-6 drop-down-menu

我在这里有一个下拉菜单,只是简单不会出现在IE6中。该网站在其他所有浏览器中都运行良好。我知道,似乎很难在IE6上失眠,但该网站适合那些仍然可以使用它的人群。

这是CSS:

html {
    height:100%;
}

body, p, a, ul, li, ol, h1, h2, h3, h4, h5, h6 {
    margin:0;
    padding:0;
}

body {
    behavior:url("csshover3.htc");
    font-size:14px;
    font-family:Arial, Helvetica, sans-serif;
    background-color:#d3d3d3;
    height:100%;
}

h1 {
    font-size:18px;
    color:#752eca;
    text-decoration:none;
}

h2 {
    font-size:14px;
    color:#909090;
    text-decoration:none!important;
}

p {
    text-indent:20px;
    color:#000;
}

p a {
    color:#000;
    text-decoration:underline;
}

p.foot {
    text-indent:0px;
}

p.link {
    font-size:18px;
    color:#30F;
    text-decoration:underline!important;
}

a {
    color:#4d2288;
    text-decoration:none;
    outline:none;
}

a:visited {
    color:#4d2288;
}

p a:hover {
    text-decoration:underline!important;
}

ul#nav {
    padding:5px;
    margin:0px auto;
    width:100%;
}

ul#nav li a {
    display:block;
    font-weight:bold;
    padding:2px 10px;
    background:#bacddb;
}

ul#nav li a:hover {
    background:#888;
    color:#fff;
}

li {
    list-style:none;
    float:left;
    position:relative;
    width:225px;
    text-align:center;
    margin:0px auto;
    margin-right:4px;
    border:1px solid #4d2288;
}

li ul {
    display:none;
    position:relative;
    width:auto;
    top:0;
    left:0;
    margin-left:-1px;
}

li>ul {
    top:auto;
    left:auto;
    border-top:none;
}

li:hover ul, li.over ul {
    display:block;
}

ul#nav li.current a {
    background:#b8ab28;
}

ul#nav li.current a:hover {
    background:#888;
}

img {
    margin:10px 0 5px;
}

*html img {
    margin:20px;
}

.coltextimg {
    position:relative;
    float:left;
    background-position:left bottom;
    padding:0px 20px 10px 0px;
    border:none;
}

#maincontent {
    width:940px;
    margin:0px auto;
    postition:absolute;
}

*html #maincontent {
    margin-left:42px;
}

#header {
    float:left;
    width:100%;
    height:auto!important;
    height:100%;
    min-height:100%;
    margin:0px auto;
    background-image:url(images/banner_test.jpg);
    background-repeat:no-repeat;
    border:2px solid #752eca;
    -webkit-border-top-left-radius:10px;
    -webkit-border-top-right-radius:10px;
    -moz-border-radius-topleft:10px;
    -moz-border-radius-topright:10px;
    border-top-left-radius:10px;
    border-top-right-radius:10px;
}

.colmask {
    position:relative;
    margin-top:160px;
    clear:both;
    float:left;
    width:100%;
    overflow:hidden;
}

.colright,
.colmid {
    float:left;
    width:100%;
    position:relative;
}

.col1,
.col2 {
    float:left;
    position:relative;
    padding:10px 0 1em 0;
    overflow:hidden;
}

.twocol {
    background:#fff;
}

.twocol .colmid {
    right:45%;
    background:#fff;
}

.twocol .col1 {
    width:51%;
    left:47%;
    text-align:justify;
    z-index:0;
}

.twocol .col2 {
    width:41%;
    left:51%;
    text-align:justify;
    z-index:0;
}

.twocol .colimg {
    border:2px solid #a0a0a0;
}

.twocol .colvid1 {
    width:360px;
    height:240px;
}

.twocol .colvid2 {
    width:360px;
    height:240px;
}

#footer {
    text-align:center;
    font-size:9px;
    padding:10px 0 1em 0;
    clear:both;
    width:100%;
    height:100%;
}

*html #footer {
    height:43px;
}

#footer p a {
    text-decoration:none;
}

#lyr_ddmenu {
    position:absolute;
    z-index:1;
    height:10px;
    top:120px;
    float:left;
    width:1000px;
    margin:0px auto;
    padding:5px;
}

#contact {
    position:absolute;
    float:right;
    font-size:10px;
}

A.Controls:link {
    color:#666666;
    text-decoration:none;
    font-weight:bold;
}

A.Controls:visited {
    color:#666666;
    text-decoration:none; 
    font-weight:bold;
}

A.Controls:active {
    color:#666666;
    text-decoration:none;
    font-weight:bold;
}

A.Controls:hover {
    color:#be0000;
    text-decoration:none;
    font-weight:bold;
}

这是html我遇到的具体问题:

<div id="maincontent">
<div id="header">
    <div id="lyr_ddmenu">
        <ul id="nav">
            <li class="current"><href here...</a>
        <ul class="sub">
            <li><href here...</a></li>
            <li><href here...</a></li>
            <li><href here...</a></li>
            <li><href here...</a></li>
            <li><href here...</a></li>
        </ul></li>
            <li><href here...</a></li>
        <ul class="sub">
            <li><href here...</a></li>
            <li><href here...</a></li>
            <li><href here...</a></li>
            <li><href here...</a></li>
        </ul></li>
            <li><href here...</a></li>
            <li><href here...</a></li>
        <ul class="sub">
            <li><href here...</a></li>
        </ul></li>
        </ul>
</div>

谢谢!

2 个答案:

答案 0 :(得分:3)

IE6不支持所有元素的:hover伪类,只支持a个标记,因此以下规则不会在IE6中应用:

li:hover ul, li.over ul {
    display:block;
}

看起来您的菜单设计为使用Javascript来模拟:hover,方法是使用over函数将li元素添加到mouseover元素中,这样您就可以了在任何人都可以诊断IE6中发生的事情之前,需要发布任何Javascript。

如果这可能有所帮助,您可以使用Whatever:hover脚本在IE6中模拟此行为。

答案 1 :(得分:0)

1)从behavior:url("csshover3.htc");

中删除body

2)将其添加到底部(更好地替换.htc

* html li { scrollbar-face-color: expression(runtimeStyle.scrollbarFaceColor = '#fff', onmouseover = function() {this.className += ' hover'}, onmouseout = function() {this.className = this.className.replace(/ hover/g, '')} ); }
    li.hover ul { display:block; } /* (li:hover) */

3)应该工作。


或尝试分开

li:hover ul { display:block; }
li.over ul { display:block; }

您还可以使用jQuery 来处理:hover

jQuery(function($) {
    $("li").bind('mouseover mouseout',function(){$(this).toggleClass('hover')});
});

.hover课程:

li.hover ul { _display: block; } /* Styles for IE6 */