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.