Czy zagnieżdżone znaczniki zakresu są prawidłowe w XHTML?

150

Czy to się sprawdzi w XHTML?

<span>hello<span>world</span></span>
stóg
źródło
Zastanawiam się, jak to pytanie przez lata zebrało setki głosów za.
Pan Lister
1
Wydaje mi się, że @MrLister, ponieważ właśnie wyszukałem w Google pytanie i pojawił się ten artykuł ... :)
Andrew Truckle

Odpowiedzi:

142

Tak, to będzie. Możesz sobie pomóc, korzystając z opcji bezpośredniego wprowadzania walidatora 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>
RichardOD
źródło
2
To odpowie na część pytania dotyczącą „walidacji”, ale nie na część „OK”. DTD może opisywać tylko podzbiór specyfikacji.
Quentin,
87

Absolutnie.

Oto definicja ze ścisłego XHTML DOCTYPE dla elementu span.

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

Część „% Inline” mówi mi, że może mieć węzły potomne z „% Inline”; lista elementów jednostek.

Element span jest zawarty na liście elementów sklasyfikowanych jako „% Inline”, co w połączeniu z span dopuszczającym elementy potomne „% Inline” mówi mi, że span jest prawidłowym elementem podrzędnym span.

joebert
źródło
29

SPAN może zawierać tylko elementy wbudowane, takie jak SPAN itp.

dusoft
źródło
6
Span zrobi, co mu każę! span { display:block }: D
GreaterKing
Cóż, nadal nie może zawierać elementów blokowych, nawet jeśli nadasz mu styl jako blok. Przy okazji, sprawdź też, czy moja odpowiedź została wysłana 8 lat temu.
dusoft
Wiem, że po prostu próbowałem stworzyć lol ... i tak, "możesz" umieścić elementy blokowe w środku, to nie jest tak, że przeglądarka eksploduje, czy cokolwiek ... ale to trochę, czego nie powinieneś robić z reguły, aby postępować zgodnie z właściwymi standardy sieciowe to wszystko.
GreaterKing
To jest punkt. Dzięki standardom sieciowym nie musisz już hakować sieci. Żarty na bok, jestem wdzięczny, że je mamy.
dusoft
1
Tak, umieść H poza rozpiętością i rozpiętość w H.
dusoft