<<PREV | TOP | NEXT>>

FRAMESET DTD

  1. Frameset 文書とは何だろうか
  2. Frameset DTD
  3. FRAMESET 要素
  4. FRAME 要素
  5. NOFRAMES 要素
  6. リンク先の表示フレーム枠指定
  7. 複数フレーム枠の同時更新

FRAME 文書は HTML 4 では特別な DTD で定義されています。

文書型定義宣言;

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN"
            "http://www.w3.org/TR/html4/frameset.dtd">

典型的なページは次のように記述されます;

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN"
        "http://www.w3.org/TR/html4/frameset.dtd">
<html>
<head>
...
</head>
<frameset>
...
</frameset>
</html>

Frameset DTD は Transitional DTD (loose DTD) にフレーム定義要素を追加して修正するという形で定義されています。原則 Transitional に従うとして良いでしょう。

<!ENTITY % html.content "HEAD, FRAMESET">
<!ELEMENT HTML O O (%html.content;)    -- document root element -->
<!ATTLIST HTML
  %i18n;                               -- lang, dir --
  %version;
  >
DTDHTML 要素の内容モデル
TransitionalHEAD, BODY
FramesetHEAD, FRAMESET

Frameset 文書の場合、最大親要素(ルート)である HTML 要素の子供要素(内容モデル)は HEAD 要素FRAMESET 要素です。

Transitional では FRAMESET 要素ではなく BODY 要素が定義されていました。

<!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 --
  >
<!-- 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 --
  >
<!ENTITY % noframes.content "(BODY) -(NOFRAMES)">
<!ELEMENT NOFRAMES - - %noframes.content;
 -- alternate content container for non frame-based rendering -->
<!ATTLIST NOFRAMES
  %attrs;                              -- %coreattrs, %i18n, %events --
  >

FRAMESET 文書で追加・修正された要素は FRAMESET, FRAME, NOFRAMES 要素です。

FRAMESET 要素はウィンドウの分割体裁を指定し、 NOFRAMES 要素を含む事で、フレームをサポートしていなかったり、表示しないように設定しているブラウザの為の代替内容を提供できます。

BODY 要素やその子供要素は、最初の FRAMESET 以前に現れてはならず、現れた場合は後続の FRAMESET 要素は無視されます。

<<PREV | TOP | NEXT>>

FC2> モビット