在doctype之后我在HTML页面上看到的所有这些评论是什么?

时间:2011-10-11 13:51:14

标签: html5 conditional doctype

任何人都可以告诉我这是什么:

<!DOCTYPE html>
<!--[if lt IE 7]> <html class="no-js ie ie6" lang="en"> <![endif]-->
<!--[if IE 7]>    <html class="no-js ie ie7" lang="en"> <![endif]-->
<!--[if IE 8]>    <html class="no-js ie ie8" lang="en"> <![endif]-->
<!--[if gt IE 8]><!-->  <html class="no-js iframe" lang="en"> <!--<![endif]-->

我在很多页面上都看过这个,但是在某些页面上没有JavaScript链接来支持文档声明。

5 个答案:

答案 0 :(得分:3)

似乎是来自html5 Boilerplate的“浏览器检测”标准格式的片段,请参阅http://html5boilerplate.com/

您突出显示的部分只允许解析<html>标记的一个部分,具体取决于网站访问者使用的浏览器的风格。

在作者网站上阅读有关此方法的更多信息&gt; http://paulirish.com/2008/conditional-stylesheets-vs-css-hacks-answer-neither/

答案 1 :(得分:2)

 <!--[if lt IE 7]> 

这意味着<!--[if lt IE 7]>...<![endif]-->内的代码只能在IE 7浏览器中使用 和仅在IE8浏览器中的<!--[if lt IE 8]>...<![endif]-->

此提示仅适用于IE浏览器。例如,您可以编写<!--[if lt IE 7]><style .../><![endif]-->,此样式仅适用于IE 7.比下一行您可以编写<!--[if lt IE 8]><style .../><![endif]-->,此样式仅适用于IE8

答案 2 :(得分:2)

这是HTML5网页的文档类型

<!DOCTYPE html>

以下行表示注释标签之间的代码是IE特定的(第一个用于IE7以下的浏览器(IE6,IE5等),第二个用于IE7,第三个用于IE8,最后一个用于IE8 for&gt; = IE9)

<!--[if lt IE 7]> <html class="no-js ie ie6" lang="en"> <![endif]-->
<!--[if IE 7]>    <html class="no-js ie ie7" lang="en"> <![endif]-->
<!--[if IE 8]>    <html class="no-js ie ie8" lang="en"> <![endif]-->
<!--[if gt IE 8]><!-->  <html class="no-js iframe" lang="en"> <!--<![endif]-->

答案 3 :(得分:1)

这些仅检查与旧浏览器的兼容性

<!DOCTYPE html>通常是指HTML5,IE9以下的浏览器根本不支持HTML5,因此需要进行调整。这就是为什么有HTML if子句检查你是否使用IE和哪个版本。 HTML元素获取该浏览器版本的特殊类,以便CSS可以查看它是否是IE以及哪个版本(例如,用于修复IE6的盒子模型)

可能会通过JavaScript删除no-js类,这样只有在JavaScript打开/关闭时CSS才能访问特定元素

答案 4 :(得分:0)

您应该将此作为您的文档类型:<!DOCTYPE html>

其余与doctype无关,并且是IE特定的。