7 HTML文書構造の概略

内容

  1. HTML文書構造紹介
  2. HTMLバージョン情報
  3. HTML要素
  4. 文書頭部(ヘッダ)
    1. HEAD要素
    2. title要素
    3. title属性
    4. メタ・データ
  5. 文書体部(ボディ)
    1. BODY要素
    2. 要素識別:idclass属性
    3. ブロック・レベルとインライイン要素
    4. 要素のグループ化:DIVSPAN要素
    5. 見出し(Headings):H1H2, H3, H4, H5, H6要素
    6. 署名(ADDRESS)要素

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 は、文書に使われる文書型定義(document type definition: DTD)を指します(参照:[ISO8879])。

 HTML 4.0仕様書には三つのDTDがあり、次の文書型定義から一つを選び文書に記載しなければなりません(must)。三つは、サポートしている要素が異なっています。

 各文書型定義にあるURIは、ブラウザがそのDTDと必要なentity setsを保存できるようにします。次の場所に、W3CがサポートするHTML 4.0のDTDsと実体の組(entity sets)があります:

 公開識別子とファイルの結び付きは、SGML Open Consortium (see [SGMLOPEN])によって勧告されている形式に従ったカタログ・ファイルで特定されています。 sample catalog file for HTML 4.0には、HTMLのSGML参照情報セクションがあります。定義の最後の二文字は、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 --
  >

開始タグ:選択(optional)、終了タグ:選択(optional)

属性の定義

version = cdata [CN]
不適切な(Deprecated),この属性は、文書がDTDのどのバージョンで書かれているかを特定します。文書型定義に記載するので、version informationは余分なものになりますので、いずれ廃止されます。

別に定義されている属性

 文書型定義に続いて、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 --
  >

開始タグ:選択(optional)、終了タグ:選択(optional)

属性の定義

profile = uri [CT]
この属性は、メタ・データのプロフィルを一つ以上スペースで区切って特定します。この仕様書では最初のURIしか意味を持たないにしても、将来の拡張に備えてリストされている値について知っておくべきです。(Profilesの議論はmeta dataにあります。)

別の所で定義されている属性

 HEAD要素には、タイトル・検索エンジンに有益なキーワード・文書内容には直接関わらないその他のもなどその文書についての情報を記載します。ブラウザは、 HEAD内の要素を、文書内容のように普通表示しません。しかし、 HEAD内の情報を別の機序によってユーザーは得ています。

7.4.2 TITLE要素

<!-- タイトルは一連のテキストとは考えられていません。
      ページヘッダや画面タイトルとして表現されるものです。
      一つの文書に一つのタイトルが必要です。
    -->
