条件注释语法

时间:2016-11-13 09:56:38

标签: html if-statement comments conditional

有人能解释一下第一和第二条件评论语法之间的区别吗?

<!--[if lt IE 8]><html class="no-js lt-ie8"><![endif]-->
<!--[if gt IE 8]><!--><html class="no-js"><!--<![endif]-->

为什么第二个使用<!-->标记之前使用<html>语法?我可以使用以下语法得到相同的结果吗?

<!--[if lt IE 8]><html class="no-js lt-ie8"><![endif]-->
<!--[if gt IE 8]><html class="no-js"><![endif]-->

提前致谢!

2 个答案:

答案 0 :(得分:0)

不,您的第二次设置与第一次设置不同。

在第一个使用<!--[if gt IE 8]><!--><html class="no-js"><!--<![endif]-->的地方,它会让所有其他浏览器(不理解条件注释的浏览器)拥有<html class="no-js">,第二个设置不会

Src:https://msdn.microsoft.com/en-us/library/ms537512(v=vs.85).aspx

答案 1 :(得分:0)

一般接受的语法是(是)

open tag   : <!--[if condition version]>
end tag    : <![endif]-->

最好的猜测是bogus comment尝试<!之后的两个破折号使其成为DOM中的注释节点。请参阅此answer

<!--[if gt IE 8]><!--><html class="no-js"><!--<![endif]-->
                 ^^^^^                    ^^^^       
                 |||||                    ||||
                 ________Bogus Comment________

它没有任何区别。最后一个可能会呈现为<!-- comment -->comment + condition ......不确定。