выпадающее меню не работает в IE - PullRequest
0 голосов
/ 19 мая 2011

Я разработал веб-сайт, и он отлично работает во всех браузерах, кроме IE, я использовал панель навигации шаблонов и вставил ее в качестве таблицы стилей для своих панелей навигации по всему сайту, но когда я просматриваю его в Internet Explorer,Дочерние элементы родителей отображаются в левой части браузера, пока они выходят из окна просмотра.Я попытался поиграться с кодом CSS, но, похоже, ничего не работает, я попытался изменить положение и избавиться от абсолютного положения в кодировке навигационной панели, из-за которого элементы появлялись на странице, но они были повсюду.

CSS:

/* The outermost container of the Menu Bar, an auto width box with no margin or padding */
ul.MenuBarHorizontal
{
    margin: 0;
    padding: 0;
    list-style-type: none;
    cursor: default;
    width: auto;
    color: #ed3694;
    font-family: Arial, Helvetica, sans-serif;
}
/* Set the active Menu Bar with this class, currently setting z-index to accomodate IE rendering bug: http://therealcrisp.xs4all.nl/meuk/IE-zindexbug.html */
ul.MenuBarActive
{
    z-index: 1000;
}
/* Menu item containers, position children relative to this container and are a fixed width */
ul.MenuBarHorizontal li
{
    margin: 0.1em;
    padding: 0;
    list-style-type: none;
    font-size: 100%;
    position: relative;
    text-align: center;
    cursor: pointer;
    width: 8.6em;
    float: right;
    visibility: visible;
}
/* Submenus should appear below their parent (top: 0) with a higher z-index, but they are initially off the left side of the screen (-1000em) */
ul.MenuBarHorizontal ul
{
    margin: 0.1;
    padding: 0;
    list-style-type: none;
    font-size: 100%;
    z-index: 1020;
    cursor: default;
    position: absolute;
    width: 191px;
    left: -1000px;
    height: 111px;
    visibility: visible;
    top: 34px;
    }
/* Submenu that is showing with class designation MenuBarSubmenuVisible, we set left to auto so it comes onto the screen below its parent menu item */
ul.MenuBarHorizontal ul.MenuBarSubmenuVisible
{
    left: -52px;
    font-family: Arial, Helvetica, sans-serif;

}
/* Menu item containers are same fixed width as parent */
ul.MenuBarHorizontal ul li
{
    width: 8.6em;
}
/* Submenus should appear slightly overlapping to the right (95%) and up (-5%) */
ul.MenuBarHorizontal ul ul
{
    position: absolute;
    margin: -5% 0 0 95%;
}
/* Submenu that is showing with class designation MenuBarSubmenuVisible, we set left to 0 so it comes onto the screen */
ul.MenuBarHorizontal ul.MenuBarSubmenuVisible ul.MenuBarSubmenuVisible
{
    left:auto;
    top: 0;
}

Веб-страница для просмотра исходного кода: www.mopowered.co.uk

Если кто-то может помочь, ябыл бы так благодарен.Мне просто нужно, чтобы он работал правильно в IE.

Таня

Ответы [ 2 ]

0 голосов
/ 19 мая 2011

Библиотека Spry Menu js, которую вы используете, имеет много проблем (выполните быстрый поиск в Google).Возможно, вам стоит подумать об использовании чего-то еще.

Но я смог быстро и грязно исправить это, закомментировав / удалив следующие строки в SpryMenuBar.js

        if(Spry.is.ie)
        {
            this.addClassName(items[i], this.isieClass);
            items[i].style.position = "static";
        }

Не знаюдумаю, что это правильное решение, но, похоже, оно работает в вашем случае.

0 голосов
/ 19 мая 2011

почему-то родитель li с классом MenuBarItemIE в ie занимает position:static. Если вы измените его на position:relative, содержимое будет перемещено под элемент li (не совсем так, как, например, ff, но гораздо лучше. Если вы не знаете, в чем проблема, дайте мне знать).

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