制作者(webmaster)
野嵜健秀(Takehide Nozaki)
改訂
2002-10-07
覺書
「文書構造の再定義にdivを用ゐる?」の記述は、今となつては書直したい處ですが、準備が出來てゐないので當座、放置。2004-11-23

div

文書に構造を追加する一般的なメカニズムとして提供されてゐるブロック要素です。

汎用屬性のclass、id、title、style、lang、dir(、xml:lang)が使用可能です。

ISO-HTML

address要素を記述出來るのは、field要素の中、object要素の中以外ではdiv要素の中だけです。文書の階層構造を重視するISO/IEC 15445:2000では、「文書の制作者の聯絡先を明示するaddress」の記述を禁止或は否定し、文書内の特定の記述に關する聯絡先をのみ記述出來るやうに仕樣が策定されてゐるやうです。(私見です)

メモ(私見)

文書構造の再定義にdivを用ゐる?

HTMLはもともと、單純に要素を竝べるだけのものとして定義されてゐます。しかし、ツリー状の文書構造を明示すべきだと云ふ考へから、章・節を明示する「section要素」を導入すべきだ、と云ふ意見が最近、聞かれるやうになつてゐます。

HTMLに詳しい人々の中でも、特に「急進的」な人々が、div要素を用ゐて文書の中のブロック要素をグループ化し、構造を再定義するやり方を、積極的に用ゐてゐます。CSSを積極的に用ゐる人々も、さう云ふ記述を用ゐてゐます。

後者が、所謂「物理マークアップ」と同樣の發想に基く以上、好ましいものと言へないのは當然ですが、前者のやり方にも問題が生ずる場合があります。

p要素やblockquote要素、ul/ol/dlといつたリスト關係の要素をdiv要素でグループ化するのは、必ずしも問題があるとは言へません。しかし、さう云ふ要素と共に、h1〜h6の見出し要素をもdiv要素中に含めよるべきだ、と云ふ意見を強く主張する人がゐます。

HTML 4.01やXHTMLのDTDを見ると、div要素はh1〜h6要素を含み得ます。ですから、さう云ふ人々の主張の内容は、決して不當である譯ではありません。

しかし、現状のHTMLは、olやdl/dt/ddのやうに、出現する順番が意義を持つてゐる場合が屡々あります。そして、例へば、dtとddのセットを明示する方法は、ワンセットのdtとddが出現した時點でdlを一々終了する、と云ふ方法以外に、現状ありませんし、それでもそのワンセットのdtとddとの間に必然的な關聯があるとは斷定出來ません。逆に、さう云ふ「曖昧」な形でHTMLと云ふマーク附け言語の規則が定められてゐると考へると、ISO/IEC 15445:2000の「見出しレヴェル」の概念も不當なものとは言へません。

取敢ず「竝び順」で構造の整理整頓を行ふ、と云ふのが、レガシーなHTMLの考へ方だと思はれます。繰返し書いておきますが、飽くまで、現状のHTMLにおいては、と云ふ事です。

そして、さう云ふ「曖昧」なHTMLの問題を解決する爲、XHTML 2.0では以下のやうに用ゐられる「section要素」が檢討されてゐると言はれてゐます。The XHTML Family - slide "XHTML 2.0 (3)"

豫想される使用例

hが見出し、sectionが、下位の見出しと段落等を含む節を示す、と云ふもので、まあ、妥當と言へば妥當な仕樣でせう。問題は、h1〜h6を一般化した「h要素」が既存のユーザエージェントで認識されないだらう、と云ふ事です。その點さへクリア或は無視すれば、ツリー構造で文書構造を明示するやり方としては、惡くありません。

しかし、かう云ふ「section要素」の代りに既存のdiv要素を用ゐて、「h要素」ではなく既存のh1〜h6を用ゐた文書の構造を再定義するのは、よろしくないやうな氣がします。

「出現順序と隣接關係によつて要素の意義が決る」と云ふレガシーなHTMLにおける記法と、「包含關係(入れ子關係)によつて要素の意義が決る」と云ふ「近代的」なHTMLの記法とは、異質なものです。スキーマ言語のDTDとRELAX NGが異質であるのと同じやうに、異質なものです。

XML推進派の人々が、ツリー状に要素を構成するマーク附けの有用性を説くのは、不當な事ではありません。しかし、現状のフラットな構造を前提にした仕樣に基いて書かれてゐるHTML文書に、ツリー構造を持込むのは、繼接ぎの感が否めません。しかも、そのツリー構造の構成法が、既存のHTMLにおける構造とは微妙に異つてゐるやうに思はれます。それが私は氣に入らない。

ISO/IEC 15445:2000の想定する「HTML文書の構造」が、現状のHTMLにおける見出しレヴェルの解釋としては妥當であるとしか、私には考へられません。逆に、「見出しと段落をまとめてdivに包含して節を明示すべきだ」と云ふ考へ方を採用した場合、定義リストで對應するdtとddをまとめて包含する要素が存在しない現状のHTMLの仕樣は、極めて拙いものだと云ふ事になります。

現状のHTMLの理念が、高度な階層化を想定したものではなく、要素を並べる事を前提としてゐる以上、divによる文書構造の再定義は、現時點では、HTMLの仕様に不整合を齎すものと言はざるを得ません。CSSの利用の爲といつた用途でdivによるブロック要素のグループ化は、飽くまで便宜的なものだと認識しておくべきです。

XHTML 1.0/1.1は、從來のSGMLベースのHTMLを、ただ單にXMLで書直したものに過ぎません。さらに言ふならば、SGMLベースのHTMLと云ふものも、もともとは非SGMLのマーク附け言語であつたHTMLをベースにしてゐる、と云ふ事を、忘れてはなりません。

現状、HTMLの仕樣は、依然として便宜主義に基いてゐるのであり、現状の「理想的なHTML文書の記法」もまた、依然として便宜主義の制約下にあります。XMLの規則に基いてHTMLを定義し直したXHTMLは、現時點で發展途上のものでしかありません。SGMLベースのHTMLを、SGML/HTMLの理念に基いて發展させたISO/IEC 15445:2000も、不自然な代物でしかありません。

參考