【问题标题】:HTML nested commentsHTML 嵌套注释
【发布时间】:2013-08-11 08:07:06
【问题描述】:

假设一些像这样的 HTML...

<section>
  <h1>Some stuff</h1>
  <!-- That was some stuff... -->
</section>

我在要注释掉的 HTML 周围添加注释标签。我想评论所有内容,但评论已被现有评论关闭。

<!--
<section>
  <h1>Some stuff</h1>
  <!-- That was some stuff... -->
</section>
-->

在不丢失所有内联 cmets 的情况下处理这种情况的最佳方法是什么。

【问题讨论】:

  • 你为什么评论一切?这看起来像是一个源管理问题。
  • 第二次为什么? Are nested HTML comments possible? 的可能重复项
  • 可能duplicate.
  • @dystroy 在开发过程中想要临时注释掉一个部分是很常见的。如果该部分恰好包含 cmets,您将希望它们完好无损,以便您可以通过取消注释该部分来恢复。这在 XML 中是不可能的,这是一个语言问题,而不是用户问题。 Maxime 的解决方案可能对 HTML 有所帮助,但通常不适用于标头块/XML。

标签: html comments


【解决方案1】:

HTML 注释以&lt;!-- 开头,以遇到的第一个--&gt; 结尾。没有办法改变这种行为。如果您想在在开发过程中隐藏可能包含 cmets 的较大部分,您可以用 &lt;div style="display:none"&gt;&lt;/div&gt; 包裹。但是不要在生产中这样做,这很糟糕。

【讨论】:

  • 为什么生产环境不好?
  • 因为它可以被定性为“死代码”:发生了一些无用的事情,使代码的可读性降低......你不应该在生产中的 cmets 中有任何代码,因为即使 “有一天它可能会有用”。 en.wikipedia.org/wiki/Dead_code
  • 谢谢 - 只是检查一下这种创建死代码的特殊方式是否有一些特殊的坏处!
【解决方案2】:

使用嵌套 cmets 注释块: 从“--”到“~~”的子内部(块)cmets

<!-- *********************************************************************
     * IMPORTANT: to uncomment section
     *            sub inner comments "~~" -> "--" & remove this comment
     *********************************************************************
<head>
   <title>my doc's title</title> <~~! my doc's title ~~>
   <link rel=stylesheet href="mydoc.css" type="text/css">
</head>

<body> 
<~~! my doc's important html stuff ~~>
...
...
...
</body>

*********************************************************************
* IMPORTANT: to uncomment section
*            sub inner comments "~~" -> "--" & remove this comment
*********************************************************************
--> 

因此,最外层的注释会忽略所有“无效”的内部(块)cmets

【讨论】:

    【解决方案3】:

    据我所知,没有办法阻止它。 你需要小心你评论的内容。

    见:http://www.w3.org/TR/html4/intro/sgmltut.html#h-3.2.4

    你可以尝试用PHP来注释掉HTML代码... 希望对您有所帮助!

    【讨论】:

      【解决方案4】:

      您不能在不删除内部 cmets 的情况下将其注释掉,因为 HTML 会将代码视为

      <!--
      <section>
      ----
      ----            //All this code comes under commented
      ----
      some stuff... -->
      

      它只会考虑&lt;section&gt;之前的开始评论标签和“一些东西......”之后的结束评论标签。所以 HTML 不会处理 &lt;h1&gt; 之后的一个注释标签,它已经被注释掉了。

      【讨论】:

        【解决方案5】:

        这对我有用:

        <!--[if False]>
        Lots of html including <!-- comments -->
        <![endif]-->
        

        【讨论】:

        • 错误。如果您在最后一行的前面添加一个标签,将显示指示嵌套注释的结束标记确实关闭外部的文本
        猜你喜欢
        • 2012-08-03
        • 2010-10-01
        • 2012-01-17
        • 1970-01-01
        • 2012-08-01
        • 1970-01-01
        • 2015-01-27
        • 2011-07-12
        • 2011-10-11
        相关资源
        最近更新 更多