Как установить html-тег в jade?
В jade я хочу установить 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-решение, если нет способа.
Ответы
Ответ 1
Этот метод работает с закрывающим тегом 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
from: https://gist.github.com/kmiyashiro/1140425#comment-675550
Update:
Как указано kumar-harsh, это поведение теперь обесценивается, если вам нужна эта функциональность, теперь вы должны использовать обычный html:
<!--[if IE]>
<html class="ie">
<![endif]-->
<![if !IE]>
<html class="not-ie">
<![endif]>
</html>
from: https://github.com/visionmedia/jade/issues/1345?source=cc#issuecomment-31920732
Ответ 2
Это то, что вы ищете, и оно также даст закрывающий тег 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
Ответ 3
Просто используйте этот синтаксис, обратите внимание на разный отступ:
!!! 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
…
Ответ 4
В версии 1.0.0
(выпущен на 22 декабря 2013 года) 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 игнорирует любую строку, начинающуюся с символа <
.
Вы также можете посетить этот пост об условных комментариях IE в Jade, в котором говорится о различии между версией Jade 0.35.0
и 1.0.0
. Он также показывает альтернативный подход использования механизма Jade mixins для условных комментариев.
Ответ 5
Начиная с версии 1.0.0, конструкция // if
больше не волшебна. Либо визуализируйте HTML-версию (любая строка, начинающаяся с < передается как-будто от Jade), либо используйте mixin, как Tom 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')
Ответ 6
Очень просто.
Exemple:
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]
Ответ 7
насколько я знаю, вы не можете поместить html-теги в jade. для этого вам нужно включить 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