勝手にHTML4.0講座 - 構造 ヘッダ

1.HTML文書構造

HTML4.0文書は、次の3つの部分から構成されます。
  1. 文書型宣言(HTMLのバージョン宣言)
  2. ヘッド部(HEAD要素)
  3. 本体(BODY要素かFRAMESET要素)
各部の前後に空白文字(スペース タブ文字 新行文字 コメント)が入ります。

2.文書型宣言

正しいHTML文書を作る場合には、どのバージョンのHTML仕様に準拠するのかを明記する必要があります。 文書型宣言という表記によって、どんな文書型定義(DTD:Document Type Definition)に従った文書なのかを示します。

HTML4.0仕様には3種類のDTDが含まれ、どれに準拠するのかを記さねばなりません。各DTDで使える要素には以下の差があります。

  1. Strict DTD:フレームを使わず、推奨しない要素・属性を全く使わない
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN"
    "http://www.w3.org/TR/REC-html40/strict.dtd">
  2. Transitional DTD:フレームを使いません
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"
    "http://www.w3.org/TR/REC-html40/loose.dtd">
  3. Frameset DTD:制限なし
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Frameset//EN"
    "http://www.w3.org/TR/REC-html40/frameset.dtd">
各々の文書型宣言に付随する URI によって、HTML文書のDTDや実体セットがどうなっているかをダウンロードして確認することが可能です。

3.<HTML>要素

開始タグ: 省略可能
終了タグ: 省略可能

属性 = 属性値説明
version = 文字列HTML文書がHTMLのどのバージョンで記されているかを示します。ただし文書型宣言によって記すのが正当です。[非推奨]
その他lang , dir

文書型宣言の後に続けて書きます。HTML文書の本体部分です。

4.<HEAD>要素

開始タグ: 省略可能
終了タグ: 省略可能

属性名 = 属性値説明
profile = URIメタ情報を定義しているプロファイルの所在をしめすものです。複数の場合は空白文字で区切って列記します。
その他lang , dir

HEAD要素には、HTML文書についての情報が記されます。例えば、文書の表題、キーワード、その他文書に関することです。 基本的にHEAD要素内は表示されません。

5.<BODY>要素

開始タグ: 省略可能
終了タグ: 省略可能

属性名 = 属性値説明
background = URI背景画像データの所在を示します。背景画像は基本的に、文書の背景に敷き詰められます。[非推奨]
text = 色 前景色・文字色を指定します。[非推奨]
link = 色 未訪問のリンク色を指定します。[非推奨]
vlink = 色 既訪問のリンク色を指定します。[非推奨]
alink = 色 選択中のリンク色を指定します。[非推奨]
bgcolor = 色文書全体の背景色を指定します。[非推奨]
内在イベントonload , onunload , onclick , ondbclick , onmousemove , onmousedown , onmouseup , onmouseover ,onmouseout , onkeypress , onkeydown , onkeyup
その他id , class , title , style , lang , dir

文書のボディー部が、文書の内容そのものです。ただし文書内容は様々な方法で再生されます。 視覚系ブラウザの場合、文字や画像等が表示されますが、音声出力環境では、同じ内容がただ話されるものとなります。 スタイルシートの登場により、BODY 要素における文書の見栄えをコントロールするための属性は 非推奨になりました。

フレーム機能を利用するHTML文書では、BODY要素がFRAMESET要素によって置き換えられます。

6.<TITLE>要素

開始タグ: 必要
終了タグ: 必要

属性名 = 属性値説明
その他lang , dir

TITLE要素はHEAD要素内にあり、HTML文書のタイトルが入力されます。文書を利用しやすくするために、なるべくタイトルを書いてください。

6.<META>要素

開始タグ: 必要
終了タグ: なし

属性名 = 属性値説明
name = 文字列 プロパティの名前を示します。
content = 文字列 プロパティの値を示します。
scheme = 文字列 プロパティの値を解釈する際のスキームを示します。
http-equiv = 文字列 name属性の代わりに使用されます。
その他lang , dir

META要素は、HTML文書についての情報を表すために利用できます(著者、失効する日時、キーワード、など)。 どのMETA要素も、「プロパティ・値」の組で指定されます。name属性がプロパティを設定し、content属性がその値を指定します。
ホームページの著者を指定
<META name="Author" content="風浪へぽぽ">
ホームページの著作権を指定。
<META name="copyright" content="(c) 1998 HEPOPO.">
ホームページの発行日を指定。
<META name="date" content="2000-01-01T00:00:00+00:00">
検索エンジンでのキーワード指定
<META name="keywords" lang="en-us" content="HomePage, HTML, Soft">
<META name="keywords" lang="jp" content="ホームページ, HTML, ソフト">

name属性の代わりにhttp-equiv属性を使うと、HTTPでの伝送の際に、HTTPヘッダ部に書き込まれます。
META要素のプロパティは特に定められていなく、たくさんあります。
ホームページの寿命(キャッシュから消される時刻)を示します。
<META http-equiv="Expires" content="Tue, 20 Aug 1996 14:25:27 GMT">
3秒後に指定のURIへ移動します。
<META http-equiv="refresh" content="3,next.html">
HTML文書の符号化方法が[シフトJIS]であることを示しています。
<META http-equiv="Content-Type" content="text/html; charset=SHIFT_JIS">
ブラウザにキャッシュされなくなります。
<META http-equiv="Pragma" CONTENT="no-cache">
JavaScriptを使用することを宣言します。
<META http-equiv="Content-Script-Type" content="text/javascript">
CSS形式のスタイルシートを使用することを宣言します(規定値もtext/cssなのでこの場合省略可)。
<META http-equiv="Content-Style-Type" content="text/css">
scheme属性は、メタ情報についてのより詳しい情報を知らせるためのものです。
プロパティ「identifier」の値が ISBN コードを意味していることが示されています。
<META scheme="ISBN" name="identifier" content="0-8230-2355-9">

