Pregunta

Sé que position: fixed; no era compatible con IE hasta IE 7, y solo funciona en IE 7 si tiene un STRICT DOCTYPE .

Mi pregunta es: "¿Cómo puedo hacer que funcione con IE 7 con DOCUMENTO DE TRANSICIÓN ? "

No sugiera cambiar un DOCTYPE , ya que esto no responde a mi pregunta, gracias.

¿Fue útil?

Solución

No necesita un DOCTYPE estricto para el soporte fijo . Solo necesita un DOCTYPE que active Modo de estándares (o ‘casi estándares’). Ese puede ser un doctype de transición 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 se incluya el ID del sistema (el URI al final).

Si sus páginas realmente están confiando en el Modo Quirks (¡uf!), lo siento pero no puede usar fixed y tendrá que recurrir a hacks de JavaScript (pero entonces podría necesitarlos para IE6 de todos modos).

Otros consejos

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

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

No funciona con la falta de la parte superior o izquierda, debe establecerlas explícitamente en cero (o el valor deseado) para que funcione en todas las versiones de IE ... No hace falta decir que IE es una mierda.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top