I tag span nidificati sono OK in XHTML?


150

Questo verrà convalidato in XHTML?

<span>hello<span>world</span></span>

Mi chiedo come questa domanda sia riuscita a raccogliere centinaia di voti nel corso degli anni.
Mr Lister,

1
@MrLister Immagino perché ho appena cercato su Google la domanda e questo articolo è apparso ... :)
Andrew Truckle,

Risposte:


142

Si lo farà. Puoi aiutarti usando l' opzione di input diretto del validatore di w3 :

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
      <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
        <head>
          <title>Title</title>
        </head>

        <body>
           <p>
               <span>Test<span>Nest span</span></span>
           </p>
        </body>
      </html>

2
Ciò risponderà alla parte "validata" della domanda, ma non alla parte "OK". Il DTD può solo descrivere un sottoinsieme delle specifiche.
Quentin,

87

Assolutamente.

Ecco la definizione da un DOCTYPE rigoroso XHTML per un elemento span.

<!ELEMENT span %Inline;> <!-- generic language/style container -->
<!ATTLIST span
  %attrs;
  >

La parte "% Inline" mi dice che può avere nodi figlio da "% Inline;" elenco di elementi entità.

L'elemento span è incluso nell'elenco di elementi classificati come "% Inline", che combinato con lo span che consente gli elementi figlio "% Inline" mi dice che lo span è un figlio valido dello span.


29

SPAN può contenere solo elementi incorporati, come SPAN ecc.


6
Span farà quello che gli dico! span { display:block }: D
GreaterKing

Bene, non può ancora contenere elementi a livello di blocco, anche se lo rendi in stile blocco. A proposito, controlla anche che la mia risposta sia stata pubblicata 8 anni fa.
dusoft,

So che stavo solo cercando di creare lol ... e sì, "puoi" inserire elementi di blocco all'interno di span non è come se il browser esplodesse o altro ... ma è un po 'che non dovresti fare come regola empirica per seguire correttamente gli standard web sono tutto.
GreaterKing

Questo è il punto. Grazie agli standard Web non è più necessario attraversare il Web. Scherzi a parte, sono grato che li abbiamo.
dusoft,

1
Sì, metti H fuori dallo span e span all'interno di H.
dusoft il
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.