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属性の使い方によって、スタイル・シートが容易に追加できます。次の カスケーディング・スタイル・シートは、前の例の体裁を指定示唆しています: