2009-11-19 4 views

risposta

16

che dipende da ciò che si desidera contrassegnare.

  • se si desidera un collegamento all'interno di un arco, mettere <a> all'interno <span>.
  • se si vuole marcare qualcosa in un link, mettere in <span><a>
+2

'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

2

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.

+0

Corretto, sono entrambi elementi in linea. – Chris

0

Funzionerà entrambi, ma personalmente preferirei l'opzione 2 in modo che l'intervallo sia "intorno" al collegamento.

97

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> 
+1

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. –

30

È 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.

0

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.

15

SPAN è un contenitore in linea GENERICO. Non importa se uno spanspan o span è all'interno di a poiché entrambi sono elementi in linea. Sentiti libero di fare ciò che sembra logicamente corretto per te.

1

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.

1

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.