【问题标题】:What is the intent of this IE-conditional hack?这个 IE-conditional hack 的意图是什么?
【发布时间】:2017-10-03 01:28:16
【问题描述】:

你能告诉我 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]-->

这是黑客行为吗?打开和关闭 cmets 的符号不匹配。

【问题讨论】:

    标签: html internet-explorer conditional-comments


    【解决方案1】:

    额外的!-- 位用于使其成为有效的HTML 注释,这样验证器就不会抱怨伪造的cmets。更多关于herehere。非 IE 浏览器真正看到的是两个分别包含 [if gt IE 8]&gt;&lt;!&lt;![endif] 的常规 HTML cmet。

    条件 cmets 允许大于 IE8 看到 &lt;html&gt; 标记。正如您正确指出的那样,非 IE 浏览器也将使用相同的 &lt;html&gt; 标记 — !-- 位允许它们这样做。我不会将其称为 hack,但话又说回来,有条件的 cmets 他们自己 可能是 hack,这取决于你问谁(我当然不这么认为)。

    【讨论】:

    • 谢谢,搜索“
    猜你喜欢
    • 1970-01-01
    • 2011-08-17
    • 2011-03-11
    • 2017-01-29
    • 1970-01-01
    • 2015-03-23
    • 2015-06-14
    • 1970-01-01
    • 2011-04-11
    相关资源
    最近更新 更多