次の属性はほとんどどの要素に対しても使うことができます。
要素の中身や属性値の言語を指定します。日本語であれば「ja
」、英語であれば「en
」になります。指定しなかったときは不明な言語として扱われます。
次のようにhtml要素にlang="ja"
を指定すれば、html要素の中身(つまりHTML文書全体)が日本語で書かれていることを表します。
<html lang="ja">
…
</html>
特定の箇所だけ言語が変わる場合は、その範囲を表す要素にlang属性を設定します。例えば引用する文章が英語で書かれているなら、blockquote要素にlang="en"
を指定します。
<blockquote lang="en">
<p>quoted text in English</p>
</blockquote>
lang属性に対応したブラウザであれば、言語によってフォントを切り替えたり、引用符を言語に合わせて表示したりすることが可能になります。音声ブラウザであれば、言語ごとに音声エンジンを使い分けることができます。
アラビア語やヘブライ語など右から左に記述する言語を使うときに、この属性を利用します。
特定の要素に固有の名前(識別子)をつけるための属性です。一つの文書中で複数の要素に同じ名前をつけることはできません。また、a要素やform要素のname属性で名前をつけるときは、id属性と同じ値を指定しなければなりません。id属性はHTML中で様々な役割を果たします。
id属性が設定された要素に対しリンクすることができます。
<p id="MYID">…</p>
と、p要素に名前をつけておけば、<a href="URI#MYID
">とすることでHTML中のp要素をリンク先にすることができます。
また、id属性はスタイルシートのセレクタになります。上記のp要素であればCSSを使いp#MYID { color: red; }
と指定し、デザインを変えることができます。
そのほか、スクリプトから特定の要素を参照する際などに利用されます。
特定の要素に分類上の名前をつけるための属性です。id属性とは異なり、一つの文書中で複数の要素に同じクラスを設定することができます。また、スペースで区切って一つの要素に複数のクラスを設定できます。
class属性は主にスタイルシートのセレクタとして利用されます。
<p class="MYCLASS">…</p>
と、指定しておけば、CSSでp.MYCLASS { font-weight: bold; }
とするなどして、デザインを変更することができます。
<p style="color: blue;">…</p>
とすれば、その部分のp要素だけのデザインを変えることができます。しかし、style属性を使いすぎるとCSSの一括指定というメリットが活かせなくなり、またHTML中にスタイル指定が混ざりHTMLコードが荒れる問題があるので、極力使わないようにしたほうが無難です。
XHTML 1.1ではstyle属性は非推奨とされています。
要素に補足説明をつけるための属性です。一般的な視覚系ブラウザであれば、マウスポインタを要素に重ねたときにtitle属性の内容がツールチップ文字列として表示されます。
例えば、小さな画像を大きな画像へリンクするためのアンカーにしたなら、
<a href="big.jpg" title="拡大した画像を表示します">
<img src="small.jpg" alt="代替テキスト">
</a>
として、説明をつけるなどの使い方が考えられます。
特定のイベントが発生したときに、スクリプトを実行するための属性です。これらの属性を使うときは、meta要素でスクリプト言語を指定する必要があります。組み込みイベント属性には次の18種類があります。
id属性とclass属性の値はどちらもスタイルシートのセレクタとして利用されるため、両者の違いはid属性がHTML中で同じ値を2度使えないのに対し、class属性は同じ値を何度も使える点だけだと思われがちですが、id属性は固有の名前、class属性は分類名であり、性格を異にしています。
例えば、HTML文書中にプログラムのサンプルコードを載せることにします。この場合、それぞれのサンプルコードにはclass属性にsample
という分類名をつけ、id属性にはsample1
、sample2
、sample3
などの固有の名前をつけます。
<pre class="sample" id="sample1"><code>
一つ目のサンプル
</code></pre>
<pre class="sample" id="sample2"><code>
二つ目のサンプル
</code></pre>
<pre class="sample" id="sample3"><code>
三つ目のサンプル
</code></pre>
id属性が固有名詞でclass属性は一般名詞だと思っておけばよいでしょう。
もう一つid属性とclass属性で異なる点は、id属性が設定された要素はリンクの終点アンカーになることです。見出し(h1?h6要素)などにid属性を設定しておけば、後から文章中の特定の箇所へリンクすることができます。
class属性はスタイルシートのセレクタになるため、class="red"
やclass="big"
など、見た目に関するクラス名をつけたくなります。
<p>操作を誤ると<em class="red">データが消失する</em>危険があります。</p>
.red { color: red; }
しかし、見た目に関するクラス名をつけると、後から「赤色ではなくて太字にしたい」と思ったときに困ってしまいます。
class属性には見た目ではなく意味に基づいた値を指定しましょう。上の例であれば「データが消失する→警告」と考え、class="warning"
のようにします。
<p>操作を誤ると<em class="warning">データが消失する</em>危険があります。</p>
こうしておけば、CSSを使って後から「警告」の箇所のデザインをHTMLを編集しなくても変更できます。