HTMLでコメントを入れ子にする場合。
結論から書くとそういう機能はありません。
でも考え方を少し変えれば可能です。
そういうコメント入れ子にする裏技を紹介
このページの目次
問題点.HTMLでコメントを入れ子にできない
たとえばこういうHTMLがあるとします。
▼ 入れ子コメントになったHTML
1 2 3 4 5 6 |
<!-- <div class="article"> <!-- 内側のコメント --> <div class="content"></div> </div> --> |
こうすると <!-- <div class="article" ... 内側のコメント --> までがコメントだと解釈されます。その結果、それ以降のHTMLが出力されちゃいます。
対処1.scriptタグ内でコメントアウトする
1つめはscriptタグを使うやり方
正気あんまり良い方法ではないと思います。
▼ 単純にこういうHTMLを書くだけ
1 2 3 4 5 6 7 8 |
<script> /* <div class="article"> <!~~ 内側のコメント ~~> <div class="content"></div> </div> */ </script> |
JavaScriptのコメントにHTML全体を含めることで、内部のHTMLコメントもJS的にコメントアウトできる仕組み。
この問題点はscriptタグの本来の使い方ではないってことです。別にSEO的な影響は出ないと思うけど、なんか気持ち悪いですね・・・
対処2.styleタグ内でコメントアウトする
styleタグでも同じことができます。
▼ 単純にこういうHTMLを書くだけ
1 2 3 4 5 6 7 8 |
<style> /* <div class="article"> <!~~ 内側のコメント ~~> <div class="content"></div> </div> */ </style> |
やりたいことは実現できたけど・・・
これもstyleタグの正しい使い方ではないし、なにより「HTMLがコメントアウトされている」と解釈するのが難しいです。
方法3.HTMLのMDO機能を使ってコメントアウト
MDOとはマークアップ宣言のために使われる機能のこと
Markup Declaration Open = MDO
▼ MDOに関する解説
arkup Declaration Open: "<!", when followed by a letter or "--" or "[", signals one of several SGML markup declarations. The only purpose it serves in HTML is to introduce comments.
引用元 : http://info.cern.ch/hypertext/WWW/MarkUp/Connolly/Text.html
▼ このMDOの解説の意訳
マークアップ宣言開始 : "<!" のあとに 何らかの文字 または "--" または "[" が続くと、いくつかのSGMLマークアップ宣言の信号になります。これがHTMLで使用される目的はコメントを導入するためだけ
なじみのある <!-- --> みたいなのはMODの一部であり、HTMLの初めにある <!DOCTYPE html> もMODの一部みたいです。
これを使えば入れ子コメントが可能です。
▼ 例えばこういうHTMLを書いてみた
1 2 3 4 5 6 7 8 |
<!-- <div class="article"> <! 内側のコメント > <div class="content"></div> </div> --> |
▼ 内側コメントはブラウザ上でこう解釈される
1 2 3 |
<!-- 内側のコメント --> |
ただ自分はHTML仕様に詳しいわけでもなく、確証が持てません。でも <! はコメント目的で使われるので、ハイフンがなくても機能するものと考えられます。
この方法の欠点はエディタのコードハイライト機能で認識されないことです。そのため「ここは入れ子コメントされてる」と認識される確率は低いです。
もしもっと確実な方法があれば教えてほしい
ということで入れ子コメントの方法まとめ
もっといい方法があれば知りたいですが、ググっても出てこないので多分ないと思います。入れ子はそもそも正式にサポートされていません。
でも知ってる方がいれば コメント欄から教えてください。
以上、HTMLで入れ子コメントをする方法でした。ではまた