Apakah tag rentang bersarang OK di XHTML?

150

Apakah ini akan divalidasi dalam XHTML?

<span>hello<span>world</span></span>
Rick
sumber
Saya bertanya-tanya bagaimana pertanyaan ini berhasil mengumpulkan ratusan upvote selama bertahun-tahun.
Tn. Lister
1
@ Tuan, saya kira karena saya baru saja mencari pertanyaan di Google dan artikel ini muncul ... :)
Andrew Truckle

Jawaban:

142

Ya, tentu saja. Anda dapat membantu diri sendiri dengan menggunakan opsi input langsung validator 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
sumber
2
Itu akan menjawab bagian "validasi" dari pertanyaan, tetapi bukan bagian "OK". DTD hanya dapat menggambarkan subset dari spesifikasi.
Quentin
87

Benar.

Berikut definisi dari DOCTYPE-ketat XHTML untuk elemen span.

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

Bagian "% Inline" memberi tahu saya bahwa ia dapat memiliki simpul anak dari "% Inline;" daftar elemen entitas.

Elemen span dimasukkan dalam daftar elemen yang digolongkan sebagai "% Inline", yang dikombinasikan dengan span yang memungkinkan "% Inline" elemen anak memberi tahu saya bahwa span adalah anak rentang yang valid.

joebert
sumber
29

SPAN hanya dapat berisi elemen sebaris, seperti SPAN dll.

dusoft
sumber
6
Span akan melakukan apa yang saya katakan! span { display:block }: D
GreaterKing
Yah, itu masih tidak bisa mengandung elemen level blok, bahkan jika Anda membuatnya ditata sebagai blok. BTW, periksa juga bahwa jawaban saya diposting 8 tahun yang lalu.
dusoft
Saya tahu itu hanya mencoba membuat lol ... dan ya Anda "bisa" meletakkan elemen blok di dalam bentangnya tidak seperti browser akan meledak atau apa pun ... tapi itu beberapa yang tidak boleh Anda lakukan sebagai patokan untuk mengikuti dengan benar standar web itu saja.
Greater King
Itu intinya. Berkat standar web, Anda tidak perlu meretas jalan lagi melalui web. Di samping bercanda, saya bersyukur kita memilikinya.
dusoft
1
Ya, singkirkan H dari bentang dan bentang di dalam H.
dusoft