如何在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]-->
有人可以指导我如何纠正。
答案 0 :(得分:9)
几个月前删除了对//if IE 8
条件评论语法的支持:Git Commit
版本0.35是支持它们的最后一个版本; v1.0是删除后的第一个版本。
我一直在使用@Jayram使用的文字样式;唯一的区别是条件逻辑àlah5bp和结束html标记:
| <!--[if IE 8]> <html lang="en" class="lt-ie9"> <![endif]-->
| <!--[if gt IE 8]><!--> <html lang="en"> <!--<![endif]-->
注意:请记住使用| </html>
关闭文档,因为最初的html标记不是Jade的自动关闭语法。
答案 1 :(得分: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]-->
修改强>
从版本1.0.0
开始(在 2013年12月22日发布),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处理(具有其所有功能,例如从请求处理方法设置类名),因此您应不将| </html>
附加到你的Jade文件的结尾。
您也可以参考IE Conditional Comments in Jade Template Engine帖子,了解使用Jade混合IE条件评论的替代方法。
我希望这会有所帮助。
答案 2 :(得分: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]-->