HTML 标签中的条件格式

Posted

技术标签:

【中文标题】HTML 标签中的条件格式【英文标题】:Conditional Formatting in HTML Tags 【发布时间】:2010-10-04 21:13:26 【问题描述】:

是否有任何选项可以在 html 标签中使用 IF-ELSE 条件

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

【问题讨论】:

【参考方案1】:

感谢 Kevin Loney 和他的 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-partdisplay:initial;
    .else-partdisplay:none

@media screen and (min-width:768px)
    .if-partdisplay:none;
    .else-partdisplay:initial

This answer 提供了更多可供考虑的 CSS 选项。

【讨论】:

【参考方案2】:

你们有没有写过电子邮件?你所有的java脚本都被谷歌剥离了。此外,android 上的 gmail 不支持媒体查询,并且不同版本的 Outlook 有自己的怪癖。如果您想要在各种电子邮件客户端上呈现良好的电子邮件,您别无选择,只能使用条件 HTML。

这很像第二个例子:

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

但是,如果您不使用电子邮件客户端,我将不得不同意其他所有人的观点,并说您应该使用 Java Script。

【讨论】:

【参考方案3】:

正如在其他帖子中所说,HTML 不支持条件逻辑。你有两个选择:

1) 使用 php 或 XSLT 等技术动态生成 HTML

2) 使用 Javascript 修改 HTML DOM

【讨论】:

【参考方案4】:

HTML 的条件渲染并不是一个新概念,但它不能完全使用 HTML 来完成。您需要使用客户端脚本或服务器端代码来提供相应地呈现 HTML 的条件逻辑。

【讨论】:

【参考方案5】:

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 时才有效。

【讨论】:

true,但前提是客户端禁用了 javascript。【参考方案6】:

有,不过是really only used in IE区分不同版本:

<!--[if IE6]>
    Things here!
<![endif]-->

【讨论】:

【参考方案7】:

不要迂腐,但 HTML 是一种标记语言,对条件逻辑没有用处。

话虽如此,听起来您正在寻找的是一些 javascript。如果您可以为您的问题添加更多细节,我可以详细说明如何使用 javascript 执行具有条件逻辑的任务。

【讨论】:

我不认为你是迂腐的......正确 - 仅用于标记的 HTML。 这个评论很晚,但 PHP 不是 if/else 情况的首选解决方案吗?如果用户没有在他们的浏览器中启用 javascript,或者 javascript 不是跨浏览器(或有错误),您最终可能会得到意想不到的、不需要的结果。 PHP 不进行客户端评估,因此最终结果更可预测。我喜欢 javascript,但它不应该是所有事情的首选解决方案。 好吧,说实话,一切都晚了。每个主流浏览器都有强大的 JavaScript 支持。当然,javascript 并不总是通用的,但对于每个需要它的浏览引擎,通常都有一些奇怪的解决方法。

以上是关于HTML 标签中的条件格式的主要内容,如果未能解决你的问题,请参考以下文章

LogQL - label_format 有条件地格式化标签

mvc中的条件格式

在一个电子表格中保留条件格式颜色但删除条件

如何根据 kendo ui mvc 网格中的条件格式化行

求助关于excel条件格式根据需要显示和隐藏文字

Python中的条件判断