<FRAMESET>NN 2 IE 3 HTML 4  

<FRAMESET>...</FRAMESET>

HTML 終了タグ : 必要  

ブラウザのアプリケーションウィンドウに表示する複数フレーム表示のレイアウトを定義します。frameset 要素の主な役割はフレーム領域の配置レイアウトを行と列の配列で指定することです。frameset 要素で定義される属性は、(特定の frame の同様の属性で上書きされない限り) ネストされているすべての frame 要素に適用されます。frameset 要素のタグは通常、body 要素より先に HTML ドキュメントで使用されます。

frameset 要素内に frameset 要素をネストすることができます。この方法では、外側の frameset 要素からのフレームを複数のフレームに再分割できます。たとえば、次のように行が 3 つ、列が 2 つある frameset 要素を定義して合計 6 つのフレームにすることができます。

また、フレームの定義があるフレームセットをネストすると、フレームはネストされたフレームセットで定義されたフレーム編成に分割されます。ネストされたフレームの例を次に示します。

frameset 要素はページのデザインに必要なレベルでネストできます。OS によっては、ブラウザのメモリリソースを多量に使用するフレームもあります。ボーダーがページデザインにとって効果がある場合にも、ボーダーを表示するフレームを好まないユーザーもいます。

一番外側のフレームセットドキュメントは title 属性でブラウザウィンドウのタイトルバーの表示を制御します。個々のフレームに読み込まれるドキュメントはタイトルバーの表示を制御できません。今後のブラウザのスクリプト作成や今後のアプリケーションでの設定に関わらず、フレームドキュメントの title 属性は常に設定してください。

ユーザーがフレームセットを削除できるようにするには、そのためのスクリプトを実行するリンクまたはボタンを提供できます。スクリプトではフレームに読み込まれるページで最も重要な単一のドキュメント (主要コンテンツ) の URL を top.location.href プロパティに設定します。

HTML 4 および XHTML の Strict DTD では、frameset 要素と frame 要素 (およびその他の要素でフレームを指し示す target 属性) は明示的にはサポートされていません。これらの DTD では、フレームをドキュメントマークアップの対象外として扱っています。フレームセットドキュメントは、HTML 4 の Transitional DTD と Frameset DTD、または XHTML の Frameset DTD で妥当性を検証できます。

 
 
<FRAMESET cols="150,*">
    <FRAME name="navbar" id="navbar" src="nav.html">
    <FRAME name="main" id="main" src="page1.html">
</FRAMESET>
 
オブジェクト参照
 
[window.]document.getElementById(elementID)
 
要素固有の属性
 
borderbordercolorcolsframeborderframespacingrows
 
要素固有のイベントハンドラー属性
 
ハンドラーNNIEHTML
onload234
onunload234
borderNN 3 IE 4 HTML なし  

border="pixelCount"

オプション  

デフォルトではフレームは 3D のボーダーを表示します。ボーダーのデフォルトの太さはブラウザや OS によって異なります。フレームセットの border 属性の値を変更することによってデフォルトの太さを調節できます。ネストされたフレームセットでは一番外側の frameset 要素のみに border 属性の設定が反映されます。この属性はフレーム間のボーダーを制御しますが、フレームセットの周囲のボーダーは制御しません。

Navigator 4 は Windows と Macintosh の両方のプラットフォームで、border 属性に 5 を設定したときと同じ太さでデフォルトボーダーを表示します。IE では Windows 版の既定値は 6 で Macintosh 版の既定値は 1 (実際の表示は 1 ピクセルより太く見えます) になります。このため、border 属性にある値を設定をしてもすべてのブラウザで同じ表示にはなりません。また、設定する値を小さくすると正しく反応しないブラウザもあります。Windows 版 IE 6 は値が 4 より小さいとボーダーを表示しません。Navigator では値が 2 より小さいと 3D 効果がなくなります。Macintosh 版 Navigator 4 にはフレームバーの中央にくぼみが表示される欠陥があります。

このいろいろなフレームボーダーの表示の複雑さのため、border 属性に 0 を設定してボーダーを使用しないこともできます。ただし、ボーダーはスクロールバーが必要なフレームコンテンツの視覚的なコンテキストには効果があります。スクロールバーをブラウザウィンドウに表示するとユーザーを困惑させることもあります。

HTML 4 仕様には border 属性が含まれていないため、フレームのみに関連付けられたボーダーではなくスタイルシートのボーダーを使用することが好まれることがあります。ただし、ボーダー関連の CSS スタイル属性は、フレームセット全体の周囲のボーダーにのみ影響し、フレーム間のボーダーには影響しません。

 
 
<FRAMESET cols="150,*" border="0">...</FRAMESET>
 

整数値。0 に設定するとボーダーがまったく表示されません。この値はフレームセットのボーダーの太さをピクセル単位で正確に指定するためのものですが、実際は OS やブラウザによって結果が異なります。

 
既定値

上記の説明を参照してください。

 
オブジェクト参照
 
[window.]document.getElementById(elementID).border
bordercolorNN 3 IE 4 HTML なし  

bordercolor="RRGGBB カラー 16 進数または色の英単語"

オプション  

フレームセットで表示されるすべてのボーダーの色を設定します。一番外側の frameset 内の bordercolor 設定はネストされている frameset 要素 (ネストされているフレームセットのフレームのみ) または独立した frame 要素の bordercolor 属性で上書きできます。ブラウザは異なる色に設定された周辺のフレームとの矛盾を解決します。ボーダーの色を混ぜる場合はその組み合わせを十分にテストしてください。

 
 
<FRAMESET cols="150,*" bordercolor="salmon">...</FRAMESET>
 

RGB 値の 16 進数表記または色の名前の英単語。使用できる色の名前については、付録 A を参照してください。

 
既定値

通常は 3D 効果で黒または青がハイライトされている灰色を使用するブラウザの既定値

 
オブジェクト参照
 
[window.]document.getElementById(elementID).borderColor
colsNN 2 IE 3 HTML 4  

cols="columnLengthsList"

オプション  

フレームセットにあるフレームの列配置のサイズや比率を設定します。frameset 要素を使用して複数の列のフレームを作成する場合、列ごとの値のリストを cols 属性に指定する必要があります。

列のサイズは、次の 3 つの方法で設定します。

ユーザーが変更したブラウザウィンドウ全体のサイズに関係なくフレーム幅を同じにするには、ピクセル数による絶対サイズを使用します。イメージなどの幅が固定されているオブジェクトをフレームで表示する場合に特に便利です。ユーザーが変更したブラウザウィンドウ全体のサイズに関係なく、フレーム幅をフレームセット幅の特定の割合にするには、割合を使用します。cols 属性の値にすべて割合を使用するには、その合計が 100% になるようにしてください。値の合計が 100% にならない場合にはブラウザで列を調節します。フレームセットの 1 つを除くすべてのフレームに固定サイズか割合値が指定されている場合、その 1 つのフレームの幅をブラウザで計算させるにはアスタリスクのワイルドカードを使用します。属性値の文字列を区切るにはコンマを使用します。

属性文字列の値に 3 つのすべての種類の値を混ぜたり統一して使用できます。たとえば、3 つの列を持つフレームセットがあるとします。左端の列を 150 ピクセル幅にし、真ん中の列はフレームセット幅の合計の 50% である必要がある場合は、値を次のように設定します。

右端にある 2 つのフレームの正確な幅はブラウザウィンドウの幅調節によって異なります。この例での右端のフレーム幅は、フレームセットの半分の幅から左端のフレーム用の 150 ピクセルを引いたものにほぼ等しくなります。

右側に表示されない列を定義できます。表示される列にはパーセント値を指定し、その合計が 100% になるようにします。最後の列に対してはアスタリスクを指定します。

フレームの均一のグリッドを作成するには、frameset 要素のタグ内の cols 属性と rows 属性の両方に値を指定します。均一ではない配列には、この項で前述した frameset 要素の説明に従って frameset 要素をネストする必要があります。

 
 
<FRAMESET cols="25%,50%,25%">...</FRAMESET>
 

ピクセル数、パーセント値、またはワイルドカード (*) のコンマ区切りリストとして指定します。Macintosh 版 Internet Explorer 4 では、ワイルドカードを使用すると正しく動作しない場合があります。

 
既定値

100%

 
オブジェクト参照
 
[window.]document.getElementById(elementID).cols
frameborderNN 3 IE 3 HTML なし  

frameborder="borderSwitch"

オプション  

フレームセット内のすべてのフレームがボーダーを表示 (フレームの端間を分割) するかどうかを指定します。frame 要素の frameborder 属性はこの属性の frameset 要素の設定を上書きできますが、フレーム編成によってはフレームのサブグループからうまくフレームを削除できないことがあります。frameset 要素の属性はすべてのブラウザと OS でテストした上で注意して上書きしてください。

 
 
<FRAMESET cols="25%,50%,25%" frameborder="no">...</FRAMESET>
 

