Maison  >  Article  >  interface Web  >  Mode d'analyse du navigateur : explication détaillée de l'utilisation des problèmes de déclaration DOCTYPE

Mode d'analyse du navigateur : explication détaillée de l'utilisation des problèmes de déclaration DOCTYPE

伊谢尔伦
伊谢尔伦original
2017-06-16 11:05:051530parcourir
网页制作cnn6文章简介:IE8有4种模式:IE5.5怪异模式、IE7标准模式、IE8几乎标准模式、IE8标准模式。

Déclenchez le mode standard

1. Ajoutez une instruction DOCTYPE, telle que :

< !DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
< !DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
< !DOCTYPE html>

2.

Déclencher le mode bizarre

1. Aucune déclaration de doctype, définir l'ancienne version HTML (sous HTML4, telle que 3.2)
Ajouter une déclaration XML, peut être déclenché sous ie6.
ffeb40d5bcdc5458d8776a6742da47e3
6696bd7d107ee1b4fe3f02d4fff4771a
3. Ajoutez du HTML entre la déclaration XML et le DOCTYPE de XHTML. Commentaire, peut être déclenché sous ie7ffeb40d5bcdc5458d8776a6742da47e3
256c9cdb655db755c5fceb2970a46c3d
f3efe976e591a79b2754cc6e1cdbcbdd
5. 1ce21ff05b6519698cd23502fbc95a8b Placer devant 4494de289c1ff33bf7c3b45169e111b2 ou 3f1c4e4b6b16bbbd69b2ee476dc4f83a ".

Remarque 1 : Si X-UA-Compatible est écrit sous la balise 2cdf5bf648cf2f33323966d7f58a7f3f ou 3f1c4e4b6b16bbbd69b2ee476dc4f83a, le paramètre X-UA-Compatible sera invalide.
Remarque 2 : Si l'en-tête HTTP de la page et du serveur est défini sur X-UA-Compatible, utilisez le paramètre X-UA-Compatible de la page. Si la page n'a pas de compatibilité X-UA, la valeur définie par l'en-tête HTTP sera utilisée.
Remarque 3 : La signification et le déclenchement du mode Presque standard sont expliqués dans « Mode Presque standard » ci-dessous.
Remarque 4 : Pour la valeur de IE=xx, c'est-à-dire essaiera de convertir xx à la valeur la plus proche. Par exemple : IE=7,789 -> IE=7 ; entre 5 et 6 ->IE=5 supérieur ou égal à 8 ->IE=8 ;
Remarque 5 : IE=4, IE=3, IE=0.1, IE=-7, qui sont inférieurs à 5, incluent IE=IE8, IE=IE7, IE=IE6, IE=a, IE=b, IE = bcd, comme sans X-UA-Compatible. On peut comprendre que X-UA-Compatible est défini sur une valeur non valide, alors passez ici.

2. Définir un en-tête HTTP compatible X-UA

IE=5, IE=6 : Déclenchez le mode bizarre d'IE5 (que la page ait DOCTYPE ou non )
IE=7(7e8e10c5449bb504b1d19481ff791a503=9) - avec doctype - Utilisez le mode presque standards (ou standards IE9). Comme IE8, comptez sur doctype pour sélectionner le mode IE9 presque standard, ou le mode standard IE9 sans standard doctype-IE9 ;
IE=(value<0), IE=IE8, IE=IE7, IE=IE6, IE=a, IE=b, IE=bcd, IE=xxx ne sont pas fiables comme ça, ou mettent X- UA-Compatible meta est écrit après la balise 2cdf5bf648cf2f33323966d7f58a7f3f ou 3f1c4e4b6b16bbbd69b2ee476dc4f83a Ces situations sont les mêmes que sans X-UA-Compatible : déterminez d'abord la "vue de compatibilité", et il existe un paramètre "vue de compatibilité" (doctype -IE7). standard, pas de mode doctype-bizarre) ; "Affichage de compatibilité" n'est pas défini, avec le doctype suivi de DOCTYPE, pas de mode doctype-bizarre.

Manière spéciale d'écrire compatible X-UA

msdn上面提到了X-UA-Compatible值设置成"IE=9; IE=8; IE=5"这样的,意思就是优先最前面的IE9,没IE9就用IE8,没IE8就IE5,并且并不推荐在生产环境下使用。
触发Google Chrome Frame:3435c5972dd88b33da7181f5cc86ec33
可以和IE的X-UA-Compatible混搭:比如:edeeb43dc591905d5529bb5165ba0baa。这样写的好处:可以让ie在最好的渲染方式下渲染页面。
"IE=edge,chrome=1",可以写成"chrome=1,IE=edge"、"chrome=1; IE=edge"。

几乎标准模式(Almost Standards Mode)

Firefox 1+、Safari、Chrome、Opera(从7.5开始)和IE8/IE9增加了一个"几乎标准模式",它实现传统的表格单元格的垂直尺寸(没有严格的遵照CSS2规范)。
意思就是,比如下面的代码:

<table style="border:1px solid blue;" cellspacing="0">
< tr><td><img style="border:1px solid red" width="364" height="126" src="http://www.google.com/images/logos/ps_logo2.png"/></td></tr>
< /table>

比如在IE7标准模式下,图片底部和table是没空白的;"几乎标准模式"下,图片底部和table也是没空白的;而较新的浏览器在标准模式下图片底部和table会有个空白。
@see:https://developer.mozilla.org/en/Images,_Tables,_and_Mysterious_Gaps

下面的DOCTYPE都可触发IE8标准模式:


< !DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
< !DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
< !DOCTYPE html>

触发IE8几乎标准模式:
c22098bfd3f62d7436149aaab013de1a
3c6ee2e4e556c3badc505155aae90f4f
Mac IE5、IE6/7、Opera(8f6e2fe385d7f17760ce5575dcfc3807)。
任何一个XHTML文档的解析错误会导致停止解析,FF/SF/CH/OP会直接报XML解析错误,IE9可以在开发人员工具的console里面看到报错。
MacIE5、IE6/7/8不支持application/xhtml+xml。
发现IE9下使用此模式,doctype是无所谓的,1d33348365c3ec55b420fe6254061305 这句命名空间必须的,没设置命名空间css会以文本解析而失效。
同时XML模式下,X-UA-Compatible的设置将会无效。

总结:

X-UA-Compatible只有IE>=8才识别,所以他们可以用doctype声明、X-UA-Compatible、兼容性视图设置来改变模式。
IE6/7却依靠DOCTYPE来改变标准或怪异模式,类似这些低版本的浏览器下的标准模式,接近与“先进”浏览器下的几乎标准模式,因为它们都没有严格遵循CSS2规范。并且他们同样在标准模式下,各自的渲染还是是有差别的。没差别就不会有css hack的诞生。
IE6-IE9下,怪异模式都在IE5.5下。
不需要写X-UA-Compatible,用css也完全可以搞定各个版本IE的解析不同。

模式、版本不同,不仅仅css解析不同,js的解析也有不同。
了解浏览器解析模式的不同,可以避免我们辛苦写出的标准代码被怪异所残害。
让开发者更注重遵循标准,无论在生产效率还是在协作、沟通上都有好处滴。
现在几乎人人都用标准的doctype来声明文档,所以纠结标准、怪异模式对工作的影响不太大。

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn