2009-10-27 9 views

Respuesta

23

No necesita un DOCTYPE estricto para el soporte fixed. Solo necesita un DOCTYPE que active Standards Mode (o 'casi estándares'). Eso puede ser un tipo de documento de transición tales como:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 

o XHTML:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 

siempre que el ID del sistema (el URI al final) está incluido.

Si las páginas realmente son confiar en el modo no estándar (uf!), Lo siento pero no se puede utilizar fixed y tendrá que recurrir a hacks JavaScript (pero entonces puede que tenga que para IE6 de todos modos).

+1

¿html5 activa el modo 'casi estándares'? '' –

+9

@Jonny: HTML5 '' activa el modo estándar completo. – bobince

10

La posición fija no funciona para mí, incluso con los tipos de documento Transitional/Strict Doc. Sin embargo, estoy usando IE9 en modo de compatibilidad y se supone que debe representarse utilizando las bibliotecas de tiempo de ejecución de IE8. Para solucionar este problema, tuve que agregar el siguiente elemento CSS al elemento.

.elementToBeFixed { 
    position: fixed; 
    top: 0; 
    left: 0; 
} 

No funciona con el superior o izquierda faltando tiene que establecer explícitamente a cero (o su valor deseado) para que funcione en todas las versiones de IE .... Ni que decir tiene IE chupa.

+0

trabajado como encanto! ¡Gracias! – marsalal1014

+0

Solo para tu información: incluso en IE9, el modo de compatibilidad usa el motor de renderizado IE7 en el modo * quirks *. No representa nada como IE8. –

+0

@Chris, me di cuenta de que recientemente, incluso envía el agente de usuario IE7 ... Gracias –

Cuestiones relacionadas