この要素は、ウインドウを複数の四角い枠(フレーム)に分割するレイアウトを設定します。通常のHTML文書は、HEAD要素とBODY要素から構成されますが、フレームのレイアウトを設定する文書はHEAD要素とFRAMESET要素で構成されます。つまり、通常BODY要素があるべき部分に代わりにFRAMESET要素を配置することになります。FRAMESET要素の前にBODY要素内で使用される要素が配置された場合は、FRAMESET要素は無視されますので注意してください。この要素は何重にも入れ子にして使用することができます。
フレームを定義する文書中のHEAD要素の中で、OBJECT要素の「id」属性を使用してデータに名前をつけておくと、各フレーム文書でそのデータを共有して参照することができます。また、この要素内にNOFRAMES要素を配置しておくと、フレームをサポートしていないブラウザやフレームを表示しないように設定しているユーザー用に、別の内容を用意しておくことができます。
・onload = スクリプト (CT)
onunload = スクリプト (CT)
<![ %HTML.Frameset; [
<!ELEMENT FRAMESET - - ((FRAMESET|FRAME)+ & NOFRAMES?) -- window subdivision-->
<!ATTLIST FRAMESET
%coreattrs; -- id, class, style, title --
rows %MultiLengths; #IMPLIED -- list of lengths, default: 100% (1 row) --
cols %MultiLengths; #IMPLIED -- list of lengths, default: 100% (1 col) --
onload %Script; #IMPLIED -- all the frames have been loaded --
onunload %Script; #IMPLIED -- all the frames have been removed --
>
]]>
このページは、以下のようにフレーム分けされています。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN"
"http://www.w3.org/TR/html4/frameset.dtd">
<HTML lang="ja">
<HEAD>
・・・
</HEAD>
<FRAMESET rows="54,*">
・・・
<FRAMESET cols="210,*">
<FRAMESET rows="*,40">
・・・
</FRAMESET>
・・・
</FRAMESET>
・・・
</FRAMESET>
</HTML>
この要素は、FRAMESET要素によって分割された各フレームの内容と表示方法を設定します。この要素は必ずFRAMESET要素内に記述されなければなりません。また、フレームの内容として、フレームを定義している元の文書を含むことはできません。
<![ %HTML.Frameset; [
<!-- reserved frame names start with "_" otherwise starts with letter -->
<!ELEMENT FRAME - O EMPTY -- subwindow -->
<!ATTLIST FRAME
%coreattrs; -- id, class, style, title --
longdesc %URI; #IMPLIED -- link to long description (complements title) --
name CDATA #IMPLIED -- name of frame for targetting --
src %URI; #IMPLIED -- source of frame content --
frameborder (1|0) 1 -- request frame borders? --
marginwidth %Pixels; #IMPLIED -- margin widths in pixels --
marginheight %Pixels; #IMPLIED -- margin height in pixels --
noresize (noresize) #IMPLIED -- allow users to resize frames? --
scrolling (yes|no|auto) auto -- scrollbar or none --
>
]]>
このページの例です。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN"
"http://www.w3.org/TR/html4/frameset.dtd">
<HTML lang="ja">
<HEAD>
・・・
</HEAD>
<FRAMESET rows="54,*">
<FRAME src="title.html" name="title" title="タイトル"
scrolling="no" marginwidth="0" marginheight="0">
<FRAMESET cols="210,*">
<FRAMESET rows="*,40">
<FRAME src="elmntlist.html" name="menu"
title="メニュー" marginwidth="6" marginheight="6">
<FRAME src="jumpmenu.html" name="popupmenu"
title="ポップアップメニュー" scrolling="no"
marginwidth="0" marginheight="6">
</FRAMESET>
<FRAME src="cover.html" name="contents" title="コンテンツ"
marginwidth ="10" marginheight="10">
</FRAMESET>
<NOFRAMES>
<BODY>
・・・
</BODY>
</NOFRAMES>
</FRAMESET>
</HTML>
この要素は、フレームが表示されない状態の時に、代わりに表示する内容を示します。この要素は、フレームを定義する文書中のFRAMESET要素内に配置することもできます。(Transitional DTDでは、一般的なブロックレベル要素としても定義されています。)
・onclick = スクリプト (CT)
ondblclick = スクリプト (CT)
onmousedown = スクリプト (CT)
onmouseup = スクリプト (CT)
onmouseover = スクリプト (CT)
onmousemove = スクリプト (CT)
onmouseout = スクリプト (CT)
onkeypress = スクリプト (CT)
onkeydown = スクリプト (CT)
onkeyup = スクリプト (CT)
<!ENTITY % flow "%block; | %inline;">
<![ %HTML.Frameset; [
<!ENTITY % noframes.content "(BODY) -(NOFRAMES)">
]]>
<!ENTITY % noframes.content "(%flow;)*">
<!ELEMENT NOFRAMES - - %noframes.content; -- alternate content container for non frame-based rendering -->
<!ATTLIST NOFRAMES
%attrs; -- %coreattrs, %i18n, %events --
>
このページの例です。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN"
"http://www.w3.org/TR/html4/frameset.dtd">
<HTML lang="ja">
<HEAD>
・・・
</HEAD>
<FRAMESET rows="54,*">
<FRAME src="title.html" name="title" title="タイトル"
scrolling="no" marginwidth="0" marginheight="0">
<FRAMESET cols="210,*">
<FRAMESET rows="*,40">
<FRAME src="elmntlist.html" name="menu"
title="メニュー" marginwidth="6" marginheight="6">
<FRAME src="jumpmenu.html" name="popupmenu"
title="ポップアップメニュー" scrolling="no"
marginwidth="0" marginheight="6">
</FRAMESET>
<FRAME src="cover.html" name="contents" title="コンテンツ"
marginwidth ="10" marginheight="10">
</FRAMESET>
<NOFRAMES>
<BODY>
・・・
</BODY>
</NOFRAMES>
</FRAMESET>
</HTML>
この要素を使用すると、文章の中にインラインのフレームを配置することができます。ただし、この要素で作成されたフレームの大きさは変更することができません。フレーム内には、この要素の「src」属性で指定された内容が表示されます。要素の内容は、フレームをサポートしていないブラウザを使用している場合や、フレームを表示しないように設定している場合にのみ表示されます。OBJECT要素を使用しても同様な表示をすることはできますが、ターゲットとして指定したり、選択された状態にすることはできません。
<!ENTITY % flow "%block; | %inline;">
<!ELEMENT IFRAME - - (%flow;)* -- inline subwindow -->
<!ATTLIST IFRAME
%coreattrs; -- id, class, style, title --
longdesc %URI; #IMPLIED -- link to long description (complements title) --
name CDATA #IMPLIED -- name of frame for targetting --
src %URI; #IMPLIED -- source of frame content --
frameborder (1|0) 1 -- request frame borders? --
marginwidth %Pixels; #IMPLIED -- margin widths in pixels --
marginheight %Pixels; #IMPLIED -- margin height in pixels --
scrolling (yes|no|auto) auto -- scrollbar or none --
align %IAlign; #IMPLIED -- vertical or horizontal alignment --
height %Length; #IMPLIED -- frame height --
width %Length; #IMPLIED -- frame width --
>
<IFRAME src="abc.html" width="280" height="120" scrolling="auto" frameborder="1">
この部分には、インライン・フレームを使用しています。別ページでも<A href="abc.html">その内容</A>を参照できます。
</IFRAME>