<!ELEMENT TITLE - - (#PCDATA) -(%head.misc;) -- document title -->
<!ATTLIST TITLE %i18n>

開始タグ:必須(required)、終了タグ:必須(required)

別の所で定義されている属性

 すべての文書のHEAD部分に一つのTITLE要素を記載しなければなりません。

  文書の内容にそったTITLE要素をかかなければなりません。ユーザーは文脈を離れて文書を見るので、制作者は文脈にそったタイトルを書いておかなければなりません。"Introduction"といったものではなく、"Introduction to Medieval Bee-Keeping"といったものにすべきです。

 アクセスしやすさという観点から制作者は常に、ユーザーが 分かりやすい 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 タイトル属性

属性の定義

タイトル = テキスト [CS]
この属性は、それが設定されている要素についての説明的情報を提供します。

 文書自体の情報を提供し一回しか現われない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要素と一緒に使うと、外部スタイル・シート(external style sheet)に補足的役割を与えます。 詳しくは、 links and style sheetsを見てください。

注意(ノート)。標準技術ではうまく処理できない場合読み取りの質を向上するには、新しいHTMLバージョンで音声・韻律情報コード化の属性が追加されるかもしれません。

7.4.4 追加データ(メタ・データ)

 この仕様書がかかれているなら、HTML文書やその他のネットワークアクセス可能な資料についての機械が読める情報を得ることができます。W3CResource Description Languageは、追加データ用のネットワーク網として発展しました(参照:[RDF])。

追加データを制作者が色々なやり方で設定できます(文書内容ではなく、文書についての情報)。

 例えば、文書の制作者を設定するにはMETA要素を次のように書きます:

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

 META要素で特性(この例では制作者 Author)を設定しそれに値(この例では Dave Raggett)を記載します。

 この仕様書では追加データ特性を定義していません。特性の意味やその特性の正しい値についてはprofileと呼ばれる参照辞典で定義されねばなりません。例えば検索エンジン用のインデックス文書用のプロフィール(profile)には、"author"・"copyright"・"keywords"などの特性を定義します。

追加データ(メタ・データ)の設定

 一般的には、追加データを設定するには二段階あります:

  1. 特有性(プロパティ)とその値を宣言します。これには二通りの方法があります:
    1. 文書内の META要素に書く。
    2. 文書外に書き、 LINK要素でリンクする(参照: link typesセクション)。
  2. 特性やその正しい値が定義されているプロフィール (profile)を参照する。プロフィールを指定するには、 HEAD要素のprofile属性を使う。

 プロフィールはHEAD要素で定義されるので、文書の全ての META and LINK要素に適用されます。

 ブラウザが追加データ機構をサポートする必要はありません。この仕様書は、追加データのサポートの選択のために追加データをどのように定義するかを決めていません。

The 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 --
  >

開始タグ:必須、終了タグ:禁止(書きません)

属性の定義

 以下の属性に許されている値とその意味は、profileに依存しています:

name = name [CS]
この属性で特性(プロパティ)の名前を指定します。仕様書ではこの属性の正式な値はリストしていません。
content = cdata [CS]
この属性で特性(プロパティ)の値を設定します。特に正式な値のリストはありません。
scheme = cdata [CS]
この属性で設計(scheme)を銘々し、特性(プロパティ)の値を解釈します(詳しくはprofilesセクションを参照)。
http-equiv = name [CI]
この属性は、name属性の所で使われます。HTTPサーバーはこの属性をみてHTTP反応ヘッダー(HTTP response message headers)の情報を集めます。

その他の属性定義

 META要素は、文書の特性を識別する(例: 著者・期限日付・キー・ワード・リストなど) のに使われ、属性に値を割り当てます。仕様書には、公式な特有値(プロパティ)を定義していません。

 META要素には、組になった特性/値(property/value)を特定します。 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要素・ INSDEL要素・ 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">
メタとHTTPヘッダー

 http-equiv属性は name属性に代わって使うことができ、ハイパーテキスト・プロトコール(HTTP)を経て文書が読み込まれた時特別な意義を持ちます。HTTP応答で [RFC822]ースタイル・ヘッダを作成する為にHTTPサーバーは、 http-equiv属性によって特定された固有値名を使います。正しい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を使った設定された秒後に現在の文書を別のURLのものと置き換えるという選択ができます。

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

 内容は数値で、秒単位での遅れを設定し、時間が来ると引き続いて読み込むべきURLをたどります。この機序は、一般的には一時的に導入ページをユーザーに見せるのに使われます。しかし表示代行手段によってはこの機序をサポートしていないので、ユーザーをそこから抜けだせるように誘導する内容を導入ページに記載しておくべきです(導入ページで立ち往生しない様に)。

メタと検索エンジン

 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">

 他の言語への翻訳へのリンクや文書の別の媒体のバージョンへのリンク(例、PDF)また文書がコレクションの中の一つの場合そのコレクションを一覧するにに適切なスタート点へのリンクを特定されている LINK要素を使うと、検索エンジンの有効性が増えます。

 もっと手助けになることが 検索エンジンでのウェブ・サイト・インデックス化支援のセクションで提供されています。

メタとPICS

インターネット内容選択のプラットフォーム(PICS, [PICS]で特定された)は、ラベル(メタ・データ)をインターネット内容 と関連付ける為の基礎構造です。元々は、両親や先生達が子供達がインターネット上でアクセスするものを制御するのを支援する様設計され、それがラベルやコード・サインや私的なことや知的所有権管理と言う別の使われ方を産みだしました。

 この例は、PICS 1.1ラベルを含むために META宣言をどの様に使えるかを示したものです:

<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要素は、次の例の様に、文書の初期情報を設定するのに使われます:

 次の例で、文書の 文字符号コード化をISO-8859-5に設定しています。

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

メタ・データ・プロフィール(profil)

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>

 この仕様書が書かれている様に、 [RFC2068]、セクション3.3で記載されている日付フォーマットを使うのが普通のやり方です。このフォーマットはやや処理しにくいので、 [ISO8601]日付フォーマットを使うように推奨します。より詳しい情報は、 INSDEL要素についてのセクションを参照下さい。

scheme属性で、メタ・データの正しい解釈についての 豊富な文脈が提供できます。例えば、フォーマット"10-9-97"(両義に取れ、曖昧な)で日付を設定します:これは、10月9日1997年か9月10日1997年なのかわかりません。 scheme属性値"Month-Date-Year"の設定で、このデータを両義に取れなく、曖昧でないものにします。

 普通は 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]
不適切(Deprecated)属性の値は、画像資料を示すURIです。画像は、背景と結び付いています(視覚的なブラウザの場合)。
text = color [CI]
不適切(Deprecated)この属性は、テキストの色を設定します(視覚的なブラウザの場合)。
link = color [CI]
不適切(Deprecated)この属性は、ハイパーテキスト・リンクでまだ訪れていない場合の文字の色を設定します(視覚的なブラウザの場合)。
vlink= color [CI]
不適切(Deprecated) この属性は、ハイパーテキスト・リンクで既に訪れて場合の文字の色を設定します(視覚的なブラウザの場合)。
alink = color [CI]
不適切(Deprecated)この属性は、ハイパーテキスト・リンクを選択した瞬間の文字の色を設定します(視覚的なブラウザの場合)。

