Список меню в IE6 sub не опускается - PullRequest
0 голосов
/ 23 июня 2011

Я знаю, что у ie6 есть проблема с: hover visibilty и дочерними селекторами, но не могу понять, почему мое подменю не падает? Я включил код и был бы признателен, если кто-то может сказать мне, где моя ошибка? это продолжение ответов, полученных в предыдущем посте. Вы заметите, что я попробовал поведение файла htc, и это не работает для меня. спасибо

<ul id="navigation" class="nav-main">
            <li><a href="http://www.somedomain.com/">Home</a></li>
            <li class="list"><a href="#">Freebies</a>
          <ul class="nav-sub">
            <li><a href="http://www.somedomain.com/category/backgrounds/">Backgrounds</a></li>
            <li><a href="http://www.somedomain.com/category/buttons/">Buttons</a></li>
            <li><a href="http://www.somedomain.com/category/graphics/">Graphics</a></li>
            <li><a href="http://www.somedomain.com/category/html-css/">HTML &amp; CSS</a></li>
            <li><a href="http://www.somedomain.com/category/icons/">Icons</a></li>
            <li><a href="http://www.somedomain.com/category/psd/">PSD</a></li>
            <li><a href="http://www.somedomain.com/category/templates/">Templates</a></li>
            <li><a href="http://www.somedomain.com/category/tutorials/">Tutorials</a></li>    
          </ul>
            </li>

            <li class="list"><a href="#">About</a>
          <ul class="nav-sub">
            <li><a href="http://www.somedomain.com/about/">AboutUs</a></li>
            <li><a href="http://www.somedomain.com/commercial-use/">Commercial Use</a></li>
            <li><a href="http://www.somedomain.com/about/terms-of-use/">Terms Of Use</a></li>
          </ul>
          </li>

            <li><a href="http://www.somedomain.com/advertise/">Advertise</a></li>
            <li><a href="http://www.somedomain.com/contact/">Contact</a></li>


        </ul>


body    {

    behavior: url(csshover3.htc);
}

#navigation {
    margin:0;
    padding: 0;
    clear:both;
    width:999px;
    height:51px;
    background: #d6eaf8 url(../images/dropdown-bg.gif) repeat-x left top;
}


ul.nav-main,
ul.nav-main li {
    list-style: none;
    margin: 0;
    padding: 0;
}


ul.nav-main {
    position: relative;
    z-index: 597;
}

ul.nav-main li:hover > ul {
    visibility: visible;

}


ul.nav-main li.hover,
ul.nav-main li:hover {
    position: relative;
    z-index: 599;
    cursor: pointer;
    background: url(../images/dropdown-bg-hover.gif) repeat-x left top;

}



ul.nav-main li {
    float:left;
    display:inline-block ;
    height: 100%;
    color: #999;
    font: 14px Tahoma, Verdana, Arial, Helvetica, sans-serif;
    background: url(../images/separator.gif) no-repeat right center;

}

ul.nav-main li a {
    display:inline-block;
    padding: 16px 16px 0 16px;
    height: 35px;
    color: #fff;
    font: 14px Tahoma, Verdana, Arial, Helvetica, sans-serif;
    text-decoration:none;
}

ul.nav-main li a:hover {
    color:#D6D6D6;

}



ul.nav-main *.list {
    padding-right: 22px;
    background: url(../images/navigation-arrow.gif) no-repeat right top;
}



ul.nav-sub {
    display:block;
    position: absolute;
    padding:10px;
    top: 48px;
    left: 0;
    z-index: 598;
    background: #353535 url(../images/dropdown-list-bg.gif) repeat-x left top;
    border-right: 1px solid #000;
    border-bottom: 1px solid #000;
    border-left: 1px solid #000;

}


ul.nav-sub li {
    list-style:none;
    display:block;
    padding: 0;
    height: 27px;
    float: none;
    width:145px;
    border-bottom: 1px solid #5a5a5a;
    background: none;

}

ul.nav-sub li a {
    list-style:none;
    display:none;
    padding: 6px 5px 6px 5px;
    height: 15px;
    float: none;
    width:145px;
    background: none;
    font: 12px Tahoma, Verdana, Arial, Helvetica, sans-serif;

}

ul.nav-main li:hover ul.nav-sub {     display:none; /* OR display:list-item */ } 

Ответы [ 3 ]

1 голос
/ 23 июня 2011

Вам потребуется использовать Javascscript для IE6.

li:hover - это ваша проблема.IE6 поддерживает только наведение на теги привязки (и, возможно, некоторые элементы формы, я не помню сейчас, но определенно не <li> s)

1 голос
/ 23 июня 2011

Если ваш контент уже связан с тегами привязки, вы можете попробовать изменить свой CSS, чтобы прикрепить свойство hover к привязкам вместо li. Это, вероятно, все еще будет проблематичным однако.

Если это не работает, попробуйте добавить display: inline-block в теги привязки. В противном случае вам придется взломать его с помощью JavaScript.

<li><a>content</a></li>

ul.nav-main li a:hover > ul {
    visibility: visible;

}


ul.nav-main li a.hover,
ul.nav-main li a:hover {
    position: relative;
    z-index: 599;
    cursor: pointer;
    background: url(../images/dropdown-bg-hover.gif) repeat-x left top;

}

Нечто подобное. Свойство hover для чего-либо кроме тегов привязки проблематично в ранних версиях IE. Вы также можете попробовать что-то вроде этого:

http://www.danvega.org/blog/index.cfm/2008/1/1/CSS-hover-selector

0 голосов
/ 23 июня 2011

Учитывая, что вы уже используете Что бы то ни было: hover ..

Без реального тестирования в IE6, я вижу одну проблему:

ul.nav-main li:hover > ul {
    visibility: visible;
}

Используется > (прямой дочерний селектор ), который не реализован в IE6 .

Попробуйте заменить этот селектор на ul.nav-main li:hover ul или ul.nav-main li:hover .nav-sub.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...