Perché “<! – "commenta una regola di stile, ma" <! – "no?

Vacci piano con me. Sto solo imparando l’HTML.

Accroding a http://www.w3.org/TR/html-markup/syntax.html#comments e molti altri siti che ho visto come questo http://www.w3schools.com/tags/tag_comment.asp

dicono che un commento HTML è senza spazio tra ! e il prossimo trattino.

Tuttavia, mostro di seguito solo quando scrivo è che le cose all’interno vengono effettivamente ignorate. Notare lo spazio aggiunto tra <! e --

Ecco il codice HTML

         
test

Ora, prima di eseguirlo, il tavolo dovrebbe avere un bordo o no?

Se le cose in testo / css sono davvero commentate, allora la tabella non dovrebbe avere il bordo, giusto? Ma lo fa. Ho provato questo su Chrome versione 24.0.1312.52 sotto linux mint 14, e anche Firefox 18.0

Ora quando cambio la linea a

   

Notare lo spazio extra ora. Quindi la tabella si presenta senza bordi come previsto. Lo stesso accade quando cancello effettivamente l’intera riga:

        
test

domanda è : il commento o è ?

CSS non accetta HTML commenti. Invece il CSS usa /* comment */ per commentare le righe. Prova invece.

La stringa non commenta nulla. Invece, in CSS è un errore di syntax e le regole di elaborazione degli errori CSS implicano in questo caso che tutto il foglio di stile viene ignorato.

La stringa ) è permesso e ignorato (saltato) in determinati contesti. Quindi, il foglio di stile

  

è preso come

 {border: 1px solid gray;} 

Puoi verificarlo usando il validatore CSS W3C. Nel primo caso, con lo spazio, viene segnalato un errore e non vengono riportate regole CSS valide. Nel secondo caso, non viene segnalato alcun errore e la regola viene mostrata come valida.

In CSS, un commento inizia sempre con /* e termina con */ .

Il motivo delle regole speciali per è che molto tempo fa (e stiamo parlando del momento in cui Netscape 1 era ancora in uso), alcuni browser non riconoscevano affatto l'elemento style . Ciò implicava che ignorassero i

e e ne elaborassero il contenuto come se fosse normale contenuto HTML. Ciò avrebbe causato la visualizzazione del foglio di stile all'interno della pagina su tali browser. Per evitare ciò, per "hide il foglio di stile", il foglio di stile era avvolto tra i delimitatori di commento HTML. I vecchi browser quindi ignoravano semplicemente il contenuto dell'elemento style . Ma poi una regola speciale doveva essere aggiunta alle specifiche CSS per consentire i delimitatori.

Questa è una storia antica, ma le vecchie abitudini prevalgono e vengono persino copiate dal codice di altre persone senza capire cosa significano. Non c'è stato alcun motivo per "hide il foglio di stile" per molto, molto tempo, e il trucco ora è diventato un potenziale rischio (a causa di possibili interferenze con le regole XHTML o confusione della gente e errori di battitura).

Quindi, non usare mai

Ho visto persone usare nel blocco di stile CSS per scopi di compatibilità.

In questo caso, i vecchi browser che non supportano il CSS lo commenteranno per evitare errori.

  

sarà interpretato come

  

dai vecchi browser che non supportano i CSS . In questo modo questi browser evitano potenziali errori.

Tuttavia, nei browser moderni, all’interno del blocco di stile CSS verrà ignorato.

  

sarà interpretato come

  

dai browser con supporto CSS.