program-htmlの日記

つれづれ書いてます

ルート要素と文章のメタデータ[02]-プログラミング・本のブログ

自身のアウトプットも兼ねてつれづれと書き続けるブログ。


HTML解体新書ー仕様から紐解く本格入門 [ 太田 良典 ]

前回からの続きです。

ルート要素と文章のメタデータ[02]

base要素

<base>

base要素は、基準URLやリンク先を表示するデフォルトのウィンドウターゲットを指定します。この要素はなくても良いですが、記述する場合1つしか存在してはなりません。

コンテンツモデル

Nothingです。内容を持つことが出来ず、終了タグを書くこともできません。

 

【属性】

href属性:基準となるURLを指定します。下記の例ですとaタグにnekonikoban.htmという相対URLが書かれていますが、HTMLが存在しているか関係なく、http://test.com/のリンクとして扱います。

<base href="http://test.com/">

・・・

<a href="nekonikoban.html">ページ</a>

 

target属性:リンク先をどのように開くかのデフォルト値を指定します。下記の例ですとタブブラウザーであれば常にタブでリンクを開くように指定できます。

<base target="_blank">

meta要素

<meta>

meta要素は、他の要素では表現できないさまざまな種類のメタデータを表します。

 

コンテンツモデル

Nothingです。内容を持つことが出来ず、終了タグを書くこともできません。

 

【属性】

meta要素は、下記の4つから最低1つは指定する必要があります。

  • charset:HTMLの文字コーティングを表します。
  • http-equiv:HTTPでウェイブサーバーから与えられる情報と等価な情報を表します。
  • name:文章レベルのメタデータを表します。
  • itemprop:microdataによるメタデータを表します。

※charset属性を指定した場合を除き、content属性も同時に指定しなければなりません。

[charset属性]

charset属性を利用すると、HTML文章の文字エンコーディングを宣言できます。この用法を文字エンコーディング宣言(charset encoding declaration)と呼びます。

<meta charset='utf-8'>

現在のHTML仕様は文字エンコーディングとしてUTF-8を要求するためcharset属性の値は、utf-8としなければいけません。また文字エンコーディング宣言を書く際には以下のような制約があります。

[http-equiv属性]

http-equiv属性を利用すると、HTTPレスポンスヘッダーと同等の情報を指定できます。

 

・文字エンコーディング宣言(http-equiv="content-type")

文字エンコーディング宣言はhttp-equiv属性にも記入することが可能です。この記述は古い書き方で、現在のHTMLではcharset属性を利用されます。

<meta http-equiv="content-type" content="text/html; charset=utf-8">

 

・ページのリフレッシュ(http-equiv="refresh")

http-equiv="refresh"を指定してcontent属性に整数を指定すると、指定秒数後にページを自動的に再読み込むするよう指示します。下記の例は200秒後にページを再読み込みする例です。

<meta http-equviv="refresh"content="200">

また指定秒数後にそのURLへリダイレクトする動作を指示できます。下記の例ですと30秒後にhttps://www.nekonikoban.com/に移動します。

<meta http-equviv="refresh"content="30; URL=https://www.nekonikoban.com/>

 

・CSPの指定(http-equiv="content-security-policy")

CSP(Content Security Policy)を指定できます。CSPを指定すると、ページ上でのJavascriptの動作を制限できます。これにより、クロスサイトスクリプティングの攻撃を受けにくくなります。

 

[name属性]

name属性は、任意のメタデータを表現します。content属性でメタデータとなるテキストを指定し、name属性で任意の名前を付けます。

 

・ページコンテンツの説明(name="description")

name="description"を指定するとcontent属性の値はページコンテンツの説明(ディスクリプション)となります。検索エンジンはこの説明文を検索結果ページに表示することがあります。

<meta name="description" content="ホームページの説明が入ります。">

 

・ページのキーワード(name="keywords")

name="keywords"は、ページに関するキーワードをカンマ区切りで記述するものです。

<meta name="keywords" content="キーワード,キーワード,キーワード">

 

・ビューポート(name="viewport")

name="viewport"は、主に画面が小さなモバイルブラウザーに対して、ウェブページの表示制限に関する情報を伝えます。

<meta name="viewport" content="width=device-width, initial-scale=1">

style要素

style要素は、CSSスタイルシートを埋め込む要素です。link要素が外部のスタイルシートを参照するのに対し、style要素は要素の内容にスタイルを記述します。

特定ページだけに一時的にスタイルを適応するような場合、style要素は便利です。

 

コンテンツモデル

テキストになります。このテキストはCSSの構文として適合するものでなければなりません。

 

[属性]

現在ではstyle要素に属性を指定することは稀です。

セクション[01]