Выпадающая панель навигации, скрывающаяся за контентом в IE7

У меня есть раскрывающаяся панель навигации, и когда вы наводите курсор на элементы, а параметры раскрывающегося списка появляются в IE7, они скрываются за ползунком.

Я пробовал z-index, но безуспешно. Кроме того, есть некоторый интервал под кнопкой меню и первой опцией в IE7. Я еще не пытался это исправить, моя главная забота - заставить его отображаться над содержимым слайдера.

Вы можете увидеть это здесь: http://www.condorstudios.com/stuff/temp/index.php


person Brett    schedule 14.08.2012    source источник
comment
Ссылка на папку - без индекса.   -  person Chris    schedule 14.08.2012
comment
Вы уверены? У меня работает ... index должен быть index.php   -  person Brett    schedule 14.08.2012
comment
Попробуйте воспроизвести свою проблему на jsfiddle.net. У меня нет IE7, поэтому я не могу вам помочь.   -  person Cthulhu    schedule 14.08.2012
comment
@Cthulhu Если у вас IE8, вы можете использовать инструменты разработчика для запуска браузера в движке IE7. Не уверен, что предлагает IE9 в этом отношении. Я посмотрю, смогу ли я что-нибудь придумать на jsfiddle.   -  person Brett    schedule 14.08.2012


Ответы (2)


Добавьте это в свой $(document).ready() обработчик:

var zi = 1000;
$('*').each( function() {
    $(this).css('zIndex', zi);
    zi -= 10;
});

Чтобы убедиться, что это выполняется только в IE7, добавьте этот вне ваших <script> тегов, но в <head>:

<!--[if IE 7]>
<script type="text/javascript">
    $(document).ready(function() {
        var zi = 1000;
        $('*').each( function() {
            $(this).css('zIndex', zi);
             zi -= 10;
        });
    });
</script>
<![endif]-->
person Chris    schedule 14.08.2012
comment
Не могли бы вы привести пример, куда это добавить? Я не большой человек JS. - person Brett; 14.08.2012
comment
@Brett В строке 30-31 вашей индексной страницы (не знаю, какая строка находится в исходном коде PHP) у вас есть: <SCRIPT type=text/javascript> $(document).ready.... Добавьте это сразу после открывающей скобки. - person Chris; 14.08.2012
comment
Просто смотрю; есть ли более чистый способ сделать это, чем это. Теперь, глядя на каждый элемент на моей странице, кажется, что к нему применен встроенный стиль для z-index, а все остальное в моем нижнем колонтитуле заканчивается z-индексами -930 и т. Д. - person Brett; 14.08.2012
comment
@Brett Не из тех, о которых я знаю. Проблема в том, что IE7 по какой-то причине не может распознавать стеки элементов. Кажется, тебе все равно придется взломать. Прости. - person Chris; 14.08.2012
comment
Думаю, я сделаю все возможное, чтобы сохранить этот хак только для IE7, чтобы он не запутал другие браузеры. - person Brett; 14.08.2012
comment
Могу ли я отделить этот код от другого обработчика? Я спрашиваю, потому что тогда я могу назвать это только IE7. Какая была причина, по которой вы сказали поместить это в обработчик? - person Brett; 14.08.2012

Я решил эту же проблему недавно здесь, так что здесь оба исправления для IE7:

CSS:

/* show menu above content */
#nav li {
    display: block;
    position: relative;
    z-index: 1;         // force IE to recognize stack at this point
}

/* normalize layout, IE7 not makes this automatically */
body,ul,li {
    margin:0;
    padding:0;
}
person Stano    schedule 14.08.2012
comment
Да, я видел ваш пост до того, как опубликовал свой, но не смог заставить его работать. Я также уже использую reset.css и даже пробовал использовать свойство margin / padding непосредственно в классе li для них, но это не сработало, поэтому не знаю, почему я получаю интервал. IE - это весело :) - person Brett; 14.08.2012