* frameset 要素型 (HTML, XHTML 1) [1] [[HTML]] の [DFN[[CODE(HTMLe)[frameset]] 要素型]]の要素は、 [[UA]] の主要窓内の表示の配置を指定します。 [2] 仕様書: - [[HTML 4]] -- 16.2 Layout of frames [3] :[[開始タグ]]:必須 :[[終了タグ]]:必須 :出現できる文脈:[CODE(HTMLe)[[[html]]]] の子供で [CODE(HTMLe)[[[head]]]] の後 :[[内容模型]]:[CODE(SGML)[([CODE(HTMLe)[frameset]] | [CODE(HTMLe)[[[frame]]]])+ & [CODE(HTMLe)[[[noframes]]]]?]] :[[属性]]: ,属性名,属性値,既定値,説明,出典 ,[CODE(HTMLa)[[[class]]]],,(なし),級,[HTML 4] [CODE(SGML)[%[[coreattrs]]]] ,[CODE(HTMLa)[[[cols]]]],[CODE(SGML)[%[[MultiLengths]]]],[CODE(HTML)[100%]],横分割,[HTML 4] 枠 ,[CODE(HTMLa)[[[id]]]],[CODE(SGML)[[[ID]]]],(なし),固有識別子,[HTML 4] [CODE(SGML)[%[[coreattrs]]]] ,[CODE(HTMLa)[[[onload]]]],[CODE(SGML)[%[[Script]]]],(なし),読込み時,[HTML 4] 枠 ,[CODE(HTMLa)[[[onunload]]]],[CODE(SGML)[%[[Script]]]],(なし),Unload 時,[HTML 4] 枠 ,[CODE(HTMLa)[[[rows]]]],[CODE(SGML)[%[[MultiLengths]]]],[CODE(HTML)[100%]],縦分割,[HTML 4] 枠 ,[CODE(HTMLa)[[[style]]]],[CODE(SGML)[%[[StyleSheet]]]],(なし),スタイル,[HTML 4] [CODE(SGML)[%[[coreattrs]]]] ,[CODE(HTMLa)[[[title]]]],[CODE(SGML)[%[[Text]]]],(なし),注釈的題,[HTML 4] [CODE(SGML)[%[[coreattrs]]]] [CODE(HTMLa)[cols]] と [CODE(HTMLa)[rows]] は、 両方指定しても指定しなくても、一方だけ指定しても構いません。 [[#comment]] ** 出現できる文脈 [4] 通常 [CODE(HTMLe)[[[body]]]] 内に出現する要素は ([CODE(HTMLe)[head]] の弟の) [CODE(HTMLe)[frameset]] より前に現れてはなりません [SRC[HTML 4 16.2]]。 といってもこれは内容模型的に当たり前のことです。 [[#comment]] ** 内容 [8] [CODE(HTMLe)[frameset]] 要素は枠の配置を定義しますが、 実際のその枠の名前や初期状態などは、 [CODE(HTMLe)[[[frame]]]] 要素を使って定義します。更に分割する際には [CODE(HTMLe)[noframes]] を入れ子に使います。 [CODE(HTMLe)[frame]] や [CODE(HTMLe)[noframes]] は、 [CODE(HTMLa)[rows]] と [CODE(HTMLa)[cols]] によって定義した枠1つに対応します。 [[文書順]]に、1行1列, 1行2列, ..., 1行[VAR[n]]列, 2行1列, 2行2列, ..., 2行[VAR[n]] 列, ..., [VAR[n]]行1列, [VAR[n]]行2列, ..., [VAR[n]]行[VAR[n]]列と対応します。 [SRC[HTML 4 16.2.1.1]] [9] また、枠に対応していない UA や枠を使わない設定の場合などのために、 [CODE(HTMLe)[[[noframes]]]] 要素で[[代替内容]]を記述しておくべきです。 [[#comment]] ** 他との関係 [7] [CODE(HTMLe)[frameset]] 文書の [CODE(HTMLe)[head]] で [CODE(HTMLe)[[[object]]]] 要素を使って、 子フレーム間でデータを共有することができます [SRC[HTML 4 16.2.1.3]]。 >>6 の例を参照してください。 [[#comment]] ** 例 [5] 入れ子の例 [SRC[HTML 4 16.2.1.2]] [PRE(HTML)[ ...contents of first frame... ...contents of second frame, first row... ...contents of second frame, second row... ...contents of third frame... ]PRE] この例では、窓全体を横3つにほぼ均等に分け、 左から2つ目をたてに2つに分けています。 [6] フレーム間データ共有の例 [SRC[HTML 4 16.2.1.3]] [PRE(HTML)[ This is a frameset with OBJECT in the HEAD ]PRE] 利用する側の例: [PRE(HTML)[ Bianca's page ...the beginning of the document...

...the rest of the document... ]PRE] 実際の文書では、 [SAMP(URI)[bianca.html]] がフレーム無しで単独で読み込まれることが十二分にあり得ますから、 スクリプト内でその場合の対処を行う必要があります。 [10] フレーム集合文書の例 [SRC[HTML 4 16.1]] [PRE(HTML)[ A simple frameset document <P>This frameset document contains: <UL> <LI><A href="contents_of_frame1.html">Some neat contents</A> <LI><IMG src="contents_of_frame2.gif" alt="A neat image"> <LI><A href="contents_of_frame3.html">Some other neat contents</A> </UL> ]PRE] レンダリング例: [PRE(HTML)[ --------------------------------------- | | | | | | | Frame 1 | | | | | | | | |---------| | | | Frame 3 | | | | | | | | | | | Frame 2 | | | | | | | | | | | | | | --------------------------------------- ]PRE] [[#comment]] ** メモ [[#comment]] * メモ