Ik heb een css menu gebouwd, maar die werkt niet in IE6.
Ik heb veel gelezen dat dit niet werkt, maar een passende oplossing heb ik niet kunnen vinden.. Is er iemand die mij kan vertellen hoe ik het IE6 probleem voor mijn menu kan oplossen?

HTML

<body>
<div id="menucontainer">
<div id="menu">
  <p>&nbsp;</p>
  <ul>
    <li id="li1">
      <ul>
          <li id="li1-2"><a>Business</a></li>
      </ul>
    </li>
    	
    <li id="li2">
    	<ul>
          <li id="li2-2"><a>Reflexologie</a></li>
      </ul>
    </li>
    
    <li id="li3">
    	<ul>
          <li id="li3-2"><a>Lypossage</a></li>
      </ul>
    </li>
    
     <li id="li4">
    	<ul>
          <li id="li4-2"><a>Workshops</a></li>
      </ul>
    </li>
  </ul>
</div>
</div>
</body>


CSS



#menucontainer	{
	position:absolute;
	width:350px;
	left:50%;
	margin-left:-175px;
	float:left;
}



#menu a	{
	display:block;
	color:#FFFFFF;
	font-weight:600px;
	text-align:center;
}

#menu ul li {
	display:block;
	position:relative;
	list-style:none;
	margin:3px;
	padding:0px;
	float:left;
	height:15px;
	
}


#menu ul ul	{
	display:none;
}

#menu li:hover ul	{
	display:block;
	position:relative;
	left:0px;
	top:-23px;
	height:auto;
	margin:0px;
	padding:0px;
	left:39px;
}



#li1	{
	background-color:#336666;
	width:60px;
}
		
		#li1-2	{
			background-color:#336666;
			position:absolute;
			left:-42px;
			width:257px;
			
		}





#li2	{
	background-color:#FFcc66;
	width:60px;
}

		#li2-2	{
			background-color:#FFcc66;
			left:-109px;
			width:257px;
		}





#li3	{
	background-color:#999933;
	width:60px;
}

	#li3-2	{
		background-color:#999933;
		width:257px;
		left:-174px;
	}





#li4	{
	background-color:#3399cc;
	width:60px;
}
	#li4-2	{
		background-color:#3399cc;
		width:257px;
		left:-240px;
	}
	
	
<!--[if gt IE 5.0]><![if lt IE 7]>
<style type="text/css">
/* that IE 5+ conditional comment makes this only visible in IE 5+ */
#menu li {  /* the behaviour to mimic the li:hover rules in IE 5+ */
  behavior: url( IEmen.htc );
}
#menu ul ul {  /* copy of above declaration without the > selector, except left position is wrong */
  display: none; position: absolute; top: 2px; left: 78px;
}
</style>
<![endif]><![endif]-->
Ik gebruik jQuery
Voeg deze regel toe
#menu li.hover ul
aan het volgende blokje

#menu li:hover ul,
#menu li.hover ul    {
    display:block;
    position:relative;
    left:0px;
    top:-23px;
    height:auto;
    margin:0px;
    padding:0px;
    left:39px;
}

Met js doe je het volgende

$(function(){

$("#menu li").hover(
function()
{
  $(this).addClass("hover");
},
function()
{
  $(this).removeClass("hover);
});

});

Jerry schreef op 04.02.2009 20:04
Ik heb een css menu gebouwd, maar die werkt niet in IE6.
Ik heb veel gelezen dat dit niet werkt, maar een passende oplossing heb ik niet kunnen vinden.. Is er iemand die mij kan vertellen hoe ik het IE6 probleem voor mijn menu kan oplossen?

Bijna niemand gebruikt IE6 waarom zou je dan je site daar op laten werken...
Er is nog een behoorlijk percentage dat ie6 gebruikt. Dus wil je een goede site bouwen, dan dien je nog zeker rekening te houden met ie6
phpbram schreef op 04.02.2009 20:59
Bijna niemand gebruikt IE6 waarom zou je dan je site daar op laten werken...

Beetje onzinnige opmerking lijkt mij.
Ontzettend bedankt Niek!

Ik ga het gelijk uitproberen!
<!--[if gt IE 5.0]><![if lt IE 7]>
<style type="text/css">
/* that IE 5+ conditional comment makes this only visible in IE 5+ */
#menu li { /* the behaviour to mimic the li:hover rules in IE 5+ */
behavior: url( IEmen.htc );
}
#menu ul ul { /* copy of above declaration without the > selector, except left position is wrong */
display: none; position: absolute; top: 2px; left: 78px;
}
</style>
<![endif]><![endif]-->

Wat ga je daar eigenlijk mee doen?
Tja, dat was 1 van de oplossing die zou moeten werken....
Maar dat werkte helaas niet ;-)
Dus dat kon eigenlijk weer weg...!
Dat heb je ook niet nodig.
Je kunt je menu veel simpeler opbouwen. Dit kun je zo met css opmaken dat het in elke browser klopt, zonder die conditional comments.
Alleen voor ie6 heb je dus dat stukje javascript nodig.

<ul id="menu">
  <li><a href="#" title="Item 1">Item 1</a></li>
  <li><a href="#" title="Item 2">Item 2</a>
    <ul>
      <li><a href="#" title="Subitem 1">Subitem 1</a></li>
      <li><a href="#" title="Subitem 2">Subitem 2</a></li>
    </ul>
  </li>
  <li><a href="#" title="Item 3">Item 3</a></li>
</ul>
kijk eens naar het menu van sceneone.nl mischien dat daar wat in staat. ik heb dat ook geprobeerd, maar weet niet of dat in oudere browsers niet werkt


Bramboos schreef op 04.02.2009 20:59
Bijna niemand gebruikt IE6 waarom zou je dan je site daar op laten werken...
Ach... bijna 1 op de 5 gebruikers kan je best verwaarlozen ja...

[sip-kijkende-nee-schud-emotiocon]

Bron

Reageren