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

в IE6 меню отображается как подменю.Я сделал снимки, чтобы показать проблему.Согласно суперпредставлению, все элементы имеют расположение и не могут понять, в чем проблема.был бы признателен за некоторые советы, так как я не настолько опытен в css, поэтому мой пост.Большое спасибо.

Снимки экрана:

http://img36.imageshack.us/i/ie8menugrab.png/

http://img546.imageshack.us/i/ie6menugrab.png/

HTML

<div id="headermenu">


      <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>


  </div>

МЕНЮ HEADER CSS

#headermenu  {

  width: 999px;
  height:51px;
  margin: 0 auto;
  /*background-image: url(../images/headermenu.gif);*/
    background-position: center center;
  background-repeat: no-repeat;
}

МЕНЮ CSS

#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:block;
    height: 51px;
    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: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 {
    visibility: hidden;
    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:block;
    padding: 6px 5px 6px 5px;
    height: 15px;
    float: none;
    width:145px;
    background: none;
    font: 12px Tahoma, Verdana, Arial, Helvetica, sans-serif;   
}

Ответы [ 3 ]

2 голосов
/ 20 июня 2011

Ваш код включает это:

ul.nav-main li:hover > ul { ... }

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

Кроме того, IE6 поддерживает только :hover для <a> элементов, поэтому li:hover не будет работать в IE6.

К счастью, для этого есть обходной путь, в виде файла HTC под названием Что угодно: Hover .

Чтобы использовать все, что угодно: Наведите курсор, скачайте файл htc со страницы, указанной выше, а затем добавьте в свой CSS следующее:

body {
    behavior:url("scripts/csshover.htc");
}

(желательно в верхней части таблицы стилей для удобства чтения, но не должно иметь значения, в каком файле CSS он находится)

Надеюсь, это поможет.

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

Измените правило ul.nav-main li a:

  • установите display на inline-block
  • установите height на 100%.

Таким образом, макет будет правильным, но в IE6 меню будет слишком большим (ошибка двойного заполнения).Я не знаю, как это влияет на выпадающий список, так как я проверял его только в SuperPreview.

И Лекс прав, используйте display:none/block вместо visibility:hidden/visible для подменю.

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

Попробуйте использовать еще одно правило:

ul.nav-sub{
    display:none;
}

ul.nav-main li:hover ul.nav-sub {
    display:block; /* OR display:list-item */
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...