Hatena::Groupweb

vantguarde

 | 

12.9

HTML4とXHTML1ではbuttonの中にtableを入れられる

| 21:13

<input type=button><button>の違いはなんだろうという疑問に答えていたら、XHTML1の<button>にはブロック要素やら<table>を入れられることを知りました。なんと。

<!-- button uses %Flow; but excludes a, form and form controls -->

<!ENTITY % button.content
   "(#PCDATA | p | %heading; | div | %lists; | %blocktext; |
    table | %special; | %fontstyle; | %phrase; | %misc;)*">

ほんと。あらまあ。

ただHTML5の<button>は内容モデルがphrasing contentなので、ブロックや<table>は入れられません。改悪!(勢いだけ

表やリストをボタンにする意義などは横においといて、<button><table>…</table></button>なんて書いてほんとに意図したDOMが生成されるのか疑問に思って試したら、ふつうにボタンの中に表がでてきてすこしびっくりしました。tableの開始タグが出てきたらbutton要素は終了するのかなあと思ってたので。

ただ、<p><button><table>…</table></button>とかにするとOperaとかでは意図通りというか、tableが外に出ました(HTML5パーサだと引き続きpの孫だった)。ふーむ。

まあ、non-conformingになったし、使い道も思い浮かばないのでいいか……

oogattaoogatta2010/12/21 15:44質問です!。 button って今見ると Flow Content なのですが、やっぱり table 入れたら conform しないのでしょうか…?

oogattaoogatta2010/12/21 16:02失礼しました!。 Category と Content Model を見間違ってました…。

 | 
Contact: @vant / lepetitcroissant@gmail.com.