Как мне поместить условный тег html в jade?

В jade я хочу добавить условный тег html согласно , этот метод , который помещает





  

в начало файла HTML.

Я пробовал

//[if lt IE 7]>               
    

    

5 ответов

Этот метод работает с закрывающим тегом 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

21
ответ дан 28 November 2019 в 06:52
поделиться

Это то, что вы ищете, и оно также даст закрывающий тег 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
17
ответ дан 28 November 2019 в 06:52
поделиться

В версии 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 для условных комментариев.

8
ответ дан 28 November 2019 в 06:52
поделиться

Начиная с версии 1.0.0, конструкция // if больше не волшебна . Либо отредактируйте HTML дословно (любая строка, начинающаяся с < передается Jade как есть), либо используйте mixin, как указано в блоге Тома , который цитируется в другом ответе:

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')
3
ответ дан 28 November 2019 в 06:52
поделиться

Насколько я знаю, вы не можете поместить 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
-5
ответ дан 28 November 2019 в 06:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: