IE (7,8-tryb komp.) i menu drop-down

Ostatnio natknąłem się na dwa problemy związane z rozwijanym menu na stronie. Z jakiegoś powodu nie działało ono poprawnie pod Internet Explorerem 8 uruchomionym w trybie kompatybilności wstecznej (podobnie rzecz się miała w przypadku IE7). Menu było dość standardowe:

<ul>
<li><a href="adres1">tekst1</a></li>
<li><a href="adres2">tekst2</a>
<div class="sub">blabla</div></li>
</ul>

Po najechaniu myszką na rozwijany element nie było widać podrzędnego diva „sub”. W tym przypadku wystarczyło poprawić css związany z elementem li:

div.sub {
 position: absolute ;
}

li {
/* ... */
position: relative ; /* brakująca linijka */
}

Drugi problem objawił się jak tylko submenu zaczęło się pokazywać. Div wyglądał tak, jakby brakowało w nim tła, elementy umieszczone na stronie poniżej przebijały przez niego i wyłapywały zdarzenia myszki (co powodowało, że menu się chowało). Przyczyną okazało się miejsce umieszczenia menu w kodzie:

<div id="top">
<ul id="menu">...</ul>
</div>
<div id="content">
....
</div>

Przy takiej konfiguracji kompatybilne IE wstawiało menu „pod” #content. Po zmianie kodu na:

<div id="top">
</div>
<div id="content">
<ul id="menu">...</ul>
....
</div>

wszystko wróciło do normy.

Być może jest jakieś lepsze rozwiązanie, ale szukanie go przy pomocy narzędzi dewelopera dołączonych do IE nie należy do najprzyjemniejszych.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

*