文書型 | 適用 | 子要素 | 開始タグ | 終了タグ | 分類 |
---|---|---|---|---|---|
Strict | × | 利用できません | |||
Transitional | ○ | インライン要素 ブロックレベル要素 | 必須 | 必須 | ブロックレベル要素 |
Frameset | ○ | body要素 | frameset要素の子要素 |
フレームを利用したページを作るときに、フレーム未対応のブラウザやフレームを表示しないように設定している場合などに、代わりに表示する内容を表す要素です。Frameset DTDではframeset要素の子要素に配置します。
Frameset DTDの場合noframes要素の中身にはbody要素が一つ必要で、その中にサイトのタイトルやメニューなどが記述されます。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN"
"http://www.w3.org/TR/html4/frameset.dtd">
<html lang="ja">
<head>
…
</head>
<frameset title="サイトのタイトル" cols="100,*">
<frame src="menu.html" title="メニュー" name="left">
<frame src="main.html" title="メイン画面" name="right">
<noframes>
<body>
<h1>サイトのタイトル</h1>
<ul>
<li><a href="diary.html">日記帳</a></li>
<li><a href="works.html">作品</a></li>
<li><a href="profile.html">プロファイル</a></li>
</ul>
</body>
</noframes>
</frameset>
</html>
Lynxでは次の図のように表示されます。
noframes要素はframeset要素の子要素です。<frameset>
〜</frameset>
の外側に配置してはいけません。次の例は誤りです。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN"
"http://www.w3.org/TR/html4/frameset.dtd">
<html lang="ja">
<head>
…
</head>
<frameset title="サイトのタイトル" cols="100,*">
…
</frameset>
<noframes>
<body>
…
</body>
</noframes>
</html>
また、<noframes>
の「s」を落として<noframe>
としないよう気をつけてください。
noframes要素の中身には、フレームページの代わりになる内容を記述します。次のような例はよくありません。
<noframes>
<body>
<p>フレームに対応したブラウザでご覧ください。</p>
</body>
</noframes>
これでは結局フレーム未対応のブラウザで閲覧できないので、noframes要素の意味がありません。
<![ %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 --
>