Commenti HTML
Impara la sintassi dei commenti HTML con esempi: commenti su singola riga e multiriga, regole di validità e come commentare il codice per il debug.
Un commento HTML è una nota nel markup che il browser ignora: non viene visualizzata sulla pagina e non ha alcun effetto sul layout. I commenti esistono esclusivamente per le persone che leggono e mantengono il codice sorgente. Aiutano a spiegare perché esiste un determinato markup, a lasciare promemoria per dopo e a disabilitare temporaneamente il codice senza eliminarlo.
Questa pagina tratta la sintassi dei commenti, i commenti su singola riga e multiriga, le regole che rendono un commento valido (e gli errori che lo invalidano), come commentare il codice durante il debug, e i commenti condizionali di Internet Explorer legacy che potresti ancora incontrare in progetti datati.
Sintassi
Un commento si apre con <!-- e si chiude con -->. Tutto ciò che si trova tra questi marcatori viene ignorato dal browser:
<!-- This is an HTML comment -->Puoi inserire un commento su una riga propria, oppure dopo del markup sulla stessa riga:
<p>Total price</p>
<!-- TODO: pull this value from the cart, not hard-coded -->
<p>$42.00</p> <!-- includes tax -->Il --> di chiusura è obbligatorio. Se lo dimentichi, il browser continua a trattare tutto ciò che segue come parte del commento finché non trova il prossimo --> (o la fine del documento), nascondendo silenziosamente interi blocchi della tua pagina — un bug comune e difficile da individuare.
Perché usare i commenti
- Spiegare l'intento. Il codice mostra cosa succede; un commento può registrare perché. "Perché questo
<div>è vuoto?" trova risposta in una singola riga di note. - Collaborazione. In un codebase condiviso, i commenti indicano ai colleghi come una sezione è destinata a funzionare.
- Note TODO / FIXME. Segnala lavori incompiuti o problemi noti in modo che siano facili da trovare in seguito (
<!-- TODO: add alt text -->). - Debug. Nascondi temporaneamente il markup per isolare un problema senza perdere il codice originale.
I commenti fanno parte del sorgente della pagina e sono visibili a chiunque apra Visualizza sorgente o gli strumenti di sviluppo. Non inserire mai password, chiavi API, note private o altri segreti in un commento HTML — "nascosto" significa solo nascosto dalla pagina renderizzata, non dall'utente.
Commenti su singola riga e multiriga
La stessa sintassi <!-- --> funziona per una riga o per molte. Un commento multiriga si estende semplicemente su più righe tra i marcatori di apertura e chiusura:
<!-- This is a single-line comment -->
<!--
This is a multi-line comment.
Everything here is ignored by the browser,
no matter how many lines it spans.
-->
<p>This paragraph is visible.</p>HTML non ha una sintassi separata per i commenti a blocco — a differenza di CSS, che usa /* ... */, o JavaScript, che usa // e /* ... */. In HTML si usa sempre <!-- -->.
Commentare il codice per il debug
Racchiudere il markup in un commento è un modo rapido per disabilitarlo senza eliminarlo. Questo è prezioso quando stai cercando quale elemento causa un problema:
<h1>The main heading</h1>
<!-- Temporarily disabled while debugging the layout
<aside>
<p>This sidebar is hidden for now.</p>
</aside>
-->
<a href="https://www.w3docs.com">Homepage</a>L'elemento <aside> qui sopra non viene renderizzato e il browser non lo costruisce nemmeno nel DOM. Quando hai finito, rimuovi <!-- e --> per ripristinare il codice.
Commenti validi e non validi
Un commento segue alcune regole. Violarle può far sì che il browser tratti il commento come testo, o che inghiotta markup che volevi conservare.
Non puoi annidare i commenti. Il primo --> chiude il commento, quindi il secondo --> diventa testo in eccesso sulla pagina:
<!-- outer comment <!-- inner comment --> still inside? -->Qui il commento termina al primo -->. Il testo rimanente still inside? --> viene renderizzato come testo visibile — quasi mai quello che volevi.
Evita -- all'interno di un commento. Secondo le specifiche HTML, il testo di un commento non dovrebbe contenere -- se non come parte del --> di chiusura. Non deve inoltre iniziare con > o ->. Questi sono validi:
<!-- A perfectly valid comment -->
<!-- Visit the section "Pricing" below -->E questi sono problematici:
<!-- Don't use a -- double dash inside --> <!-- the "--" can confuse parsers -->
<!--> Starts with > — invalid -->
<!-- Missing the closing marker <-- the rest of the page may vanishL'abitudine più sicura: apri con <!--, scrivi la tua nota usando trattini singoli o parole, e chiudi sempre con -->.
Provalo: commenti HTML in un documento completo
<!DOCTYPE html>
<html>
<head>
<title>The title of the document.</title>
</head>
<body>
<h1>The main heading</h1>
<!-- <p>We want to hide this paragraph temporarily.</p> -->
<a href="https://www.w3docs.com">Homepage</a>
<!-- TODO: this link will point to the homepage -->
</body>
</html>Il browser renderizza solo il titolo e il collegamento. Le due righe commentate non producono nulla sullo schermo, come mostra l'anteprima live qui sotto.
Commenti condizionali (Internet Explorer legacy)
Le versioni precedenti di Internet Explorer (da IE 5 a IE 9) supportavano una speciale sintassi di commento condizionale. Per tutti gli altri browser appariva come un commento ordinario e veniva ignorato, ma IE leggeva ed eseguiva il markup al suo interno quando la condizione corrispondeva:
<!--[if IE]>
<link rel="stylesheet" href="ie-only.css">
<![endif]-->
<!--[if lt IE 9]>
<p>You are using an old version of Internet Explorer.</p>
<![endif]-->Questo era un metodo standard per fornire CSS o script solo a versioni specifiche di IE. I commenti condizionali sono obsoleti. Internet Explorer 10 ha eliminato il supporto per essi, e i browser moderni non li hanno mai supportati, quindi non dovresti usare questa tecnica nel nuovo codice. Viene trattata qui solo per riconoscerla nei progetti legacy.
Dove i commenti possono e non possono essere inseriti
I commenti HTML funzionano quasi ovunque nel documento, ma non all'interno dell'elemento <title>. Non hanno nemmeno effetto all'interno dei blocchi <style> e <script>, perché questi usano rispettivamente la sintassi dei commenti di CSS e JavaScript — un <!-- --> inserito lì viene trattato come codice, non come commento.
Tutti i browser moderni supportano i commenti HTML e ignorano il loro contenuto, quindi la sintassi è sicura da usare ovunque il tuo markup necessiti di spiegazioni.