Desidero nidificare i tag span
e a
. DovreiSpan all'interno dell'ancora o dell'ancora all'interno della campata o non importa?
- Mettere
<span>
all'interno<a>
- Mettere
<a>
all'interno<span>
- non importa?
Desidero nidificare i tag span
e a
. DovreiSpan all'interno dell'ancora o dell'ancora all'interno della campata o non importa?
<span>
all'interno <a>
<a>
all'interno <span>
Non importa: sono entrambi consentiti l'uno dentro l'altro.
che dipende da ciò che si desidera contrassegnare.
<a>
all'interno <span>
.<span>
<a>
'se vuoi un collegamento all'interno di un intervallo, inserisci un collegamento all'interno di un intervallo.' - lei, signore, è un genio! +1 da me! – katzenhut
Dipende da quello che la durata è per. Se si riferisce al testo del collegamento e non al fatto che si tratta di un collegamento, scegliere # 1. Se lo span fa riferimento al collegamento nel suo insieme, quindi scegli # 2. A meno che tu non spieghi cosa rappresenta lo span, non c'è molto più di una risposta. Sono entrambi elementi in linea, possono essere annidati sintatticamente in qualsiasi ordine.
Corretto, sono entrambi elementi in linea. – Chris
Funzionerà entrambi, ma personalmente preferirei l'opzione 2 in modo che l'intervallo sia "intorno" al collegamento.
3 - Non importa.
MA, tendo di utilizzare solo un <span>
all'interno di un <a>
se è solo per un parte del contenuto del tag cioè
<a href="#">some <span class="red">text</span></a>
Piuttosto che:
<a href="#"><span class="red">some text</span></a>
che dovrebbe ovviamente solo:
<a href="#" class="red">some text</a>
Recentemente mi sono imbattuto in un problema di spazio bianco con overflow di testo: ellissi e overflow: nascosto, che poteva essere risolto aggiungendo un elemento di blocco inline al mio un pulsante di navigazione. Ho finito con testo. Quindi penso (o spero;)) è giusto farlo quando ne hai davvero bisogno. –
È perfettamente valido (almeno per gli standard HTML 4.01 e XHTML 1.0) per annidare uno <span>
all'interno di uno <a>
o uno <a>
all'interno di uno <span>
.
Solo per dimostrare a voi stessi, si può sempre controllare fuori un l'W3C MarkUp Validation Service
Ho cercato di 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>
all'interno del <span>
cioè
<span><a href="http://www.google.com">Google</a></span>
con entrambi i doctypes HTML 4.01 e XHTML 1.0 ed entrambi hanno superato la convalida con successo!
Unica cosa da tenere presente è assicurarsi di chiudere i tag nell'ordine corretto. Quindi, se inizi con un <span>
quindi un <a>
, assicurati di chiudere il tag <a>
prima di chiudere lo <span>
e viceversa.
Semanticamente penso abbia più senso come un contenitore per un singolo elemento e se è necessario nidificarli allora questo suggerisce più che l'elemento sarà all'interno di quello esterno.
SPAN è un contenitore in linea GENERICO. Non importa se uno span
span
o span
è all'interno di a
poiché entrambi sono elementi in linea. Sentiti libero di fare ciò che sembra logicamente corretto per te.
Personalmente, come sviluppatore web, inserisco sempre un'estensione all'interno di un tag di ancoraggio se sto tentando di evidenziare una sezione del testo dei collegamenti, ad esempio applicando uno sfondo a una sezione.
Può essere importante, ad esempio, se si utilizza un font di ordinamento. Ho avuto questo solo ora con:
<span class="fa fa-print fa-3x"><a href="some_link"></a></span>
Normalmente avrei messo l'arco all'interno della A ma lo stile non stava prendendo vigore fino scambiato è rotonda.
Ma è un livello di blocco e è un elemento di livello inline e l'elemento di livello di blocco non può entrare all'interno dell'elemento inline. Penso che sia stato in validazione w3c –
No, entrambi sono in linea – Greg