HTML comments within comments?

26,934

Solution 1

I think the key point is this:

Note that comments are markup.

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

This is not valid markup:

<div <span/> />

... so neither is the one you mention.


Since all my sites are written in PHP I normally comment out code with PHP comments:

<?/*?>
<div>...</div>
<p>...</p>
<?*/?>

Perhaps you can use a similar trick.

Solution 2

No. Comments cannot be nested and HTML has only one style of comment.

Solution 3

If you're really stuck with some piece of HTML – pre-rendered at some uncontrollable source – which contains comments, and you need to make sure none of it is rendered on your page, you can always wrap it with a script tag like below, only thing is, you can't comment out script tags this way.

 <html>
   <head>
   </head>
   <body>
     <!-- multiline "comment" below using script type="text/html" -->
     <script type="text/html">        
        Hello world!
        <!-- Look at me, I'm a comment :) -->
        <div>Yeah, whatever, I'm an element..</div>        
    </script>
    <span>Who cares, span is the man, the only visible one anyway!</span>
  </body>
</html>

If you need to comment out script tags, you could use a textarea as wrapper instead, off course doing it this way, you can't comment out textarea tags.

<html>
  <head>
  </head>
  <body>
    <!-- multiline "comment" below using textarea style="display:none;" -->
    <textarea style="display:none;">	
      <script>  
        alert("which won't show up..");  
      </script>
      Hello world!
      <!-- Look at me, I'm a comment :) -->
      <div>Yeah, whatever, I'm an element..</div>        
    </textarea>
    <span>Who cares, span is the man, the only visible one anyway!</span>
  </body>
</html>

Solution 4

No. The closing comment tag --> will always end the comment section so if your comment includes a comment the closing tag of your included comment will end the comment section.

You can do a replace of --> in the section you are about to comment out to something unique so you can later just do another replace back to --> if you choose to undo your commenting.

Solution 5

Nope, unfortunately HTML comments don't nest.

Share:
26,934
Tony R
Author by

Tony R

Updated on July 09, 2022

Comments

  • Tony R
    Tony R almost 2 years

    Is there a way to comment multiple lines... which already have some comments in them?

    i.e.

    <html>
    <!-- Multi-line comment begin
      <head>
        <!-- This script does abcxyz -->
        <script>...</script>
      </head>
      <body>
        Hello world!
      </body>
    Multi-line comment end -->
    </html>
    

    It seems that even SO's syntax hilighting won't accept this...

    • naught101
      naught101 over 5 years
      It's a little annoying, but you can leave the other comments in by just removing the --> part of each one.
  • Tony R
    Tony R over 13 years
    sheesh, really? Am I the only one aggravated by this? o.O Thanks for the php advice though...
  • Andrew
    Andrew about 6 years
    Lolz. I guess doing this works...: <--blahblah<--moreblahblah--<blahbleebloblah--> (then when you uncomment you get: blahblah<--moreblahblah--<blahbleebloblah, which at least comments out a whole bunch so it's noticeable - then you just switch the < to >).
  • BizzyBob
    BizzyBob over 2 years
    This worked great for me. Thanks for sharing!