J'ai récemment créé un site Web. J'ai toujours pensé que bootstrap était très bon. Cette fois, j'ai utilisé bootstrap3. Il n'y a aucun problème dans Chrome, Firefox, Safari, Opera, le navigateur 360 (mode vitesse), le navigateur Sogou et d'autres navigateurs. Cependant, j'ai découvert que les styles ne pouvaient pas être affichés sous IE8 et IE11, puis j'ai recherché divers Baidu et j'ai finalement résolu le problème à l'aide du message d'un internaute. La solution est résumée comme suit :
.Vous devez d'abord vous assurer qu'il y a une déclaration DOCTYPE au début de votre page HTML. DOCTYPE indique au navigateur quelle spécification HTML ou XHTML utiliser pour analyser les documents HTML, affectant spécifiquement :
Règles de contraintes pour le marquage des attributs et propriétés
Cela a un impact sur le mode de rendu du navigateur. Différents modes de rendu affecteront l'analyse du code CSS et même des scripts JavaScript par le navigateur
.
DOCTYPE est très critique. La meilleure pratique actuelle consiste à saisir la première ligne du document HTML :
.
<!DOCTYPE html>
Le message du maître résume plusieurs raisons de rechercher bootstrap. Tout d'abord, Bootstrap3 a d'abord été développé avec le principe des appareils mobiles, les raisons peuvent donc être les suivantes :
1. L'adresse distante n'est pas appelée correctement
Autrement dit, tant qu'il s'agit d'IE9 ou d'une version antérieure, deux js spéciaux sont appelés
<!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries --> <!--[if lt IE 9]> <script src="http://apps.bdimg.com/libs/html5shiv/3.7/html5shiv.min.js"></script> <script src="http://apps.bdimg.com/libs/respond.js/1.4.2/respond.min.js"></script> <![endif]-->
Mais j'ai testé et découvert qu'il n'est pas possible d'utiliser simplement le fichier js ci-dessus,
2. La méthode d'appel est incorrecte
N'utilisez pas les formulaires file:// ou @import pour référencer des fichiers respons.min.js ou respons.js ou css
3. Marquez le contenu du navigateur (utilisez des balises méta pour ajuster la méthode de rendu du navigateur)
bootstrap ne prend pas en charge le mode de compatibilité IE Afin de permettre au navigateur IE d'exécuter le dernier mode de rendu, les balises suivantes seront ajoutées à la page
.
IE=edge signifie que le dernier noyau d'IE doit être utilisé de force. chrome=1 signifie que si le plug-in du navigateur Google Chrome Frame pour IE6/7/8 et d'autres versions est installé (cela peut faire en sorte que le navigateur de l'utilisateur ait toujours le menu et l'interface d'IE, mais l'utilisateur lors de la navigation sur le Web, le noyau du navigateur Chrome est en fait utilisé), puis le noyau Chrome est utilisé pour le rendu. Pour une explication détaillée de cette balise méta, veuillez vous référer aux excellentes réponses sur StackOverflow. Pour une explication experte de la balise
http://stackoverflow.com/questions/6771258/whats-the-difference-if-meta-http-equiv-x-ua-compatible-content-ie-edge-e
J'ai ajouté une phrase
Alors c'est tout
Le noyau contrôle la balise Meta. Étant donné que les navigateurs grand public actuels sont dual-core, la balise méta est ajoutée pour indiquer au navigateur quel noyau utiliser pour afficher la page
.
4.IE8 ne prend pas en charge plusieurs propriétés du conteneur
5. Problèmes causés par l'ordre dans lequel JS et CSS sont introduits
<link rel="stylesheet" type="text/css" href="bootstrap.min.css" media="screen"/> <script type="text/javascript" src="js/respond.min.js"></script>
6. Il y a des lignes vides avant et après DOCTYPE
Ça ne marche pas s'il y a des espaces ici, il faut les supprimer
7. Vous pouvez également modifier manuellement bootstrap.css
Si vous utilisez bootstrap2.1.1, la modification de navbar-inner{ filter:none} peut résoudre le problème. Si vous utilisez la version 3.0, ce code n'est plus disponible. Pour plus de détails, veuillez consulter le lien
.
http://stackoverflow.com/questions/12460190/bootstrap-navbar-does-not-show-in-ie8
8. Utiliser le mode bizarreries (mode de compatibilité)
">
J'ai testé ça et ça ne marche pas
Le jquery cité dans cet article est 1.11.1 et a réussi le test. Première citation jquery
.
<script type="text/javascript" src="http://code.jquery.com/jquery-1.11.1.min.js"></script>
Puis introduisez
L'adresse de téléchargement du fichier jquery.placeholder.js
https://github.com/mathiasbynens/jquery-placeholder
Ajoutez ensuite le code au fichier
<script type="text/javascript"> $(function () { // Invoke the plugin $('input, textarea').placeholder(); }); </script>
Ce qui précède IE6, 7, 8, 9, 10, 11, chrome, firefox, safari, opera, navigateur 360 (mode speed), test du navigateur Sogou réussi, seul IE5.5 ne semble pas faisable, bref le problème est résolu À ce stade, le maléfique IE6 - appelez-le simplement sauce soja