Подтвердить что ты не робот

Как установить 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-решение, если нет способа.

4b9b3361

Ответ 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