ネストされたスパンタグはXHTMLで問題ありませんか?


150

これはXHTMLで検証されますか?

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

この質問が何年にもわたって何百もの賛成票を集めたのかと思います。
リスター氏2018

1
@MrLister私が推測したところ、この記事が表示されたためと思います... :)
Andrew Truckle

回答:


142

はい、そうです。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
これは質問の「検証」の部分には答えますが、「OK」の部分には答えません。DTDは仕様のサブセットのみを記述できます。
クエンティン

87

もちろんです。

以下は、span要素のXHTML-strict DOCTYPEからの定義です。

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

「%Inline」の部分は、「%Inline」の子ノードを持つことができることを示しています。エンティティ要素リスト。

span要素は、「%Inline」として分類された要素のリストに含まれており、「%Inline」子要素を許可するspanと組み合わせると、spanがspanの有効な子であることがわかります。


29

SPANには、SPANなどのインライン要素のみを含めることができます。


6
スパンは私が言うことをします!span { display:block }:D
greatKing

まあ、それをブロックとしてスタイル設定しても、ブロックレベルの要素を含めることはできません。ところで、私の回答が8年前に投稿されたことも確認してください。
dusoft

私は笑を作成しようとしているだけだったのを知っています...そして、はい、ブラウザが爆発するようなものではないようにスパン内にブロック要素を「入れる」ことができます...しかし、適切に従うために経験則として行うべきでないものすべてのウェブ標準。
greatKing 2017年

それがポイントです。Web標準のおかげで、Webをハッキングする必要がなくなりました。冗談はさておき、私たちはそれらを持っていることを感謝しています。
dusoft

1
はい、H.内部スパンとスパンのうち、Hを置く
dusoft
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.