Comment obtenir des CSS «fixes: fixes» pour fonctionner dans IE 7+ avec un doctype TRANSITIONAL?
-
06-07-2019 - |
Question
Je sais que position: fixed;
n'a pas été pris en charge par IE avant IE 7 et ne fonctionne dans IE 7 que si vous avez un STRICT DOCTYPE
.
Ma question est la suivante: "Comment le faire fonctionner avec IE 7 avec DOCTYPE TRANSITIONNEL
?"
Ne suggérez pas de changer un DOCTYPE
, car cela ne répond pas à ma question, merci.
La solution
Vous n'avez pas besoin d'un DOCTYPE strict pour la prise en charge de fixed
. Vous avez uniquement besoin d’un DOCTYPE qui déclenche le Mode Standards (ou # # 8216; presque Standard & # 8217 ;). Cela peut être un doctype de transition tel que:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
ou XHTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
tant que l'ID système (l'URI à la fin) est inclus.
Si vos pages s'appuient réellement sur le mode Quirks (ouais!), désolé, vous ne pouvez pas utiliser fixed
et devrez recourir à des hacks JavaScript (mais alors vous pourriez avoir besoin de ceux pour IE6 de toute façon).
Autres conseils
La position fixe ne fonctionne pas pour moi, même avec les types de document transitoire / strict. Cependant, j'utilise IE9 en mode de compatibilité et cela est supposé rendre en utilisant les bibliothèques d'exécution IE8. Pour résoudre ce problème, je devais ajouter le CSS suivant à element.
.elementToBeFixed {
position: fixed;
top: 0;
left: 0;
}
Cela ne fonctionne pas si Top ou Left est manquant, vous devez les définir explicitement à zéro (ou à la valeur souhaitée) pour que cela fonctionne dans toutes les versions d'IE .... Inutile de dire que IE est nul.