Есть ли опция для использования IF-ELSE в HTML-тегах
<if true> do something </if>
<else> do something </else>
Есть ли опция для использования IF-ELSE в HTML-тегах
<if true> do something </if>
<else> do something </else>
Существует, но действительно используется только в IE, чтобы различать разные версии:
<!--[if IE6]>
Things here!
<![endif]-->
Не быть педантичным, но HTML - это язык разметки и не полезен для условной логики.
Говоря это, похоже, что вы ищете немного javascript. Если бы вы могли добавить немного более подробные сведения к своему вопросу, я мог бы подробнее рассказать о том, как вы можете использовать javascript для выполнения задач с условной логикой.
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.
Условная визуализация HTML не является новой концепцией, но она не может быть выполнена исключительно с использованием HTML. Вам нужно будет использовать скрипт на стороне клиента или код на стороне сервера, чтобы обеспечить условную логику, которая сделает ваш HTML соответствующим образом.
Вы когда-нибудь подписали электронное письмо? Все ваши java script удаляются Google. Кроме того, gmail на android не поддерживает медиа-запросы, а разные версии Outlook имеют свои собственные причуды. У вас нет выбора, кроме как использовать условный HTML, если вы хотите получать сообщения электронной почты, которые хорошо отображаются на разных почтовых клиентах.
Это очень похоже на второй пример:
<!--[if gte mso 9]>
<style type="text/css">
/* Your Outlook-specific CSS goes here. */
</style>
<![endif]-->
Однако, если вы не собираетесь использовать почтовый клиент, я должен согласиться со всеми остальными и сказать, что вы должны использовать Java Script.
Как было сказано в других сообщениях, HTML не поддерживает условную логику. Здесь у вас есть два варианта:
1) Генерируйте HTML динамически с использованием таких технологий, как PHP или XSLT
2) Измените HTML DOM после факта с помощью Javascript
Принимая во внимание Кевина Лони и его решение javaScript, мы также должны рассмотреть CSS-условия. Если условие основано на дизайне, основанном на восприятии браузера, то javaScripting можно обойти:
<div class='if-part'>show something</div>
<div class='else-part'>show something</div>
"Покажите что-нибудь" в том смысле, что вы просто скрыли бы условие, которое не применяется. В приведенном ниже примере "if-part" отображается только на мобильных устройствах. "else-part" отображается на больших экранах.
@media screen and (max-width:767px){
.if-part{display:initial;}
.else-part{display:none}
}
@media screen and (min-width:768px){
.if-part{display:none;}
.else-part{display:initial}
}
Этот ответ предлагает еще больше вариантов CSS для рассмотрения.