7.<LINK>要素

開始タグ: 必要
終了タグ: なし

属性名 = 属性値説明
target=目標フレーム名文書を表示させるフレーム名を記します。[_blank _self _parent _top]
href=URIリンクするWebリソース(HTML文書など)をURIで記します。
hreflang=言語コードリンク先文書の言語コードを指定します。(必要なときのみ)
type=MIMEタイプリンク先リソースのMIMEタイプを指定します。
rel=リンクタイプリンク先との関係を、リンク元から見て記します。
rev=リンクタイプリンク先との関係を、リンク先から見て記します。
charset=文字コードリンク先の文書の文字コードを記します。
内在イベントonclick , ondbclick , onmousemove , onmousedown , onmouseup , onmouseover ,onmouseout , onkeypress , onkeydown , onkeyup
その他id , class , title , style , media , lang , dir

この要素はHEAD要素内に書き込まれ、リンクを表します。いくつ並記してもかまいません。 次の例は、LINK要素の使用方法を示しています。文書は「Chapter2.html」という名前で、リンクされた文書との関係を rel属性が記述しています。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
<HTML>
<HEAD>
<TITLE>Chapter 2</TITLE>
<LINK rel="Index" href="../index.html">
<LINK rel="Next" href="Chapter3.html">
<LINK rel="Prev" href="Chapter1.html">
</HEAD>
...略...

rel属性とrev属性は、相互補完的な役割を果たします。rel属性は順方向リンク、rev属性は逆方向リンクです。 つまり、次の例の文書AとBは同じ意味になります。
文書A : <LINK href="文書B" rel="foo">
文書B : <LINK href="文書A" rev="foo">
LINK要素の活用によって、サーチエンジンに対する様々な情報提供が可能です。
(例)外国語版の所在が示されています。
<LINK title="The manual in Dutch" href="http://someplace.com/manual/dutch.html" type="text/html" rel="alternate" hreflang="nl">
<LINK title="The manual in Portuguese" href="http://someplace.com/manual/portuguese.html" type="text/html" rel="alternate" hreflang="pt">
<LINK title="The manual in Arabic" href="http://someplace.com/manual/arabic.html" type="text/html" rel="alternate" hreflang="ar" charset="ISO-8859-6" dir="rtl">
<LINK title="La documentation en Français" href="http://someplace.com/manual/french.html" type="text/html" rel="alternate" hreflang="fr" lang="fr">
(例)印刷版の所在が示されています。
<LINK title="The manual in postscript" href="http://someplace.com/manual/postscript.ps" type="application/postscript" rel="alternate" media="print">
(例)複数ページから構成される文書の先頭ページの所在が示されています。
<LINK title="The first page of the manual" href="http://someplace.com/manual/start.html" type="text/html" rel="Start">

8.<BASE>要素

開始タグ: 必要
終了タグ: なし

属性名 = 属性値説明
href=URI相対URIの基準となるURIを指定します。
target=目標フレーム名文書を表示させるフレーム名を記します。[_blank _self _parent _top]

HTMLでは、リンク、画像、スタイルシートなどへはURIを使用して参照されます。 そのとき相対URIの場合は基準となるURIを使用して絶対URIに変換されます。 BASE要素は、その基準となるURIを明示的に指定できます。

BASE要素は、HEAD要素中のなるべく先頭に記す必要があります。また、BASE要素で指定される基準URIは、当該文書中でのみ有効です。

例えば、以下のようにBASE要素を設定するとA要素の指定する相対URI[../cages/birds.gif]は、[http://www.aviary.com/cages/birds.gif]となります。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
<HTML>
<HEAD>
<TITLE>Our Products</TITLE>
<BASE href="http://www.aviary.com/products/intro.html">
</HEAD>
<BODY>
Have you seen our <A href="../cages/birds.gif">Bird Cages</A>?
</BODY>
</HTML>

相対URIを解釈するに際して[RFC1808]第3章に基づいて基準URIを判断せねばなりません。つまり、次の優先順で基準URIが解釈されます。
  1. BASE要素によって設定された基準URI
  2. 通信プロトコルの応答によって与えられるメタデータとしての基準URI (HTTPヘッダなど)
  3. 当該文書のURIとして基準URI。ただし基準URIのないものは誤りとなります。(E-Mailなど)
OBJECT要素とAPPLET要素はBASE要素の指定を上書きする属性を持つことがあります。 HTTPヘッダによって定義されるリンク要素は、文書中に出現するLINK要素と全く同等の扱いを受けます。

9.HTML文書例

非推奨例: 非推奨となった属性を使用した方法を示すものです。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
<HTML>
<HEAD>
<TITLE>人口動態の研究</TITLE>
</HEAD>
<BODY bgcolor="white" text="black" link="red" alink="fuchsia" vlink="maroon">
... 本文...
</BODY>
</HTML>

推奨例: スタイルシートを使うと、色指定を次のように書くことができます。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
<HTML>
<HEAD>
<TITLE>人口動態の研究</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>
... 本文 ...
</BODY>
</HTML>

別例: 外部スタイルシートを使うと、HTML文書に手を加えることなく色指定などを変更できます。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
<HTML>
<HEAD>
<TITLE>人口動態の研究</TITLE>
<LINK rel="stylesheet" type="text/css" href="smartstyle.css">
</HEAD>
<BODY>
... 本文 ...
</BODY>
</HTML>


★INDEX★