milov.nl

Interaction design • webdevelopment • web art • photography

milov.nl : forum : coding : 'IE bug: Meerdere ul met geneste ul's en css hovers'

IE bug: Meerdere ul met geneste ul's en css hovers Ellen, 060419 23:29
Hoi,

Op http://bibbly-o-tek.com/gigography/ heb ik een lijst gemaakt, bestaande uit meerdere UL's onder elkaar. In sommige LI's staat een geneste UL die werkt met een css-hover. Voor IE heb ik een javascript toegevoegd (niet netjes gedaan overigens, maar moet maar even).

Probleem is dat IE de z-index niet goed rendert, zelfs niet als ik op de hoofd UL's elk een aparte, steeds lager wordende z-index neerzet.

Vraag: is dit teveel gevraagd van css? Zoniet, wie heeft een goede oplossing? Andere oplossing is natuurlijk een tabel (voor de inhoud nog niet eens zo gek) en javascript hovers. Maar ik vind de houdige html best wel prettig en semantisch correct...

Voor menu's heb ik deze code vaker gebruikt, maar nooit eerder meerdere 'menu's' onder elkaar gezet.
86.83.206.79
Re: IE bug: Meerdere ul met geneste ul's en css hovers Calm_Pear, 060425 09:45
Ik wil best wel even meekijken voor je maar ik merk dat ik je hele pagina plus styles uit elkaar zit te pluizen... kan je svp een klein stukje code plus stylesheet eruit nemen en hier posten? kost mij (en anderen) minder gedoe... ;-)
h3203.upc-h.chello.nl
Re: IE bug: Meerdere ul met geneste ul's en css hovers Calm_Pear, 060425 10:09
Hmm... ik heb het boeltje toch maar ff zelf uit elkaar getrokken... het lijkt erop dat het een Explorer probleempje is, Firefox en Opera doen het netjes... ik heb al even zitten pielen maar krijg het ook niet zo 1, 2, 3 voor elkaar... (en met z-index; het is allemaal position: relative en ik dacht zo uit mijn hoofd dat z-index alleen werkt met position: absolute)
Als ik jou was zou ik het toch in een tabel plaatsen (daar is het de data ook voor)...

(netjes gedaan overigens die site ;)
h3203.upc-h.chello.nl
Re: IE bug: Meerdere ul met geneste ul's en css hovers Ellen, 060425 12:08
Ik moet zelf deze pagina grondig erop nalezen: http://www.aplus.co.yu/css/z-pos/index2.php (Effect of z-index value to RP and AP blocks)

Misschien kom ik dan uit, wel een lastig probleem, begin ik te merken.

Nog de html code (meedere ul's staan dus onder elkaar) en de relevante css (let maar even niet op vies javascript):


<ul class="gigography">
<li>mo april 24</li>
<li>UK</li>
<li>London</li>
<li class="wide down" onmouseover="this.className += ' over';" onmouseout="this.className = this.className.replace(' over', '');">Luminaire
<ul>
<li>Double G ...</li>
</ul>
</li>
<li class="down narrow" onmouseover="this.className += ' over';" onmouseout="this.className = this.className.replace(' over', '');">setlist

<ul>
<li>tba</li>
</ul>
</li>
<li class="down narrow" onmouseover="this.className += ' over';" onmouseout="this.className = this.className.replace(' over', '');">lineup
<ul>
<li>Double G &amp; the Traitorous 3</li>
<li>De Rosa</li>
<li>James Morrison</li>
</ul>
</li>

<li>&nbsp;</li>
<li>&nbsp;</li>
</ul>
 




ul.gigography
{
position: relative;
clear: both;
margin: 0;
padding: 0;
}

ul.gigography li
{
float: left;
position: relative;
...
}

ul.gigography li ul
{
display: none;
position: absolute;
z-index: 10;
margin: 0;
left: 45px;
top: 7px;
...
}

ul.gigography li:hover ul,
ul.gigography li.over ul
{
display: block;
position: absolute;
}

ul.gigography li ul li
{
float: none;
position: relative;
z-index: 20;
...
}

 
netnationeurope.demon.nl
Re: IE bug: Meerdere ul met geneste ul's en css hovers Ellen, 060425 17:32
Mijn god, dit is bijna niet te doen.. als ik alle elementen een aflopende z-index geef, gaat het goed. ook in de css een line-height: 1; gedefinieerd, die niets zichtbaars doet.

Voorbeeld van eén rij:

<ul class="gigography" style="z-index:1000;">
<li style="z-index:999;">fr june 2</li>
<li style="z-index:998;">UK</li>

<li style="z-index:997;">Hay-on-Wye</li>
<li class="wide" style="z-index:996;">Hay Festival</li>
<li class="down narrow" onmouseover="this.className += ' over';" onmouseout="this.className = this.className.replace(' over', '');" style="z-index:995;">setlist
<ul>
<li>Double G return with more honey-vocalled, quirky pop, supported by Glasgow&#8217;s De Rosa whose killer tunes, boundless energy and prickly pop a highly addictive and thoroughly invigorating listen. Expect explosive energy punctuated by moments of intimate beauty. First on is newcomer James Morrison.</li>
</ul>
</li>
<li class="down narrow" onmouseover="this.className += ' over';" onmouseout="this.className = this.className.replace(' over', '');" style="z-index:993;">lineup
<ul>
<li>Double G &amp; the Traitorous 3</li>
<li>De Rosa</li>
<li>James Morrison</li>
</ul>
</li>
<li style="z-index:992;">&nbsp;</li>
<li style="z-index:991;">&nbsp;</li>
</ul>

*zucht*
netnationeurope.demon.nl
Re: IE bug: Meerdere ul met geneste ul's en css hovers Calm_Pear, 060425 18:13
jaj... wat een gedoe... toch maar tabellen dan ;)
h3203.upc-h.chello.nl
Re: IE bug: Meerdere ul met geneste ul's en css hovers Ellen, 060425 18:29
Ik geef nog niet op! Misschien kan ik een javascriptje schrijven die de hele lijst afloopt en een z-index toewijst. Dat zou niet al te moeilijk moeten zijn, als ik de hele bups in een id zet en dan de DOM aflopen...
ip5653ce4f.direct-adsl.nl
Re: IE bug: Meerdere ul met geneste ul's en css hovers Calm_Pear, 060425 18:31
aha... ja, dat kan je doen. laat maar horen als je vastloopt!
h3203.upc-h.chello.nl
Re: IE bug: Meerdere ul met geneste ul's en css hovers Ellen, 060425 21:34
Snel deze functie geschreven en getest op http://lfs.nl/gigography.html. De onclick is alleen maar om te testen natuurlijk! Moet hem morgen eerst nog even testen op werk (heb thuis geen Explorer op pc - toch maar sparen voor een intel mac met Bootcamp!) Maar alle ul's en li'tjes krijgen nu een steeds lager wordende z-index... is toch al wat.


function addZIndex(){

if(!document.getElementById) return false;
if(!document.getElementById('gigography')) return false;

var gig = document.getElementById('gigography').childNodes;
var z = 1000;
//alert(gig.length);
for(var i = 0; i< gig.length; i++){

if(gig[i].nodeName.toLowerCase() == 'ul') {
gig[i].style.zIndex = z;
gig[i].onclick = function(){alert(this.style.zIndex);}
z--;

var gigsub = gig[i].childNodes;
for(var j = 0; j < gigsub.length; j++){

if(gigsub[j].nodeName.toLowerCase() == 'li') {
gigsub[j].style.zIndex = z;
gigsub[j].onclick = function(){alert(this.style.zIndex);}
z--;
}
}

}

}
}

 
ip5653ce4f.direct-adsl.nl
Re: IE bug: Meerdere ul met geneste ul's en css hovers Ellen, 060426 09:01
Wow, dat lijkt dus zomaar te werken in IE6!

Wat een krankzinnige script om iets te doen, waarvan je denkt dat dat al automatisch gebeurt.
netnationeurope.demon.nl
Re: IE bug: Meerdere ul met geneste ul's en css hovers Calm_Pear, 060426 09:17
heh... lol.
Werkt inderdaad prima! :-)
h3203.upc-h.chello.nl
Pages: 1