他の属性の定義

 文書のbody部分には、文書内容がきます。内容の表現はブラウザによって様々です。視覚的(ビジュアル)ブラウザなら体部(body)をキャンバスに見たてることができそこに内容が表われます:テキスト・イメージ・色・グラフなど。読み取りのできるブラウザなら内容を読み上げます。 スタイル・シートによって文書内容の表現を指定するほうが推奨される方法ですので、体裁用の BODY属性は不適切(deprecated)で、いずれ廃止になります。

不適切な(DEPRECATED)例:
 次の例では、 不適切なdeprecated属性を使ってものです。キャンバスの背景を白、テキストを黒、リンクを赤、選択した瞬間のリンクをフクシン、訪問済リンクをマローンに設定しています。

<!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>

 style sheetsを使って同じ効果をえることができます:

<!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体部(bodies) framesetsのある文書ではBODY要素はFRAMESET要素に置き換えられます。詳しいことは、 framesを参照してください。

7.5.2要素同定:idclass属性

属性の定義

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要素は、 idclass属性を設定して文書メッセージをマーク付けしています。メッセージは、英語とブランス語で表現されます。

<!-- 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; 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要素で、同定(id)やクラス(class)情報を割り当てることができます。

 例えばプログラム言語に関する文書を書くとしましょう。文書には整形された実例を多く書くことになります。 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属性を設定すれば、(1)それにリンクし(2)スタイル情報をともなったクラスstyle情報を上書きすることができます。

注意:id属性は、アンカー名を使った場合name属性として同じ名前を共有します。 idのあるアンカーに詳しい記載があります。

7.5.3ブロック・レベルとインライン要素

 BODYにくる要素には、 "block-level"と言われるものと、 "inline"(インライン:"text level"と言われていた)といわれるものがあります。幾つかの点でこれに違いがあります:

内容モデル
一般的に言えば、ブロック・レベル要素はインライン要素とブロック・レベル要素をとります。インライン要素は、データとインライン要素だけしかとりません。構造上での本質的な違いは、ブロック・レベル要素がインライン要素よりレベルの上の構造という点です。
体裁(Formatting)
ブロック・レベル要素は、インライン要素とことなる体裁をとります。ブロック・レベル要素は新しいラインから始まり、インライン要素は新しいラインを作りません。ホワイトスペース・ライン=ブリーク・ブロック体裁についての情報は textにあります。
方向性
[UNICODE]双方向テキスト・アルゴリスムも含めて技術上の理由から、ブロック-レベルとインライン要素では方向性の継承の仕方が異なります。より詳しいことは、 テキスト方向性の継承のセクションを参照下さい。

 スタイル・シートは、任意の要素の再現表示を特定できます(要素がブロックやインラインで表示されるかどうかも含めて)。リスト要素内のインライン・スタイルの様な或るケースでは、これはふさわしいのでうが、一般的にはこの方法によるHTML要素の型にはまった解釈に上書きしたくなります。

 ブロックとインライン要素で従来の慣例となっているお互いの表現の違いが、 テキスト双方向性アルゴリスムに衝撃をもたらします。より詳しいことは、 スタイル・シートの双方向性への効果のセクションを参照下さい。

7.5.4要素のグループ化:DIVSPAN要素

<!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 --
  >

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

他の所で定義されている属性

 DIVSPAN要素は、 idclass属性と一緒になって、文書を構造化する一般的な機序を提供します。これら要素は、インライン( SPAN)やブロック-レベル( DIV)の内容を定義します。しかし、内容に対して再現表示上の慣例を押し付けません。従って、これらの要素を style sheetslang等と結合して、HTMLを制作者のニードや好みに仕立て上げることが出来ます。

 例えば、クライアント情報のデーターベースに基づいたHTML文書を作成したいとかていします。HTMLには、"client"・"telephone number"・"email address"等の対象を識別する要素はありませんので、望む構造や表示効果を達成するのに DIVSPANを使います。情報を構造化すつには、 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>

 このデーターベース登録の再現表示を細かく調整するために、後からスタイル・シート宣言を容易に追加できます。

 別の使用例については、 the classid attributesのセクションを参照下さい。

 ビジュアルなブラウザなどの表示代行手段は、一般的に 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 --
  >

Start tag: required, End tag: required

その他の属性定義

 見出し要素には、そのセクションのトピックを簡潔に記載します。見出し情報はブラウザによって文書の内容のテーブルの自動作成などに利用されます。

 HTML上での見出し(headings)には六段階あります。 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などのスタイル・シート言語により制作者でセクションの順序付けが、できるでしょう(handy for forward references in printed documents, as in "See section 7.2")。

 不連続な見出しレベル(skipping heading levels)は、いけないとことと考えられています。H2が跳んでいるH1 H3 H1はいけないが、H1 H2 H1はいいと受け入れられています。

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: 1997/12/16 05:38:14 $
</ADDRESS>