frameset要素(frame setup)は表示域を矩形領域に分割するフレームを定義し、ひとつのページを分割するフレームの割り付けを設定します。フレームの割り付けを行う文書のことをフレーム設定文書と呼びます。フレーム設定型DTD(Frameset)(HTML 4.01, XHTML1.0)では html要素内に body要素の代わりとして frameset要素を記述します。
フレームを定義する場合の注意点として、noframes要素を併用し代替内容(frameset要素に含まれるすべてのリソースが表現する情報と完全に等価なもの)を指定することと、個々のフレームの識別が可能なように frame要素には title属性を付与する等、フレーム非対応環境や非視覚環境のための配慮が必要です。
フレーム間の境界線の太さを指定します。仕様には定義されていない Windows版Internet Explorer の独自機能です。Macintosh版Internet Explorer 5 以外の Netscape, Firefox, Opera, Safari も border属性に対応しています。
縦方向に分割し、個々のフレームの横幅を表す数値をフレームの数だけカンマ(,)で区切って並べます。ただし、ここで指定された横幅はあくまでも最初にページを表示したときのサイズで、個々のフレームを定義している frame要素にフレームのサイズ変更を禁止する noresize属性の指定がなければ、ユーザー側はフレームの境界線部分にポインティングデバイス(マウスやノートパソコン付属のトラックパッドなど)のカーソルをあわせてドラッグすることで自由にサイズ変更することできます。
cols属性に指定できる値は、MultiLength となっています。これは整数(ピクセル数で解釈)、パーセンテージ値(%)の他に相対比率を指定することが可能であることを意味します。整数はピクセル数による固定、パーセンテージ値(%)は個々のフレームではなくページ全体の表示域の横幅に対する割合です。そして相対比率の指定とは、分割可能なフレームについてアスタリスク(*)のついた整数の比率に従って分配します。値が "*" の場合、これは "1*" として計測します。たとえば、"<frameset cols="250,*">" と分配した場合、1番目の左側のフレームには "250px" が割り当てられ、2番目の右側のフレームには残りの値を分けることになるのでページ全体の表示域の残り全部が2番目のフレームに割り当てられることになります。パーセンテージ値(%)や相対比率での指定は個々のフレームのサイズを固定したわけではないので、表示域のサイズに応じてフレームのサイズも可変します。
横方向に分割し、個々のフレームの縦の高さを表す数値をフレームの数だけカンマ(,)で区切って並べます。ただし、ここで指定された高さはあくまでも最初にページを表示したときのサイズで、個々のフレームを定義している frame要素にフレームのサイズ変更を禁止する noresize属性の指定がなければ、ユーザー側はフレームの境界線部分にポインティングデバイス(マウスやノートパソコン付属のトラックパッドなど)のカーソルをあわせてドラッグすることで自由にサイズ変更することできます。
rows属性に指定できる値は、MultiLength となっています。これは整数(ピクセル数で解釈)、パーセンテージ値(%)の他に相対比率を指定することが可能であることを意味します。整数はピクセル数による固定、パーセンテージ値(%)は個々のフレームではなくページ全体の表示域の縦幅に対する割合です。そして相対比率の指定とは、分割可能なフレームについてアスタリスク(*)のついた整数の比率に従って分配します。値が "*" の場合、これは "1*" として計測します。たとえば、"<frameset rows="80,*">" と分配した場合、1番目の上のフレームには "80px" が割り当てられ、2番目の下のフレームには残りの値を分けることになるのでページ全体の表示域の残り全部が2番目のフレームに割り当てられることになります。パーセンテージ値(%)や相対比率での指定は個々のフレームのサイズを固定したわけではないので、表示域のサイズに応じてフレームのサイズも可変します。