C'è qualcosa di sbagliato nel mettere i commenti in un tag di chiusura HTML?

4

Scrivo spesso commenti come questo

<div id="wrapper">
...
</div> <!-- id="wrapper" -->

Ma cosa succede se li ho scritti in questo modo?

<div id="wrapper">
...
</div id="wrapper">

All'inizio sembra pericoloso mettere un attributo id che abbia lo stesso valore su un altro tag, ma poi il browser non getta tali informazioni? Per quanto posso vedere, Chrome e Firefox ignorano entrambi gli "attributi" nel tag di chiusura.

Sembra anche sfortunato che non sia un vero commento. Non sarà analizzato semanticamente come un commento. Ma non penso che nessuno stia usando quello spazio per qualcos'altro, giusto? Tag di chiusura solo chiudi, giusto?

C'è qualche ragione per non farlo diversamente da quello che non è uno standard?

    
posta fet 21.09.2015 - 06:51
fonte

2 risposte

10

Questo scenario non è coperto dalle specifiche: link

Inoltre, la prossima sezione della specifica (Attributi) afferma che gli attributi devono essere nei tag di inizio.

Dato che la tua proposta non rispetta le specifiche, ti raccomando vivamente di non farlo.

    
risposta data 21.09.2015 - 08:23
fonte
6

Insieme alla sezione dello standard HTML che definisce la sintassi per un tag finale valido , come citato in un'altra risposta a questa domanda , lo standard HTML definisce anche la presenza di attributi in tag di chiusura come errore di analisi che i parser di segnalazione degli errori dovrebbe segnalare.

Vedi l'inizio della sezione Tokenizzazione dell'algoritmo di analisi HTML , che dice:

When an end tag token is emitted with attributes, that is a parse error

(Si noti che la parola emessa qui indica il prodotto della fase di tokenizzazione, che emette token che vengono quindi utilizzati da Costruzione dell'albero fase.)

Anche nello spirito di avere una registrazione di informazioni disponibili al punto di utilizzo qui a StackOverflow quando possibile, piuttosto che richiedere agli utenti di seguire i collegamenti per ottenere le informazioni: ecco i dettagli di sezione dello standard HTML che definisce la sintassi per il tag finale valido :

  1. The first character of an end tag must be a U+003C LESS-THAN SIGN character (<).
  2. The second character of an end tag must be a U+002F SOLIDUS character (/).
  3. The next few characters of an end tag must be the element's tag name.
  4. After the tag name, there may be one or more space characters.
  5. Finally, end tags must be closed by a U+003E GREATER-THAN SIGN character (>).

Un po 'interessante, che consente tag di fine come </body > che contengono spazi bianchi, e cose del genere:

  <a href=foo>prefix-</a
  ><i>something following w/o space between, on a separate line for readability</i>
    
risposta data 22.09.2015 - 07:05
fonte

Leggi altre domande sui tag