この属性を有効または無効にする値はブラウザによって異なります。Navigator の場合 : yesno。Internet Explorer 4 以降の場合 : yes | no および 1 | 0 の両方。ブラウザ間の互換性を保つため、「yes/no」のペアを使用してください。

 
既定値

yes

 
オブジェクト参照
 
[window.]document.getElementById(elementID).frameBorder
framespacingNN なし IE 3 HTML なし  

framespacing="pixelLength"

オプション  

Internet Explorer の framespacing 属性は border 属性の旧バージョンです。この古い属性は現在の Internet Explorer で下位互換性を保つためにサポートされています。framespacing 属性のビヘイビアは IE の OS バージョン間で統一されています。10 ピクセルに設定すると、Windows 版と Macintosh 版の両方で実質上同じフレーム間のボーダーが作成されます。IE 専用に使用する場合、framespacing 属性は OS バージョン間で同じ表示のボーダーを正確に作成できます。

 
 
<FRAMESET cols="25%,50%,25%" framespacing="7">...</FRAMESET>
 

正の整数ただし、border 属性とは異なり、0 に設定してもボーダーを削除しません。ボーダーを完全に非表示にするには frameborder 属性を使用します。

 
既定値

2

 
オブジェクト参照
 
[window.]document.getElementById(elementID).frameSpacing
rowsNN 2 IE 3 HTML 4  

rows="rowLengthsList"

オプション  

フレームセットにあるフレームの行配置のサイズや比率を定義します。frameset 要素を使用して複数の行でフレームを作成する場合、行ごとの値のリストを rows 属性に指定する必要があります。

行のサイズの設定には 3 とおりの方法があります。

ユーザーが変更したブラウザウィンドウ全体のサイズに関係なくフレーム行の高さを同じにするには、ピクセル数による絶対サイズを使用します。イメージなどの高さが固定されているオブジェクトをフレームで表示する場合に特に便利です。ユーザーが変更したブラウザウィンドウ全体のサイズに関係なく、フレームの高さをフレームセットの高さの特定の割合にするには、割合を使用します。rows 属性の値にすべて割合を使用するには、その合計が 100% になるようにしてください。値の合計が 100% にならない場合にはブラウザは行を調節します。フレームセットの 1 つを除くすべての行に固定サイズか割合値が指定されている場合、その 1 つの行の高さをブラウザで計算させるにはアスタリスクのワイルドカードを使用します。属性値の文字列を区切るにはコンマを使用します。

属性文字列の値に 3 つのすべての種類の値を混ぜたり統一して使用できます。たとえば、3 つの行から成るフレームセットがあるとします。ナビゲーションバーを入れるために一番下の行を 80 ピクセルの高さにし、真ん中の行は合計のフレームセットの高さの 50% である必要がある場合、値を次のように設定します。

一番上の 2 つのフレームの正確な高さはブラウザウィンドウの高さ調節によって異なります。この例での一番上のフレームの高さは、フレームセットの半分の高さから一番下の行用の 80 ピクセルを引いたものにほぼ等しくなります。

一番下に表示されない行を定義できます。表示される行にはパーセント値を指定し、その合計が 100% になるようにします。最後の行にアスタリスクを指定します。

フレームの均一のグリッドを作成するには、frameset 要素のタグ内の cols 属性と rows 属性の両方に値を指定します。均一ではない配列には、この項で前述した frameset 要素の説明に従って frameset 要素をネストする必要があります。

 
 
<FRAMESET rows="25%,50%,25%">...</FRAMESET>
 

ピクセル数、パーセント値、またはワイルドカード (*) のコンマ区切りリストとして指定します。Macintosh 版 Internet Explorer 4 では、ワイルドカードを使用すると正しく動作しない場合があります。

 
既定値

100%

 
オブジェクト参照
 
[window.]document.getElementById(elementID).rows
styleNN 4 IE 4 HTML 4  

style="styleSheetProperties"

オプション  

この属性を使用すると、現在の要素のスタイルシート規則プロパティ割り当てを設定できます。スタイル属性の割り当てには、CSS または JavaScript (Navigator 4 のみ) 構文を使用できます。style 属性は表示可能な要素についてのみ使用します。

 
 
<SPAN style="color:green; font-size:18px">Big, green, and bold</SPAN>
 

CSS 構文のスタイルシート規則全体は引用符によって囲まれます。複数のスタイル属性設定はセミコロンで区切られます。スタイルシート属性の詳細については、第 11 章を参照してください。

 
既定値

なし

 
オブジェクト参照
 
[window.]document.getElementById(elementID).style