在jade中,我想根据this method输入一个带有条件的html标签,其中包含
<!--[if lt IE 7 ]> <html class="ie6"> <![endif]-->
<!--[if IE 7 ]> <html class="ie7"> <![endif]-->
<!--[if IE 8 ]> <html class="ie8"> <![endif]-->
<!--[if IE 9 ]> <html class="ie9"> <![endif]-->
<!--[if (gt IE 9)|!(IE)]><!--> <html class=""> <!--<![endif]-->
位于html文件的顶部。
我试过
//[if lt IE 7]> <html class="no-js ie6 oldie" lang="en"> <![endif]
//[if IE 7]> <html class="no-js ie7 oldie" lang="en"> <![endif]
//[if IE 8]> <html class="no-js ie8 oldie" lang="en"> <![endif]
//[if gt IE 8]><!--> <html class="no-js" lang="en"> <!--<![endif]
head
...
但是jade忽略了html标记,并且没有在最终</html>
标记中写入。这是无效的html,导致IE根本没有显示任何内容。
有没有办法做到这一点?
我想如果没办法,我会使用javascript解决方案。
答案 0 :(得分:21)
此方法适用于关闭html标记:
!!! 5
//if lt IE 7
<html class="no-js lt-ie9 lt-ie8 lt-ie7">
//if IE 7
<html class="no-js lt-ie9 lt-ie8">
//if IE 8
<html class="no-js lt-ie9">
// [if gt IE 8] <!
html(class="no-js", lang="en")
// <![endif]
head
title= title
body!= body
来自:https://gist.github.com/kmiyashiro/1140425#comment-675550
更新
正如kumar-harsh指出的那样,这种行为现在已被折旧,如果你需要这个功能,你现在应该使用常规的html:
<!--[if IE]>
<html class="ie">
<![endif]-->
<![if !IE]>
<html class="not-ie">
<![endif]>
</html>
来自:https://github.com/visionmedia/jade/issues/1345?source=cc#issuecomment-31920732
答案 1 :(得分:17)
这就是你要找的东西,它也会给出结束的html标签。
!!! 5
//[if lt IE 7]><html lang="en" class="no-js oldie lt-ie9 lt-ie8 lt-ie7"><![endif]
//[if IE 7]><html lang="en" class="no-js oldie lt-ie9 lt-ie8"><![endif]
//[if IE 8]><html lang="en" class="no-js oldie lt-ie9"><![endif]
//[if gt IE 8]><!
html(class='no-js', lang='en')
//<![endif]
head
答案 2 :(得分:11)
只需使用此语法,请注意不同的缩进:
!!! 5
| <!--[if lt IE 7]> <html class="ie6 oldie" lang="en"> <![endif]-->
| <!--[if IE 7]> <html class="ie7 oldie" lang="en"> <![endif]-->
| <!--[if IE 8]> <html class="ie8 oldie" lang="en"> <![endif]-->
| <!--[if gt IE 8]><!--> <html lang="en"> <!--<![endif]-->
head
…
答案 3 :(得分:8)
在版本1.0.0
(在 2013年12月22日发布)中,Jade不再解析评论内容,并且已删除对IE条件评论的支持(//if lt IE 7
不会像0.35.0
及以下版本一样工作。
新方法是使用格式良好的IE条件注释。因此,为了生成上述IE条件注释,Jade模板必须如下:
<!--[if lt IE 7 ]> <html class="ie6"> <![endif]-->
<!--[if IE 7 ]> <html class="ie7"> <![endif]-->
<!--[if IE 8 ]> <html class="ie8"> <![endif]-->
<!--[if IE 9 ]> <html class="ie9"> <![endif]-->
<!--[if (gt IE 9)|!(IE)]><!-->
html(class="")
<!--<![endif]-->
...
请注意,前四个html
元素是格式良好的HTML元素。最后一个使用Jade语法。最后一条评论<!--<![endif]-->
也必须缩进。
使用Jade 1.0.0及更高版本,可以安全地使用HTML注释,因为Jade会忽略以<
字符开头的任何行。
您还可以访问有关Jade版本0.35.0
和1.0.0
之间差异的有关IE条件评论的this post。它还显示了使用Jade mixins机制进行条件注释的替代方法。
答案 4 :(得分:3)
从版本1.0.0开始,// if
构造is not magical anymore。要么逐字呈现HTML(任何以&lt;开头的行按照Jade原样发送),要么使用mixin,按照另一个答案中引用的Tom's blog:
mixin ie(condition)
| <!--[!{condition}]>
block
| <![endif]-->
doctype html
html
head
title= My title
+ie('if IE 8')
link(rel='stylesheet', href='/stylesheets/style-ie8-1.css')
答案 5 :(得分:1)
很简单。
例:
<强> HTML 强>
<!--[if lt IE 7 ]><html class="ie ie6" lang="en"><![endif]-->
<!--[if IE 7 ]><html class="ie ie7" lang="en"><![endif]-->
<!--[if IE 8 ]><html class="ie ie8" lang="en"> <![endif]-->
<强> JADE 强>
//[if lt IE 7]>
<html class="ie ie6" lang="en"> <![endif]
//[if IE 7]>
<html class="ie ie7" lang="en"> <![endif]
//[if IE 8]>
<html class="ie ie8" lang="en"> <![endif]
答案 6 :(得分:-5)
据我所知你不能把这样的html标签放在玉器里。为此,您需要包含html或在标记中使用尾随(。),这些标记支持以下文本:
p. <html><script></script>....
所以html标签不支持文本,所以你不能这样做。另一个解决方案是:
-if IE==6
html.ie6
-if IE==7
html.ie7
-if IE==8
html.ie8
-if IE==9
html.ie9
head
body
h1 My sit