Условное форматирование в тегах HTML - PullRequest
9 голосов
/ 02 февраля 2009

Есть ли возможность использовать условия IF-ELSE в тегах HTML

 <if true>  do something   </if>  
 <else>     do something   </else>

Ответы [ 6 ]

13 голосов
/ 02 февраля 2009

Есть, но действительно используется только в IE , чтобы различать разные версии:

<!--[if IE6]>
    Things here!
<![endif]-->
8 голосов
/ 02 февраля 2009

Не для педантизма, но HTML является языком разметки и бесполезен для условной логики.

При этом звучит так, будто вы ищете что-то вроде javascript. Если бы вы могли добавить немного больше деталей к вашему вопросу, я мог бы рассказать о том, как вы могли бы использовать JavaScript для выполнения задач с условной логикой.

5 голосов
/ 02 февраля 2009

HTML был разработан для макета документа, поэтому noscript и noframes примерно так же близки, как HTML, к обработке условных выражений. Вы могли бы предположительно подойти к этой проблеме с JavaScript.

<div id='if-part' style='visibility: hidden;'>do something</div>
<div id='else-part' style='visibility: hidden'>do something</div>

<script>
    var node;
    if(true) {
        node = document.getElementById('if-part');
    }
    else {
        node = document.getElementById('else-part');
    }
    node.style.visibility = 'visible';
</script>

Конечно, это работает, только если на клиенте включен JavaScript.

4 голосов
/ 02 февраля 2009

Условный рендеринг HTML не является новой концепцией, но он не может быть сделан исключительно с использованием HTML. Вам потребуется использовать сценарии на стороне клиента или код на стороне сервера, чтобы обеспечить условную логику, которая соответствующим образом отобразит ваш HTML.

3 голосов
/ 21 января 2016

Вы когда-нибудь кодировали электронную почту? Все ваши сценарии Java удалены из Google. Кроме того, Gmail на Android не поддерживает медиа-запросы, и разные версии Outlook имеют свои особенности. У вас нет выбора, кроме как использовать условный HTML, если вы хотите, чтобы электронные письма хорошо отображались на различных почтовых клиентах.

Это очень похоже на второй пример:

<!--[if gte mso 9]>
    <style type="text/css">
    /* Your Outlook-specific CSS goes here. */
    </style>
<![endif]-->

Однако, если вы не пользуетесь почтовым клиентом, я должен согласиться со всеми и сказать, что вам следует использовать Java Script.

2 голосов
/ 02 февраля 2009

Как было сказано в других постах, HTML не поддерживает условную логику. У вас есть два варианта здесь:

1) Генерация HTML динамически с использованием таких технологий, как PHP или XSLT

2) Измените HTML DOM после факта, используя Javascript

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...