7 HTML文書の大域的構造

7.1 HTML文書の構造への導入

HTML 4.0文書は次の三つの部分から構成される。

  1. HTML版情報を含む行。
  2. HEAD要素によって区切られる宣言ヘッダ部分。
  3. 文書の活動内容を含む本体部分。本体部分は,BODY要素又はFRAMESET要素によって実装されてよい。

スペース,改行,タブ及びコメントの空白部分は,各セクションの前又は後のいずれかで現われてよい。これら部分のうちのセクションである2及び3は,HTML要素によって区切られることが望ましい。

簡単なHTML文書の例を次に示す。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN"
   "http://www.w3.org/TR/REC-html40/strict.dtd">
<HTML>
   <HEAD>
      <TITLE>My first HTML document</TITLE>
   </HEAD>
   <BODY>
      <P>Hello world!
   </BODY>
</HTML>

7.2 HTML版情報

妥当なHTML文書は,文書で使用されているのがHTMLのどの版であるかを宣言する。 文書型宣言は,文書に使用される文書型定義(Document Type Declaration,以降DTD)に名前を付ける([ISO8879]参照)。

HTML 4.0は三つのDTDを指定するために,文書作成者は,文書で使用する次の文書型宣言の一つを含まなければならない。DTDは,サポートされる要素において様々に変化する。

各文書型宣言のURIによって,利用者エージェントは,DTD及び必要とされるあらゆる実体集合をダウンロードすることができる。次のURIは,W3CがサポートするHTML4.0のDTD及び実体集合を参照する。

SGML Open Consortium([SGMLOPEN]参照)によって勧告された書式に従い,カタログファイルを使用して,公開識別子とファイルとの間の結合を指定することができる。HTML 4.0のカタログファイルのサンプルは,HTMLのためのSGML参照情報のセクションの最初の箇所で取り込まれる。宣言の最後の2文字はDTDの言語を示す。HTMLの場合は,常に英語とし,"EN"と表示する。

7.3 HTML要素

<!ENTITY % html.content "HEAD, BODY">

<!ELEMENT HTML O O (%html.content;)    -- document root element -->
<!ATTLIST HTML
  %i18n;                               -- lang, dir --
  >

開始タグ: オプション,終了タグ: オプション

属性定義

version = cdata [CN]
推奨しない。 この属性の値は,どのHTML DTD版が現文書を支配するかを指定する。文書型宣言によって提供される版情報と共に指定すると冗長となるので,この属性は推奨されない。

他の箇所で定義される属性

文書型宣言の後のHTML文書の残りは,HTML要素によって包含される。 そのため,典型的なHTML文書は次の構造をもつ。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN"
"http://www.w3.org/TR/REC-html40/strict.dtd">
<HTML>
...The head, body, etc. goes here...
</HTML>

7.4 文書ヘッド

7.4.1 HEAD要素

<!-- %head.misc; defined earlier on as "SCRIPT|STYLE|META|LINK|OBJECT" -->
<!ENTITY % head.content "TITLE & BASE?">

<!ELEMENT HEAD O O (%head.content;) +(%head.misc;) -- document head -->
<!ATTLIST HEAD
  %i18n;                               -- lang, dir --
  profile     %URI;          #IMPLIED  -- named dictionary of meta info --
  >

開始タグ: オプション,終了タグ: オプション

属性定義

profile = uri [CT]
この属性は,空白によって区切られた複数のメタデータプロファイルの位置を指定する。将来的な拡張のために,この標準情報(TR)が最初のURIだけを重要と考えるとしても,利用者エージェントは,その値はリストであると考えるほうがよい。プロファイルは,メタデータで詳しく示す。

他の箇所で定義される属性

HEAD要素は,タイトル,検索エンジンに有益かもしれないキーワード,文書内容とは考えられないその他のデータなど,現文書に関する情報を含む。利用者エージェントは,一般に,HEADで内容として現われる要素をレンダリングしない。しかし利用者エージェントは,他の機構を通じてHEADにおける情報を利用者に提供してもよい。

7.4.2 TITLE要素

