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]-->
有人可以指导我如何纠正。
支持//if IE 8
条件注释语法在几个月前被删除: Git Commit
版本0.35是支持它们的最后一个版本; v1.0是删除后的第一个版本。
我一直在使用@Jayram使用的文字样式; 只有区别是条件逻辑àla h5bp和结束html标记:
| <!--[if IE 8]> <html lang="en" class="lt-ie9"> <![endif]--> | <!--[if gt IE 8]><!--> <html lang="en"> <!--<![endif]-->
注意:请记住用| </html>
closures文档 | </html>
因为最初的html标签不是Jade的自闭句法。
此代码应按预期工作。 它适用于高达0.35.0
Jade版本。
请注意,最后的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]-->
编辑
从1.0.0
版(2013年12月22日发布)开始,Jade不再parsing评论内容,并且放弃了对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处理(具有所有function,例如从请求处理方法中设置类名称),所以您不应该追加| </html>
你的Jade文件的末尾有| </html>
。
您也可以参考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]-->