¿Cómo conseguir que CSS "position: fixed" funcione en IE 7+ con doctype TRANSICIONAL?
-
06-07-2019 - |
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.
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.