2011-12-27 11 views
5

El menú funciona en todos los principales navegadores pero se ve diferente en IE7. Ver capturas de pantalla a continuación.
Ver demostración en http://jsfiddle.net/FQLdm/6/Menú CSS Emisión IE7

Al pasar el mouse sobre el enlace de inicio, verá un submenú. En IE7, tanto el botón del menú como el submenú se presionan hacia arriba.

Esto sucedió cuando reemplazó esta

.menu1 ul.menu li{ 
    position: relative; 
    list-style-type: none; 
    display:block; 
    float:left; 
} 

con este (necesito utilizar esta forma inline-block para centrar los elementos de la lista)

.menu1 ul.menu li{ 
    position: relative; 
    list-style-type: none; 
    display:inline; 
    display:inline-block; 
    *display:inline; /*IE7*/ 
    *zoom:1; /*IE7*/ 
} 

En Chrome se ve bien In chrome it works fine

En IE7 parece diferente. Observe cómo se levanta el botón de inicio. debería verse como la captura de pantalla de Chrome anterior.

In IE7 it looks different

+0

Es muy probable que tenga algún tipo de problema de margen. ¿Tiene un script reset css? No puedo estar 100% seguro, pero parece que el submenú está "empujando hacia arriba" el elemento del menú principal, que como he dicho antes es muy probable que tenga algún tipo de problema de margen. – Matt

+0

@matt Ya tengo un restablecimiento de CSS. no es el problema. Esto solo sucedió cuando usé 'inline-block' en lugar de' block'. Lea más arriba – Pinkie

+0

ohhh me extrañé por completo: p, es porque IE7 realmente no es compatible con Inline-Block. Solo es de IE8 +. Tal vez usar float: left with a margin-left? – Matt

Respuesta

3

Escribe vertical-align:middle en tu li. De esta manera:

.menu1 ul.menu li{ 
    vertical-align:middle; 
    position: relative; 
    list-style-type: none; 
    display:inline; 
    display:inline-block; 
    *display:inline; /*IE7*/ 
    *zoom:1; /*IE7*/ 

} 
+0

Eso es perfecto. vertical-align fue de hecho el problema. funciona. Gracias – Pinkie

0

algo como esto

puso en archivo html antaño en la cabeza

<!--[if lte IE 7]> 
    <style> 
    .menu1 ul li ul { 
     position:absolute; 
     top: 5px or 10px; 
    } 
    .menu1 { 
     position: relative; 
    } 
    </style>   
<![endif]--> 
+0

Esto no funciona. Deberías probarlo en jsfiddle. – Pinkie

+0

http://jsfiddle.net/amkrtchyan/qzNKd/ en mi ie7 funciona bien –

+0

Sí, lo noté. No lo intentes en jsfiddle. Parecen ejecutar esto en un navegador estándar internamente. solo copia y pega el css y html localmente y pruébalo – Pinkie

1

enter image description here

Ejemplo funciona bien en Internet Explorer 7 en mi PC.

+0

Puede ser un comentario en lugar de una respuesta :) – sandeep

+0

sí, es un comentario –

+0

así que escríbalo como un comentario en el cuadro de comentarios en lugar de las respuestas – sandeep

0

Consulte esta respuesta: IE6 extra padding on bottom

Además, no establecer display:block a veces puede causar problemas de relleno, como lo fue para mí una vez. Intente agregar eso al CSS para ver si algo mejora.