这个 IE 条件 hack 的目的是什么?
What is the intent of this IE-conditional hack?
你能告诉我 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]-->
这是黑客攻击吗?开始和结束评论的符号不匹配。
额外的 !--
位使其成为有效的 HTML 评论,这样验证者就不会抱怨虚假评论。更多关于 here and 。非 IE 浏览器真正看到的是两个常规 HTML 评论,分别包含 [if gt IE 8]><!
和 <![endif]
。
条件注释允许 IE8 以上的浏览器看到 <html>
标签。正如您正确指出的那样,非 IE 浏览器也将使用相同的 <html>
标记 — !--
位允许它们这样做。我不会称它为 hack,但话又说回来,条件注释 本身 可能是 hack,这取决于你问的是谁(我当然不这么认为)。
你能告诉我 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]-->
这是黑客攻击吗?开始和结束评论的符号不匹配。
额外的 !--
位使其成为有效的 HTML 评论,这样验证者就不会抱怨虚假评论。更多关于 here and [if gt IE 8]><!
和 <![endif]
。
条件注释允许 IE8 以上的浏览器看到 <html>
标签。正如您正确指出的那样,非 IE 浏览器也将使用相同的 <html>
标记 — !--
位允许它们这样做。我不会称它为 hack,但话又说回来,条件注释 本身 可能是 hack,这取决于你问的是谁(我当然不这么认为)。