文書型 | 適用 | 子要素 | 開始タグ | 終了タグ | 分類 |
---|---|---|---|---|---|
Strict | ○ | 空要素 | 必須 | 禁止 | head要素の子要素 |
Transitional | ○ | ||||
Frameset | ○ |
Month-Day-Year
と指定すれば「1997年10月9日」であると分かります。メタ情報とは、データに関する情報のことです。メタ情報はプロパティと値の組み合わせで表されます。例えばこのHTML文書は
プロパティ | 値 |
---|---|
言語 | 日本語 |
作者 | 石川 一靖 |
説明 | meta要素の解説。 |
スタイルシート | /css/default.css |
目次ページ | index.html |
などのメタ情報がhead要素内で定義されています。このようなプロパティと値の組み合わせ -- つまりメタ情報 -- のうち、値がURIであるものはlink要素で示し、そうでないものをmeta要素で示します。(上の例ではスタイルシートと目次ページのメタ情報をlink要素で示します。)
meta情報のプロパティは普通はname属性に記述しますが、HTTPレスポンスヘッダとして送信されるべきものはhttp-equiv属性に記述します。meta情報の値はcontent属性に記述します。
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
<meta http-equiv="Content-Type" content="text/html; charset=EUC-JP">
<meta http-equiv="Content-Type" content="text/html; charset=ISO-2022-JP">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
HTML文書の文字コードを示します。HTML文書中で日本語が現れる部分より前に指定してください。
content="text/html;" charset="Shift_JIS"
ではないので気をつけてください。
<meta http-equiv="Content-Language" content="ja">
<meta http-equiv="Content-Language" content="ja, en">
文書全体の言語コードを示します。カンマで区切って複数指定することも出来ます。
<meta http-equiv="Content-Style-Type" content="text/css">
<meta http-equiv="Content-Script-Type" content="text/javascript">
デフォルトで使用されるスタイルシート言語とスクリプト言語を示します。style属性や組み込みイベント属性で記述される言語は、ここで示した言語と解釈されます。
<meta name="keywords" content="meta要素,メタ情報,メタデータ">
<meta name="description" content="meta要素の解説です。">
<meta name="author" content="作者名">
文書の作者、説明、キーワードを示します。説明の内容は検索エンジンの検索結果に表示されることがあります。
<meta name="robots" content="noindex,nofollow">
Googleなどのロボット型検索エンジンに対し、ページを自動で登録せず、ページ内のリンクもたどらせないようにします。この指定をしても効果のない検索エンジンもあるので注意してください。
<meta http-equiv="refresh" content="10; URL=page1.html">
上の例では10秒後にpage1.htmlにページを移動するよう指定しています。ページの自動更新に対応していないユーザーエージェントもあるので、この機能は使うべきではありません。サーバ側のリダイレクト機能を使ってください。
ApacheというWWWサーバであれば、.htaccessという設定ファイルに次のように書いておきます。
Redirect /bar http://www.example.com/page1.html
こうすると、http://ホスト名/bar/
以下のファイルにアクセスされたとき、自動的にhttp://www.example.com/page1.html
へ転送します。この方法であれば、ユーザーエージェント側のリダイレクト機能は不要です。Redirectディレクティブなどの詳しい使い方は、以下のページを参照してください。
言語やMIMEタイプ、文字コードなどのメタデータをHTTPレスポンスヘッダで送信することができれば、必ずしもそれをmeta要素で示す必要はありません。ApacheというWWWサーバであれば、.htaccessという設定ファイルに
AddType "text/html; charset=Shift_JIS" .html
と書いておくと、Apacheは拡張子が.htmlのファイルを要求されたときHTTPレスポンスヘッダで
Content-Type: text/html; charset=Shift_JIS
と送信するので、meta要素を使う必要はなくなります。ローカルでHTML文書を利用するようなときは、meta要素で文字コードを示しておくとユーザーエージェントが文字コードを判別する手がかりになるので、あえてmetaタグを削除する必要はないでしょう。
参考までに.httaccessで文字コード、言語、スタイルシート言語、スクリプト言語などを示す方法を紹介しておきます。以下の例では拡張子が .html か .htm のものに適用されます。
AddType "text/html; charset=Shift_JIS" .html .htm
AddType "text/html; charset=EUC-JP" .html .htm
AddType "text/html; charset=ISO-2022-JP" .html .htm
AddType "text/html; charset=UTF-8" .html .htm
<Files ~ "\.html?">
<IfModule mod_headers.c>
Header set Content-Language: "ja"
Header set Content-Style-Type: "text/css"
Header set Content-Script-Type: "text/javascript"
</IfModule>
</Files>
AddTypeディレクティブ、Headerディレクティブに関しては、以下のページを参照してください。
XHTML 1.1ではmetaタグのhttp-equive属性は使わずに、HTTPレスポンスヘッダを使う方法が推奨されています。
http-equive属性は将来廃止される予定です。
<!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 --
>