Jade模板引擎中的IE条件语句

6
我该如何将以下IE条件语句转换为JADE语言:
我该如何在JADE语言中转换上述IE条件语句?
<!--[if IE 8]> <html lang="en" class="ie8"> <![endif]-->
<!--[if IE 9]> <html lang="en" class="ie9"> <![endif]-->
<!--[if !IE]><!--> <html lang="en"> <!--<![endif]-->

我尝试了以下方法,但没有起作用:
//if IE 8
    html lang="en"  class="ie8"
//if IE 9
    html lang="en" class="ie9"
//if !IE
    html lang="en"
// <![endif]

它显示以下输出:
<!--if IE 8html lang="en"  class="ie8"
-->
<!--if IE 9html lang="en" class="ie9"
-->
<!--if !IEhtml lang="en"
-->
<!-- <![endif]-->

有人能指导我如何纠正这个问题吗?


你尝试过直接在模板中包含它们吗? - robertklep
2
你使用的Jade和Express版本是哪个? - Tom
您可以在此处阅读有关Jade版本1.0.0+和0.35.0的IE条件注释方法以及Jade混合使用的更多信息:http://tompawlak.blogspot.co.uk/2014/01/ie-conditional-comments-in-jade_1.html - Tom
3个回答

9
几个月前,支持//if IE 8条件注释语法的功能已被移除:Git提交。0.35版本是最后一个支持它们的版本;在移除之后,v1.0是第一个发布的版本。
我一直使用Jayram所使用的literal样式;唯一的区别是条件逻辑,就像h5bp和闭合的html标签。
| <!--[if IE 8]>         <html lang="en" class="lt-ie9"> <![endif]-->
| <!--[if gt IE 8]><!--> <html lang="en"> <!--<![endif]-->

注意:记得使用| </html>来结束文档,因为初始的html标签不是Jade的自闭合语法。


6

这段代码应该可以正常工作。它适用于Jade版本高达0.35.0

请注意,最后一个html元素需要是正确的 Jade 元素(这就是为什么属性被放在括号(...)中的原因)。前两个元素是注释的一部分,因此应该格式化为格式化的 HTML 元素。

//if IE 8
    <html lang="en" class="ie8">
//if IE 9
    <html lang="en" class="ie9">
//[if !IE]><!
html(lang="en")
    //<![endif]

页面上的输出如下:

<!--[if IE 8]><html lang="en" class="ie8"><![endif]-->
<!--[if IE 9]><html lang="en" class="ie9"><![endif]-->
<!--[if !IE]><!--><html lang="en"><!--<![endif]-->

编辑

从2013年12月22日发布的版本1.0.0开始,Jade不再解析注释内容并停止支持IE条件注释。

新方法是使用格式良好的IE条件注释。现在使用这种方式是安全的,因为Jade忽略任何以<开头的行。

您的代码可以如下所示:

<!--[if IE 8]><html class="ie8" lang="en"><![endif]-->
<!--[if IE 9]><html lang="en" class="ie9"><![endif]-->
<!--[if !IE]><!-->
html(lang="en")
  <!--<![endif]-->

请注意,html元素将由Jade处理(包括其所有功能,例如从请求处理方法设置类名),因此您不应在Jade文件末尾添加| </html>
您还可以参考IE条件注释在Jade模板引擎中的使用文章,了解Jade与IE条件注释混合使用的替代方案。
希望这能帮到您。

3

像这样使用。这对我来说很有效。

   | <!--[if IE 8]> <html lang="en" class="ie8"> <![endif]-->
   | <!--[if IE 9]> <html lang="en" class="ie9"> <![endif]-->
   | <!--[if !IE]><!--> <html lang="en"> <!--<![endif]-->

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接