Risposte:
3 - Non importa.
MA, tendo a usare solo un <span>
all'interno di un <a>
se è solo per una parte del contenuto del tag, ad es
<a href="#">some <span class="red">text</span></a>
Piuttosto che:
<a href="#"><span class="red">some text</span></a>
Che dovrebbe ovviamente essere solo:
<a href="#" class="red">some text</a>
È perfettamente valido (almeno per gli standard HTML 4.01 e XHTML 1.0) annidare un <span>
all'interno di un <a>
o un <a>
all'interno di a <span>
.
Solo per dimostrarlo a te stesso, puoi sempre verificarlo presso il servizio di convalida MarkUp W3C
Ho provato a convalidare:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>Title</title>
</head>
<body>
<p>
<a href="http://www.google.com/"><span>Google</span></a>
</p>
</body>
</html>
E anche lo stesso come sopra, ma con l' <a>
interno<span>
vale a dire
<span><a href="http://www.google.com">Google</a></span>
con doctype HTML 4.01 e XHTML 1.0 ed entrambi hanno superato la convalida con successo!
L'unica cosa di cui tenere conto è assicurarsi di chiudere i tag nell'ordine corretto. Quindi, se inizi con una e <span>
poi una <a>
, assicurati di chiudere il <a>
tag prima di chiudere il <span>
e viceversa.
Non importa: sono entrambi ammessi l'uno nell'altro.
Dipende da cosa è lo span. Se si riferisce al testo del collegamento e non al fatto che si tratta di un collegamento, scegli # 1. Se lo span si riferisce al collegamento nel suo insieme, scegli # 2. A meno che tu non spieghi cosa rappresenta lo span, non c'è molto di più di una risposta di quella. Sono entrambi elementi in linea, possono essere nidificati sintatticamente in qualsiasi ordine.
Può essere importante se ad esempio stai usando un carattere di icona di ordinamento. Ho avuto questo solo ora con:
<span class="fa fa-print fa-3x"><a href="some_link"></a></span>
Normalmente metterei la campata all'interno della A ma lo stile non ha avuto effetto fino a quando non l'ho cambiata.
Funzionerà entrambi, ma personalmente preferirei l'opzione 2, quindi l'intervallo è "intorno" al collegamento.