HTML comments within comments?

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>

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


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.


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.