<!-- The TITLE element is not considered part of the flow of text.
       It should be displayed, for example as the page header or
       window title. Exactly one title is required per document.
    -->
<!ELEMENT TITLE - - (#PCDATA) -(%head.misc;) -- document title -->
<!ATTLIST TITLE %i18n>

開始タグ: 必須,終了タグ: 必須

他の箇所で定義される属性

すべてのHTML文書は,HEADセクションの中に一つのTITLE要素をもたなければならない

文書作成者は,TITLE要素を使用して,文書の内容を識別することが望ましい。利用者は文脈から文書を参照することが度々あるので,文書作成者は文脈に十分合致したタイトルを提供するほうがよい。そのため,"導入"など,文脈上の背景がわかりにくいタイトルではなく,"中世の養蜂への導入"などのタイトルを提供するのがよい。

アクセス可能性という理由のために,利用者エージェントは,常に利用者に対してTITLE要素の内容を利用可能にしなければならない。この場合,フレームの中に現れるTITLE要素も含めることに注意すること。要素の内容を利用するための機構は,例えば,表題,音声など,利用者エージェントに依存する。

タイトルは,アクセント付き文字,特殊な文字などに対応する文字実体を含んでもよいが,他のマーク付けは含んではならない。文書タイトルの例を次に示す。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN"
   "http://www.w3.org/TR/REC-html40/strict.dtd">
<HTML>
<HEAD>
<TITLE>A study of population dynamics</TITLE>
... other head elements...
</HEAD>
<BODY>
... document body...
</BODY>
</HTML>

7.4.3 TITLE属性

属性定義

title = text [CS]
この属性は,どの要素に対して設定されているかについて助言となる情報を提供する。

TITLE要素は,一つの文書全体に関する情報を提供し一度だけしか現われることができないが,title属性は,それとは異なり,数多くの要素に注釈をつけるために使用してもよい。この属性のサポートを検証するためには,要素の定義を参照すること。

title属性の値は,多様な方法で利用者エージェントによってレンダリングされる。例えば,視覚的ブラウザは,(マウスなどの)位置指定装置がオブジェクトの上で停止する場合に現われる短いメッセージなどの"ツールの参考情報"としてこの値を表示することがよくある。音声利用者エージェントは,同様の文脈でタイトル情報を音声として出力してもよい。例えば,リンクに関する属性を設定することによって,利用者エージェントは視覚的か非視覚的かを問わず,利用者にリンク資源の性質について知らせることができる。

...some text...
Here's a photo of 
<A href="http://someplace.com/neatstuff.gif" title="Me scuba diving">
   me scuba diving last summer
</A>
...some more text...

title属性は,LINK要素とともに使用され,外部スタイルシートを指定する場合には,付加的な役割をもつ。詳細については リンク及びスタイルシートを参照のこと。

備考  標準的な技術ではうまく処理できない場合に使用する音声合成の質を改善するために,HTMLの将来の版では,音素情報及び韻律的情報を符号化するための属性を含むかもしれない。

7.4.4 メタデータ

この標準情報(TR)の原規定が開発されている時点では,HTML文書及び他のネットワークアクセス可能な資源についての,機械が読取り可能でより内容豊富な情報を文書作成者が割り当て可能にする作業が進行中にある。W3Cの資源記述言語(Resource Description Language)([RDF]参照)は,メタデータについての共通フレームワークとして開発されつつある。

HTMLによって,文書作成者はメタデータ,すなわち,文書の内容ではなく文書に関する情報,を様々な方法で指定する。

例えば,文書の作成者を指定するために,META要素を使用してもよい。その例を次に示す。

<META name="Author" content="Dave Raggett">

META要素は,特性(この場合は"Author")を指定し,それに値(この場合は"Dave Raggett")を割り当てる。

この標準情報(TR)は,正当なメタデータ特性の集合を定義しない。特性の意味及びその特性に対する正当な値の集合は,プロファイルと呼ばれる参照規定で定義することが望ましい。例えば,検索エンジンの文書の索引付けを支援するように指定されたプロファイルは,"author","copyright","keywords"などの特性を定義するかもしれない。

メタデータの指定 

一般に,メタデータを指定するには,次の二つの段階を踏む。

  1. 特性及びその特性に対する値を宣言する。これには2通りある。
    1. META要素を通じて,文書内から宣言する。
    2. LINK要素を通じて,メタデータにリンクすることによって,文書外部から宣言する(リンク型参照) 。
  2. 特性及びその正当な値が定義されるプロファイルを参照する。プロファイルを指定するためには,HEAD要素のプロファイル属性を使用する。

プロファイルは,HEAD要素に対して定義されているので, 同じプロファイルが文書ヘッドのすべてのMETA要素及びLINK要素に適用される点に注意すること。

利用者エージェントは,メタデータ機構のサポートを要求されない。メタデータのサポートを選択する利用者エージェントに対して,この標準情報(TR)は,メタデータをどのように解釈するのがよいかを定義しない。

META要素 

<!ELEMENT META - O EMPTY               -- generic metainformation -->
<!ATTLIST META
  %i18n;                               -- lang, dir, for use with content --
  http-equiv  NAME           #IMPLIED  -- HTTP response header name  --
  name        NAME           #IMPLIED  -- metainformation name --
  content     CDATA          #REQUIRED -- associated information --
  scheme      CDATA          #IMPLIED  -- select form of content --
  >

開始タグ: 必須, 終了タグ: 禁止

属性定義

次の属性に対しては,許可された値及びその解釈は,プロファイル依存とする。

name = name [CS]
この属性は,特性名を識別する。この標準情報(TR)は,この属性に対して正当な値を列挙しない。
content = cdata [CS]
この属性は,特性の値を指定する。この標準情報(TR)は,この属性に対して正当な値を列挙しない。
scheme = cdata [CS]
この属性は,特性の値を解釈するために使用する方式に名前を与える。詳細については,プロファイルを参照すること。
http-equiv = name [CI]
この属性は,name属性の箇所で使用してもよい。HTTPサーバは,この属性を使用して,HTTP応答メッセージヘッダに関する情報を収集する。

他の箇所で定義される属性

META要素は,文書作成者,有効期限,キーワードリストなどの文書の特性を識別するために使用可能で,それら特性に値を割り当てることができる。この標準情報(TR)は,特性の規定として定める集合を定義しない。

META要素は,特性及び値の対を指定する。name属性は特性を識別し,content属性は特性の値を指定する。

例えば,次の宣言は,Author特性に対する値を設定する。

<META name="Author" content="Dave Raggett">

lang属性は,METAとともに使用し,content属性の値に対する言語を指定できる。これによって,音声合成器は言語依存の発音規則を適用できる。

次の例では,文書作成者の名前はフランス語で宣言されている。

<META name="Author" lang="fr" content="Arnaud Le Hors">

備考 META要素は,メタデータを指定するための一般的な機構とする。しかし,HTMLの要素及び属性の中には,すでにメタデータのある一部を処理するものがあり,文書作成者は,METAの代わりにそれら要素及び属性を使用して,メタデータの一部を指定してもよい。このような要素及び属性には,TITLE要素,ADDRESS要素,INS要素及びDEL要素,title属性,並びにcite属性がある。

備考  META要素によって指定される特性が値としてURIをとる場合,LINK要素を通じてメタデータを指定したいと考える文書作成者もいる。次にこの例を示す。

<META name="DC.identifier"
      content="ftp://ds.internic.net/rfc/rfc1866.txt">

このメタデータ宣言は,次のとおりに書き換えられるかもしれない。

<LINK rel="DC.identifier"
         type="text/plain"
         href="ftp://ds.internic.net/rfc/rfc1866.txt">
META及びHTTPヘッダ

文書がハイパテキスト転送プロトコル(Hypertext Transfer Protocol,以降HTTP)を通じて検索される場合,http-equiv属性は,name属性の位置で使用でき,特別な重要性をもつ。HTTPサーバは,http-equiv属性で指定される特性名を使用し,HTTP応答で[RFC822]スタイルヘッダを生成してもよい。有効なHTTPヘッダの詳細については,HTTP規定([RFC2068])を参照すること。

META宣言の例を次に示す。

<META http-equiv="Expires" content="Tue, 20 Aug 1996 14:25:27 GMT">

これはHTTPヘッダの中で次となる。

Expires: Tue, 20 Aug 1996 14:25:27 GMT

キャッシュがこれを利用して,関連文書の新しいものを取り出す時を決定できる。

METAの使用をサポートし異なるURIで置き換えるという選択をすることで,指定された何秒かの後に現ページを再表示する利用者エージェントもある。

<META http-equiv="refresh" content="3,http://www.acme.com/intro.html">

内容には,秒単位の遅れを指定する数値と,その後に,時間切れの場合にロードするURIとが続く。この機構は,一般に,利用者にすぐに消える前置き的なページを見せるために使用される。しかし,この機構をサポートしない利用者エージェントもあるので,文書作成者は,前置き的なページの内容を取り込み,利用者がそのページから離れて移動できるようにするのがよい。そうすることで,利用者が前置き的なページで"立往生"し続けることはない。

META及び検索エンジン

METAの共通的な使用法に,検索エンジンが検索結果の質を向上するために使用してもよいキーワードの指定がある。文書に関する言語依存の情報を提供するMETA要素がある場合,検索エンジンは,lang属性でろ過をし,利用者が望む言語を使用して検索結果を表示してもよい。この例を次に示す。

<-- For speakers of US English -->
<META name="keywords" lang="en-us" 
         content="vacation, Greece, sunshine">
<-- For speakers of British English -->
<META name="keywords" lang="en" 
         content="holiday, Greece, sunshine">
<-- For speakers of French -->
<META name="keywords" lang="fr" 
         content="vacances, Gr&egrave;ce, soleil">

同様に,LINK要素を使用して,他言語による文書の翻訳へのリンク,PDFなど別メディアによる文書の版へのリンク,及び文書がある集合の一部である場合にはその集合を閲覧するための適切な開始点へのリンク,を指定することによって,検索エンジンの効果を増すこともできる。

ヘルプの詳細については,検索エンジンのウェブサイト索引付け支援で提供される。

META及びPICS
インタネット内容選択用のプラットフォーム([PICS]で規定されるPICS,Platform for Internet Content Selection,のこと)は,ラベル(メタデータ)とインタネット内容とを関連づけるための基盤とする。元来は,子供がインタネット上でアクセスできるものを,親及び教師が制御するのを手助けをするために設計されたのだが,符号署名,プライバシ,及び知的財産権管理を含む各種ラベルの他の使用も容易にする。

META宣言を使用してPICS 1.1ラベルを取り込む例を次に示す。

<HEAD>
 <META http-equiv="PICS-Label" content='
 (PICS-1.1 "http://www.gcf.org/v2.5"
    labels on "1994.11.05T08:15-0500"
      until "1995.12.31T23:59-0000"
      for "http://w3.org/PICS/Overview.html"
    ratings (suds 0.5 density 0 color/hue 1))
 '>
  <TITLE>... document title ...</TITLE>
</HEAD>
META及びデフォルト情報

META要素を使用して,次のインスタンスで文書に対するデフォルト情報を指定してもよい。

文書の文字符号化をISO-8859-5として指定する例を次に示す。

<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-5"> 

メタデータのプロファイル 

HEADprofile属性は,メタデータプロファイルの位置を指定する。profile属性の値はURIとする。利用者エージェントは,このURIを次の二つの方法で使用してよい。

次の例は,文書索引付けのために有用な特性を定義する仮のプロファイルを参照している。このプロファイル,すなわち,"author", "copyright", "keywords"及び"date"を含むもの,によって定義された特性は,後続のMETA宣言によって設定される値をもつ。

 <HEAD profile="http://www.acme.com/profiles/core">
  <TITLE>How to complete Memorandum cover sheets</TITLE>
  <META name="author" content="John Doe">
  <META name="copyright" content="&copy; 1997 Acme Corp.">
  <META name="keywords" content="corporate,guidelines,cataloging">
  <META name="date" content="1994-11-06T08:49:37+00:00">
 </HEAD>

この標準情報(TR)の原規定が開発されている時点では,[RFC2068]の3.3で示された日付書式を使用することが共通的な手段となっている。これらの書式は相対的に処理が難しいので,文書作成者には,[ISO8601]の日付書式を使用することを推奨する。より多くの情報を入手したい場合は,INS要素及びDEL要素 を参照すること。

scheme属性によって,文書作成者は利用者エージェントにメタデータの正しい解釈のためにより多くの文脈を提供することができる。メタデータが異なる書式で指定されてもよい場合と同様に,これら付加的な情報が非常に重要となることがあってもよい。例えば,文書作成者が"10-9-97"というあいまいな書式で日付を指定するかもしれない。この場合,これは1997年10月9日という意味なのか,1997年9月10日という意味なのか,明確ではない。scheme属性値"月-日-年"は,この日付の値のあいまいさを取り除く。

scheme属性は,有益だが重要ではない情報を利用者エージェントに提供してもよい。

例えば,次のscheme宣言は,利用者エージェントが"識別子"特性の値をISBNコード番号と決定することを支援してもよい。

<META scheme="ISBN"  name="identifier" content="0-8230-2355-9">

scheme属性のための値は,特性name及び関連するprofileに依存する。

備考  プロファイルの一例には,Dublin Coreがある([DCORE]参照)。このプロファイルは,電子参考文献記述用の推奨する特性の集合を定義し,互いに独立に開発された定義モデル間の相互運用性の促進を意図している。

7.5 文書本体

7.5.1 BODY要素

<!ELEMENT BODY O O (%block;|SCRIPT)+ +(INS|DEL) -- document body -->
<!ATTLIST BODY
  %attrs;                              -- %coreattrs, %i18n, %events --
  onload          %Script;   #IMPLIED  -- the document has been loaded --
  onunload        %Script;   #IMPLIED  -- the document has been removed --
  >

開始タグ: オプション, 終了タグ: オプション

属性定義

background = uri [CT]
推奨しない。 この属性の値は,画像資源を指定するURIとする。画像は,視覚的ブラウザでは,一般に背景をタイル状に埋める。
text = color [CI]
推奨しない。 この属性は,視覚的ブラウザに対してテキストの前景の色を設定する。
link = color [CI]
推奨しない。 この属性は,視覚的ブラウザに対して,まだ訪れていないハイパテキストリンクをマークするテキストの色を設定する。
vlink = color [CI]
推奨しない。 この属性は,視覚的ブラウザに対して,既に訪れたハイパテキストリンクをマークするテキストの色を設定する。
alink = color [CI]
推奨しない。 この属性は,視覚的ブラウザに対して,利用者が選択した時にハイパテキストリンクをマークするテキストの色を設定する。

他の箇所で定義される属性

文書の本体は,文書の内容を含む。内容は,利用者エージェントが多様な方法で表示してよい。例えば,視覚的ブラウザでは,本体を,テキスト,画像,色,図形などの内容が現われる描画面として考えることができる。音声用の利用者エージェントの場合,同じ内容が音声で表されてよい。現在では,文書の表示を指定する方法としては,スタイルシートの使用が望ましいので,BODYの表示的な属性は,推奨されない

推奨しない例
次のHTML素片は推奨しない属性の使用を示している。描画面の背景の色を白に,テキストの前景の色を黒に設定し,ハイパリンクの色は,最初は赤に,活性化された場合は紅紫に,一度訪れた場合は,えび茶に設定する。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"
   "http://www.w3.org/TR/REC-html40/loose.dtd">
<HTML>
<HEAD>
 <TITLE>A study of population dynamics</TITLE>
</HEAD>
<BODY bgcolor="white" text="black"
  link="red" alink="fuchsia" vlink="maroon">
  ... document body...
</BODY>
</HTML>

スタイルシートを使用すれば,同じ効果を次のとおりにして達成できる。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN"
   "http://www.w3.org/TR/REC-html40/strict.dtd">
<HTML>
<HEAD>
 <TITLE>A study of population dynamics</TITLE>
 <STYLE type="text/css">
  BODY { background: white; color: black}
  A:link { color: red }
  A:visited { color: maroon }
  A:active { color: fuchsia }
 </STYLE>
</HEAD>
<BODY>
  ... document body...
</BODY>
</HTML>

外部の(リンクされた)スタイルシートを使うことで,ソースHTML文書を改訂せず表示を変更可能にする柔軟性が得られる。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN"
   "http://www.w3.org/TR/REC-html40/strict.dtd">
<HTML>
<HEAD>
 <TITLE>A study of population dynamics</TITLE>
 <LINK rel="stylesheet" type="text/css" href="smartstyle.css">
</HEAD>
<BODY>
  ... document body...
</BODY>
</HTML>

フレーム集合及びHTML本体については,次のことに注意すること。フレーム集合を含む文書は,そのFRAMESET要素によってBODY要素を置き換える。より多くの情報を入手したい場合は,フレームを参照すること。

7.5.2 要素識別子(id属性及びclass属性)

属性定義

id = name [CS]
この属性は,名前を要素に割り当てる。この名前は,文書の中で一意でなければならない。
class = cdata-list [CS]
この属性は,クラス名又はクラス名の集合を要素に割り当てる。同じ一つのクラス名又は複数のクラス名(の集合)に任意の数の要素を割り当ててもよい。クラス名が複数の場合は,空白文字によって区切られなければならない。
id属性は,一意な識別子を(SGMLパーサによって検証される可能性がある)要素に割り当てる。例えば,次の段落は,そのid値によって区別される。

<P id="myparagraph"> This is a uniquely named paragraph.</P>
<P id="yourparagraph"> This is also a uniquely named paragraph.</P>

id属性は,HTMLでは幾つかの役割をもつ。それを次に示す。

一方,class属性は複数のクラス名を一つの要素に割り当てる。すなわち,その要素はこれらのクラスに属する言ってよい。クラス名は,幾つかの要素インスタンスによって共有されてもよい。class属性は,HTMLにおいて幾つかの役割をもつ。それを次に示す。

次のでは,SPAN要素がid属性及びclass属性と連結して使用され,文書メッセージをマーク付けしている。メッセージは,英語版及びフランス語版の両方で現われる。

<!-- English messages -->
<P><SPAN id="msg1" class="info" lang="en">Variable declared twice</SPAN>
<P><SPAN id="msg2" class="warning" lang="en">Undeclared variable</SPAN>
<P><SPAN id="msg3" class="error" lang="en">Bad syntax for variable name</SPAN>
<!-- French messages -->
<P><SPAN id="msg1" class="info" lang="fr">Variable d&eacute;clar&eacute;e deux fois</SPAN>
<P><SPAN id="msg2" class="warning" lang="fr">Variable ind&eacute;finie</SPAN>
<P><SPAN id="msg3" class="error" lang="fr">Erreur de syntaxe pour variable</SPAN>

次のCSSスタイル規則は,視覚的利用者エージェントに,情報提供用メッセージを緑色で,警告メッセージを黄色で,エラーメッセージを赤で表示するように命じている。

SPAN.info    { color: green }
SPAN.warning { color: yellow }
SPAN.error   { color: red }

フランス語の"msg1"及び英語の"msg1"は,同じid値を共有するので,同じ文書には現われてはいけない点に注意すること。文書作成者は,id属性をさらに活用して,個々のメッセージの表示を洗練し,それらをターゲットアンカなどにしてもよい。

ほとんどすべてのHTML要素には,識別子情報及びクラス情報を割り当ててよい。

例えば,プログラム言語に関する文書を書いていると仮定する。文書は,事前にフォーマット済みの例を数多く取り込むものとする。その場合,PRE要素を使用してそれらの例をフォーマットする。同様に,背景の色である緑をクラス"example"に属するPRE要素のすべてのインスタンスに割り当てる。

<HEAD>
<TITLE>... document title ...</TITLE>
<STYLE type="text/css">
PRE.example { background : green }
</STYLE>
</HEAD>
<BODY>
<PRE class="example" id="example-1">
...example code here...
</PRE>
</BODY>

この例にid属性を設定することによって,それにハイパリンクを生成し,インスタンススタイル情報でクラススタイル情報を上書きできる。

備考  id属性は,アンカ名に対して使用される場合は,name属性と同じ名前空間を共有する。より多くの情報を入手したい場合は,idを有するアンカを参照すること。

7.5.3 ブロックレベル要素及び行内要素

BODYで現われてよいHTML要素には,"ブロックレベル"というものもあれば,"テキストレベル"としても知られる"行内"というものもある。その違いは,次の幾つかの概念に基づいている。

内容モデル
一般に,ブロックレベル要素は,行内要素及び他のブロックレベル要素を包含してよい。一般に,行内要素は,データ及び他の行内要素だけを包含してよい。この構造的な差異に受け継がれているのは,ブロック要素は行内要素よりも"大きな"構造を生成するという考えである。
フォーマット化
デフォルトで,ブロックレベル要素は,行内要素とは異なる方法でフォーマット化される。一般に,ブロックレベル要素は新しい行で始まるが,行内要素はそうではない。空白,行区切り及びブロックフォーマット化に関する情報については,テキストを参照すること。
方向性
[UNICODE]の双方向性テキストアルゴリズムを含む技術的な理由のために,ブロックレベル要素と行内要素とは,方向性情報を継承する方法で異なっている。詳細については,テキスト方向の継承を参照すること。

スタイルシートは,要素がブロックとしてレンダリングされるか,又は行内としてレンダリングされるかを含んだ任意の要素レンダリングの指定手段を提供する。リスト要素に対する行内スタイルなどの場合,これは適切かもしれないが,一般的にいえば,文書作成者がこの方法でHTML要素の通常の解釈を上書きすることは望ましくない。

ブロックレベル要素及び行内要素に対する従来の表示イディオムを変更することは,双方向性テキストアルゴリズムにも影響を与える。より多くの情報を入手したい場合には,双方向性におけるスタイルシートの効果を参照すること。

7.5.4 グループ化要素(DIV要素及びSPAN要素)

<!ELEMENT DIV - - (%flow;)*            -- generic language/style container -->
<!ATTLIST DIV
  %attrs;                              -- %coreattrs, %i18n, %events --
  >
<!ELEMENT SPAN - - (%inline;)*         -- generic language/style container -->
<!ATTLIST SPAN
  %attrs;                              -- %coreattrs, %i18n, %events --
  >

開始タグ:必須,終了タグ: 必須

他の箇所で定義される属性

DIV要素及びSPAN要素は,id属性及びclass属性と連結して, 構造を文書に付加するための一般的な機構を提供する。これらの要素は,内容が行内(SPAN)又はブロックレベル(DIV)であると定義するが,内容に関する他の表示イディオムを強要することはない。そのため,文書作成者はこれらの要素をスタイルシートlang属性などと連結して使用し,HTMLを文書作成者自身の必要性及び好みに調整してよい。

例えば,クライアント情報のデータベースに基づくHTML文書を生成したいとする。HTMLは,"クライアント","電話番号","メールアドレス"などのオブジェクトを識別する要素を含まないので,DIV及びSPANを使用して,望みどおりの構造的効果及び表示的効果を達成する。次のようにTABLE要素を使用して情報を構造化するかもしれない。

<!-- Example of data from the client database: -->
<!-- Name: Stephane Boyera, Tel: (212) 555-1212, Email: sb@foo.org -->

<DIV id="client-boyera" class="client">
<P><SPAN class="client-title">Client information:</SPAN>
<TABLE class="client-data">
<TR><TH>Last name:<TD>Boyera</TR>
<TR><TH>First name:<TD>Stephane</TR>
<TR><TH>Tel:<TD>(212) 555-1212</TR>
<TR><TH>Email:<TD>sb@foo.org</TR>
</TABLE>
</DIV>

<DIV id="client-lafon" class="client">
<P><SPAN class="client-title">Client information:</SPAN>
<TABLE class="client-data">
<TR><TH>Last name:<TD>Lafon</TR>
<TR><TH>First name:<TD>Yves</TR>
<TR><TH>Tel:<TD>(617) 555-1212</TR>
<TR><TH>Email:<TD>yves@coucou.com</TR>
</TABLE>
</DIV>

後で,スタイルシート宣言を簡単な方法で付加して,これらのデータベースエントリの表示を細かく調整してもよい。

別の使用例については,class属性及びid属性における例を参照すること。

視覚的な利用者エージェントは,一般にDIV要素の前後に行区切りを入れる。その例を次に示す。

<P>aaaaaaaaa<DIV>bbbbbbbbb</DIV><DIV>ccccc<P>ccccc</DIV>

この例は,通常は次のとおりにレンダリングされる。

aaaaaaaaa
bbbbbbbbb
ccccc

ccccc

7.5.5 見出し(H1, H2, H3, H4, H5, H6要素)

<!ENTITY % heading "H1|H2|H3|H4|H5|H6">
<!--
  There are six levels of headings from H1 (the most important)
  to H6 (the least important).
-->

<!ELEMENT (%heading;)  - - (%inline;)* -- heading -->
<!ATTLIST (%heading;)
  %attrs;                              -- %coreattrs, %i18n, %events --
  >

開始タグ: 必須,終了タグ: 必須

他の箇所で定義される属性

見出し要素は,その要素が導入する部分の内容を簡単に示すものとする。見出し情報は,例えば,文書の目次を自動的に構成するために,利用者エージェントによって使用される。

HTMLの見出しには6レベルある。最も重要なH1から始まり,最も重要性の低いH6までとする。視覚的ブラウザは,通常,重要性の高い見出しを重要性の低い見出しより大きなフォントでレンダリングする。

次の例では,DIV要素を使用して,見出しとそれに続く文書のセクションとを関連づける方法を示している。こうすることによって,背景の色,フォントの設定などのそのセクションのためのスタイルをスタイルシートで定義できる。

<DIV class="section" id="forest-elephants" >
<H1>Forest elephants</H1>
<P>In this section, we discuss the lesser known forest elephants.
...this section continues...
<DIV class="subsection" id="forest-habitat" >
<H2>Habitat</H2>
<P>Forest elephants do not live in trees but among them.
...this subsection continues...
</DIV>
</DIV>

この構造は,次のスタイル情報で修飾されてもよい。

<HEAD>
<TITLE>... document title ...</TITLE>
<STYLE type="text/css">
DIV.section { text-align: justify; font-size: 12pt}
DIV.subsection { text-indent: 2em }
H1 { font-style: italic; color: green }
H2 { color: green }
</STYLE>
</HEAD>

番号付けされたセクション及び参照
HTML自体が,セクションの番号を見出しから生成させることはない。しかし,利用者エージェントがこの機能を提供してもよい。今後は,CSSなどのスタイルシート言語によって,文書作成者は,セクション番号の生成を制御できるようになると予想される。"7.2参照"におけるように,セクション番号は印刷された文書での前方参照に便利である。

見出しレベルの飛越しはよくないと考える人もいる。H1 H2 H1は認めるが,H1 H3 H1は認めない。その理由は,見出しレベルH2を飛ばしているからである

7.5.6 ADDRESS要素

<!ELEMENT ADDRESS - - (%inline;)* -- information on author -->
<!ATTLIST ADDRESS
  %attrs;                              -- %coreattrs, %i18n, %events --
  >

開始タグ: 必須,終了タグ: 必須

他の箇所で定義される属性

ADDRESS要素は,文書,又はフォームなど文書の主要部分に対して,連絡先情報を提供するために文書作成者が使用してもよい。この要素は,文書の最初又は最後に現われることが多い。

例えば,HTMLに関係したW3C Webサイトのページは,次の連絡先情報を含む。

<ADDRESS>
<A href="../People/Raggett/">Dave Raggett</A>, 
<A href="../People/Arnaud/">Arnaud Le Hors</A>, 
contact persons for the <A href="Activity">W3C HTML Activity</A><BR> 
$Date: 1998/04/02 00:20:03 $
</ADDRESS>