Risposte:
Secondo gli standard web non è consentito inserire elementi di blocco in elementi inline.
Poiché h1
è un elemento block ed a
è un elemento inline, il modo corretto è:
<h1><a href="#">This is a title</a></h1>
Ecco un collegamento per saperne di più: w3 Modello di formattazione visuale
Tuttavia, c'è un'eccezione che in HTML5 è valido racchiudere elementi a livello di blocco (come div
, p
o h*
) nei tag di ancoraggio. Il wrapping di elementi a livello di blocco in elementi in linea diversi dagli ancoraggi va ancora contro gli standard.
HTML5 aggiorna questo argomento: ora è OK avvolgere elementi a livello di blocco con A, come indicato in un'altra domanda: https://stackoverflow.com/a/9782054/674965 e qui: http://davidwalsh.name/html5- elementi-link
Per quanto ho capito, HTML5 ti consente di racchiudere elementi a livello di blocco nei tag di collegamento. Tuttavia, i bug possono essere visualizzati nei browser meno recenti. L'ho riscontrato con Firefox 3.6.18 e ho inserito moz-rs-header = "" nel mio codice. Così i miei stili si sono rotti. Se ti interessa una soluzione alternativa, puoi racchiudere i tag di collegamento in div. Di seguito viene fornita una migliore spiegazione del perché il codice aggiuntivo funziona http://oli.jp/2009/html5-block-level-links/