Eso es lo que decía hace un tiempo en Firefox, IE6, IE7, todos distintos y eso es lo que sigo diciendo ahora. Y no sólo se trata de propiedades o instrucciones que algunos entienden y otros no sino que, aún siendo etiquetas comunes, cada uno hace con ellas lo que quiere.
Los comentarios de Jabba y su odisea en busca de un menú que funcione normalmente, son uno de los ejemplos más claros de este problema.
Y es que, lo que quiere hacer, tener un menú que se expanda con submenues, es algo normal, simple, bastaría tener listas anidadas pero claro, las etiquetas de las listas son de las más retorcidas; personalmente, recién hace poco logré que las listas de la sidebar se vieran correctamente en Internet Explorer, tardé casi un año pero ... ¿quién tiene apuro?
No tengo reglas o consejos que aportar, sólo tres ejemplos de menúes desplegables que funcionan tanto en Firefox como en Internet Explorer.
Las dos primera son ejemplos realizados por CSSplay y, si bien sólo emplean propiedades CSS, cualquiera que los analice, verá que el código HTML está plagado de comentarios condicionales para que ciertas cosas se vean en IE6 y otras en IE7.
Professional drop-down using images ha sido verificado en IE6, IE7, Firefox, Opera, Netscape, Mozilla y Safari.
Descargar el ZIP
que contiene un ejemplo, las imágenes y la página de estilo necesaria.

Descargar el ZIP
que contiene un ejemplo, las imágenes y la página de estilo necesaria.Los archivos originales son cinco: csshorizontalmenu.js, csshorizontalmenu.css, menubg.gif, menubgover.gif y menuarrow.gif.
Sin embargo, para el ejemplo que aquí muestro los he modificado sustancialmente para adaptarlos a un tipo de barra de menúes como la que utiliza el blog y que ya he explicado aquí.
<script src="direccionURL_MENUkithorizontal.js" type="text/javascript"></script> <link rel="stylesheet" type="text/css" href="direccionURL_MENUkithorizontal.css"/>
/* propiedades de la barra horizontal de menues */ .horizontalcssmenu ul { float: left; width: 100%; margin: 0; padding: 0; list-style-type: none; /* esta es la imagen de fondo, puede utilizarse cualquiera o ninguna */ background: color url(URL_imagen) center center repeat-x; /* aquí podemos agregar otras propiedades de formato como border */ } /* esta es área de cada una de las entradas del menú horizontal */ .horizontalcssmenu ul li { position: relative; float: left; /* aquí también podemos agregar otras propiedades de formato*/ } /* propiedades de cada enlace del menú horizontal */ .horizontalcssmenu ul li a { float: left; /* propiedades del formato varias (padding, font, color, etc */ } .horizontalcssmenu ul li a:hover { /* esta es la imagen de fondo para lograr el efecto mouseover */ background: color url(URL_imagenHover) center center repeat-x; } /* estas son las propiedades de los submenues */ .horizontalcssmenu ul li ul { visibility: hidden; position: absolute; left: 0; top: 0; z-index: 100; /* establecemos un valor de ancho fijo para que cada entrada esté en una línea*/ width: 150px; /* el valor puede ser cualquiera */ /* otras propiedades de formato*/ } /* esta es área de cada una de las entradas de los submenues */ .horizontalcssmenu ul li ul li {/ width: 100%; /* otras propiedades de formato*/ } /* propiedades de cada enlace del menú horizontal */ .horizontalcssmenu ul li ul li a { /* ancho fijo (menos padding) */ width: 140px; /* en este ejemplo, 150 - 5 - 5 = 140 */ padding: 2px 5px; /* conviene establecer un padding para separar los items */ /* otras propiedades de formato*/ } .horizontalcssmenu ul li ul li a:hover { /* esta es la imagen de fondo para lograr el efecto mouseover */ background: url(menuHover.gif) center center repeat-x; }
<div class="horizontalcssmenu"> <ul id="cssmenu1"> <!-- un item del menú sin expandir --> <li><a href="direccionURL">TEXTO MENÚ</a></li> <!-- un item del menú expandible --> <li> <a href="#" onclick="return false;">TEXTO SUBMENÚ<></a> <ul> <li><a href="direccionURL">ITEM 1</a></li> <li><a href="direccionURL">ITEM 2</a></li> <li><a href="direccionURL">ITEM 3</a></li> </ul> </li> </ul> <br style="clear: left;" /> </div>







Luego, hacemos 





