这种IE条件黑客的目的是什么?

时间:2017-05-04 18:19:27

标签: html internet-explorer conditional-comments

你能告诉我IE浏览器会发生什么吗?

<!DOCTYPE html><!--[if lt IE 9]><html class="no-js lt-ie9" lang="en" dir="ltr"><![endif]--><!--[if gt IE 8]><!-->
<html class="no-js" lang="en" dir="ltr">
<!--<![endif]-->
<head>
...

我可以理解非IE浏览器只会解释:

<html class="no-js" lang="en" dir="ltr">

但是大于IE8的条件并没有多大意义:

<!--[if lt IE 9]> ... <!--[if gt IE 8]><!-->
<html class="no-js" lang="en" dir="ltr">
<!--<![endif]-->

这是一个黑客吗?打开和关闭评论的符号不匹配。

1 个答案:

答案 0 :(得分:0)

额外的!--位是为了使其成为有效的HTML评论,以便验证者不会抱怨虚假评论。有关herehere的更多信息。非IE浏览器真正看到的是两个包含[if gt IE 8]><!<![endif]的常规HTML评论。

条件注释允许大于IE8的<html>标记。正如您已正确指出的那样,非IE浏览器也将使用相同的<html>标记 - !--位允许它们这样做。我不会称之为黑客攻击,但是,有条件的评论自己可能是一个黑客,取决于你问的对象(我当然不这么认为)。