Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Проблема с position (https://javascript.ru/forum/dom-window/18544-problema-s-position.html)

khusamov 06.07.2011 00:08

Проблема с position
 
Здравствуйте!
Никак не могу найти причину следующей проблемы.

Выпадающее главное меню (просто навести мышку на пункт меню Материалы, например) на этой странице:

http://mebel-gem.ru/shop/wardrobes/wardrobes-raumplus/

отображается под картинками товаров (то есть под элементами у которых position: relative).

Это происходит только в MSIE.

В чем причина такого поведения?

Aetae 06.07.2011 02:40

z-index?

ksa 06.07.2011 09:51

Цитата:

Сообщение от khusamov
В чем причина такого поведения?

Считается что эти элементы "выше" в потоке, потому и перекрываются теми что "ниже"...

Помогает
Цитата:

Сообщение от Aetae
z-index

- перестановка элементов
- изменение значения position

da_ff 06.07.2011 10:33

Это один из редких случаев, когда ie ведет себя "правильнее" других браузеров. Проблема в z-index родителей элементов. Поскольку он у них не указан, то большинство браузеров видимость определяют по z-index накладываемых элементов, игрорируя z-index родителей. IE же полагает, что z-index родителей равен и соответсвенно блок позже располагаемый в потоке оказывается выше предыдущего. Для примера можете задать z-index родителям меню и картинок товаров и увидете, что все браузеры будут вести себя как ie.
Чтобы это исправить надо соответственно указать родителям меню и картинок правильные z-index.

В вашем случае добавьте элементу
div.GeometrymMenu{position:relative; z-index:1}

khusamov 08.07.2011 12:16

da_ff,
Спасибо! Ваше решение работает)))

khusamov 29.06.2012 00:21

Перешел на новую версию jQuery и проблема изменилась. Теперь правило:

div.GeometrymMenu{position:relative; z-index:1}


в MSIE почему-то вообще скрывает меню куда-то.

Deff 29.06.2012 00:25

Цитата:

Сообщение от khusamov
Перешел на новую версию jQuery и проблема изменилась. Теперь правило:

div.GeometrymMenu{position:relative; z-index:1}

почему-то скрывает меню вообще куда-то.

При повторном наведении меню исчезает - при первом - норма
ИЕ7

khusamov 29.06.2012 00:27

Так... похоже это происходит начиная с MSIE 8.
Я сейчас это смотрю в 8-ке.

Deff 29.06.2012 00:28

khusamov,
При повторном наведении в ИЕ7 исчезает всё меню

так шо не ток 8

khusamov 29.06.2012 00:31

сначала бы разобраться чего оно вообще не отображается сразу после загрузки...

khusamov 29.06.2012 00:38

ошибся, оказывается "виноват" jQuery UI. Перешел с 1.8 на 1.8.21 и вот это началось.

Deff 29.06.2012 00:38

khusamov,
А чо без jQuery не проще ли - оно ж без анимации ?

khusamov 29.06.2012 00:44

Цитата:

А чо без jQuery не проще ли - оно ж без анимации ?
в данном случае это безобразие мной давно уже сделано. Не переделывать же полностью.

Deff 29.06.2012 00:48

khusamov,
Есть чисто сss => http://forums.0pk.ru/viewtopic.php?id=4067

khusamov 29.06.2012 00:49

да и собственно если проблема в z-index, то отсутствие jquery не поможет же?

Deff 29.06.2012 00:51

khusamov,

Да не меняю jquery 1.4.1 в ИЕ норма

Deff 29.06.2012 01:18

khusamov,
Попробуйте воткнуть времянку в конец <HEAD>
<style>
.GeometrymMenu {
 z-index:200!important;
}
</style>

Мну поглядит в ИЕ (хотя имхо всё одно - динамического изменения z-index в скрипте быть не должно - это трабл или скрипта или идеи

khusamov 29.06.2012 01:31

воткнул - ничего не изменилось

Deff 29.06.2012 01:46

khusamov,
Еще прикол - при двухкратной смене масштаба - все восстанавливается и работает как надо
так шо z-index - тут не причем - какой то триггер по событию лишний

khusamov 29.06.2012 20:05

Добавил

.GeometrymMenu_MenuBar {
	top: 1px;
}


и меню появилось!!!

Ура!

Правда вот почему оно появилось?..

khusamov 29.06.2012 20:38

опять исчезло...
в общем перетащил

.GeometrymMenu {
	position: relative; 
	z-index: 1;
}


сюда:

.GeometrymMenu_Layout {
	position: relative; 
	z-index: 1;
}


пока работает как нужно


Часовой пояс GMT +3, время: 19:54.