HTML 4.0の多くの属性は、大部分の要素に共通している。これらの属性は 核となる属性・ 国際化の属性と スクリプト事象に分けられる。
ID属性で、文書内の要素の固有性を識別させます。同一文書の二つ要素で、同じ ID値を取ることは出来ません。属性の値は、A-Z乃至a-zで始まりその後続いて文字(A-Za-z)・数値(0-9)・ハイフン("-")・下線("_")・セミコロン(":")・ピリオド(".")が来ます。
次の例で、文書のはじめの二つのパラグラフをお互いに識別する為に、 ID属性を使っています:
<P ID=firstp>My first paragraph.</P>
<P ID=secondp>My second paragaph.</P>
この例のパラグラフで、 ID属性を通して、二つを関連付けるスタイル規則を設定することができます。次の カスケーディング・スタイル・シート(滝状の)は、二つのパラグラフのそれぞれ固有の色を定義しています:
P#firstp {
color: navy;
background: transparent
}
P#secondp {
color: black;
background: transparent
}
最初の例のパラグラフを、リンクの標的アンカーとしても使うことができます:
<P>See <A HREF="#firstp">the opening paragraph</A> for more information.</P>
大部分のブラウザは、リンクのアンカーで IDをサポートしていないことに注意しておくべきです。現行のブラウザでは IDの代わりに、要素内の <A NAME>...</A>を使うべきです。
IDと NAMEは同じ名前空間を分け合っているので、同一文書では ID属性とNAME属性で同じ値を取ることは出来ません。 NAMEは 実体をゆるしますが、 ID属性値では取れないことに注意して下さい。
CLASS属性は、要素が複数クラスの中の一メンバーであることを設定します。クラスで或る要素の特別な 種類を定義できます。例えば、ジャヴァ・コードを使う場合は <CODE CLASS=Java>を、パール・コードを使う場合は <CODE CLASS=Perl>を使うことが出来ます。
ID属性の場合と違って、要素が幾つでも同じクラスを振り分けられます。要素は多元クラスに属することもあります: CLASS属性の値はスペースで区切ったクラス名のリストになります。
大部分の現行のブラウザは多元クラスをサポートしていません。その様なブラウザは、典型的には多元クラスを特定する CLASS属性を無視します。
スタイル・シートと結合された場合 CLASS属性は特に有用です。例えば、次の誘導バーを考えてみます:
<DIV CLASS=navbar>
<P><A HREF="/">Home</A> | <A HREF="./">Index</A> | <A HREF="/search.html">Search</A></P>
<P><A HREF="/"><IMG SRC="logo.gif" ALT="" TITLE="WDG Logo"></A></P>
</DIV>
この例での CLASS属性の使い方によって、スタイル・シートが容易に追加できます。次の カスケーディング・スタイル・シートは、前の例の体裁を指定示唆しています:
.navbar {
margin-top: 2em;
padding-top: 1em;
border-top: solid thin navy
}
.navbar IMG { float: right }
@media print {
.navbar { display: none }
}
STYLE属性で、スタイルが要素一行のインラインを統治するよう特定できます。例えば、例として次の様に:
<P>A popular font for on-screen reading is <SPAN STYLE="
font-family: Verdana
">Verdana</SPAN>.</P>
STYLE属性が使われる場合 Content-Style-Type HTTPヘッダーをスタイル・シート言語用のメディア・タイプに設定することによって、 スタイル・シート言語の初期値が文書用に特定されなければなりません。前の例では、文書の HEADにある次の META要素を使えま す:
<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
殆どのケースで、 CLASSや ID属性の使用は、 STYLEを使うよりも良い選択です。何故なら IDや CLASSは、異なったメディアに選択的に適用でき、内容と体裁を分離し、保守が簡単になるからです。
TITLE属性は要素のタイトルを提供し、一般的にビジュアル・ブラウザで"tooltip"として働きますが、多くのブラウザが TITLEをサポートしていません。この属性は A・ LINK・ IMG・ OBJECT要素で有用で、リンクされたり組み込まれた資源のタイトルを提供します。幾つかの例として:
<A HREF="mailto:liam@htmlhelp.com" TITLE="Feedback on HTML 4.0 Reference">liam@htmlhelp.com</A>
<A HREF="http://www-genome.wi.mit.edu/ftp/pub/software/WWW/cgi_docs.html" TITLE="CGI.pm - a Perl5 CGI Library">CGI.pm</A>
<LINK REL=Alternate HREF="index.fr.html" HREFLANG=fr LANG=fr TITLE="Version française">
<OBJECT CLASSID="java:Yahtzee.class" CODETYPE="application/java" WIDTH=400 HEIGHT=250 STANDBY="Ready to play Yahtzee?" TITLE="My Yahtzee Game">
<IMG SRC="yahtzee.gif" ALT="" TITLE="A Yahtzee animation">
Yahtzee is my <EM>favorite</EM> game!
</OBJECT>
TITLEは、 ABBRや ACRONYM要素でも手助けになり、省略の説明が長く書けます。例:
He weighs 180 <ABBR TITLE=pounds>lbs.</ABBR>
<ABBR TITLE="Parti Québécois" LANG=fr-CA>PQ</ABBR>
<ACRONYM TITLE="North Atlantic Treaty Organization">NATO</ACRONYM>
LANG属性で、要素の属性値やその内容の言語を設定し、自身 LANG属性が設定されていない要素全てに及びます。 LANG属性は広くサポートされていませんが、検索エンジンの言語よる文書インデックス化の手助けにはなり、音声合成装置が言語特有の発声規則を使えるようになります。また Q要素を表示する際 ビジュアル・ブラウザが、言語上正しく引用を使えます。
属性の値はケース感受性(大文字小文字を区別します)で、 RFC 1766に従って設定されなければなりません:たとえば、 en英語・ en-US米語・ ja日本語。 空白文字は、言語コードには使えません。
LANG属性の使用で、言語に依存しているテキストの styleの変更が容易になります。例えば、二ヶ国語の文書で一ヶ国語が斜体で表示するとか発音上異なった声がある場合です。この様な文書の HTMLは次の様になります:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN"
"http://www.w3.org/TR/REC-html40/strict.dtd">
<TITLE>Welcome - Bienvenue</TITLE>
<H1>
<SPAN LANG=en>Welcome</SPAN> -
<SPAN LANG=fr>Bienvenue</SPAN>
</H1>
<P LANG=en>This paragraph is in English.</P>
<P LANG=fr>Ce paragraphe est en français.</P>
...
文書の基本言語は、 HTML要素での LANG属性乃至は Content-Language HTTPヘッダーを使って、設定されます。
DIR属性で、テキストの方向性--左右( DIR=ltr、初期値)や右左( DIR=rtl)に設定します。 Unicodeの文字符号は方向を左右や右左と指定でき、それを適正に表示されるテキストになります。例えば英語は左右に、ヘブライ語は右左表示されます。
ユニコードは文書に右左文字符号あれば、適応されねばならない 総方向性アルゴリスムを定義しています。一方このアルゴリスムは、通常は適切な表示をしますが、或る状況で方向性上中立なテキストをその儘に残し基本方向を設定するために DIR属性が必要になります。
方向性の異なった内容の多元組み込みがある場合テキストは方向性上中立になることがよくあります。例えば、英語引用符号で囲われたヘブライ語句を含んだ英語文では、ヘブライ語の句での方向性を定義しておくのに DIR属性が必要です。英語の引用符号も含めてヘブライ語の句の部分は、 DIR=rtlの在る SPAN要素内に来ておかなければなりません。
クライアント側スクリプト事象を定義する可成りの属性は、大部分の要素でも共通です。その属性値が、スクリプトで -- 典型的には、機能呼び出し乃至は短いステートメント -- で、事象が発生すると実行されます。値は、 実体も含めます( e.g.、 ")。
次の例は、転送ボタンの二つの事象を処理するのにジャヴァスクリプトを特徴としいて、マウスがボタン上を移動するとステータス・バー(状況掲示)に注意を表示し、マウスが通りすぎるとそのステータス・バーを消します。この属性は一重引用符で囲われていりことに注意して下さい、それは二重引用符は属性内で使われているからです。
<INPUT TYPE=submit ONMOUSEOVER='
window.status="Did you fill in all required fields?";
' ONMOUSEOUT='
window.status="";
'>
事象属性は使われる場合 Content-Script-Type HTTPヘッダーにスクリプト言語のメディア・タイプの設定によって、初期スクリプト言語が文書用に設定されなければなりません。前の例では、文書の HEADの 次の META要素を使っています:
<META HTTP-EQUIV="Content-Script-Type" CONTENT="text/javascript">
共通の事象属性は、装置依存性で主にグラフィカルなユーザー・インタフェース用に仕立てられています。取り得る事象は次のものがあります: