HTML入門

フレーム

フレームはブラウザの画面を分割する方法です。下に左右2分割のフレームと、それを生成するHTML文が記述してあります。これを例に説明します。この例を入力してもフレームは単独では動作しません。フレームで分割された画面に表示するHTMLを指定する必要があります。

  mainFrameと名前をつけています。

<html>
<head> </head>
<frameset cols="80,*" frameborder="NO" border="0" framespacing="0">
<frame name="leftFrame" scrolling="NO" noresize src="*.html">
<frame name="mainFrame" src="*.html">
</frameset>
<noframes><body bgcolor="#FFFFFF">
あなたの使用しているブラウザはフレームをサポートしていません
</body>
</noframes>
</html>

フレームを定義するには<FRAMESET></FRAMESET>とします。BODYタグは使用しません。フレームを縦方向、横方向に分割するためにROWS、COLSアトリビュートが用意されています。このアトリビュートで分割数を決めます。ROWS、COLSを記述しないときは対応する方向の分割は行われません。

例では左右に2分割していますから、COLSアトリビュートで2つに分割するように指定しています。COLS=の右辺には、ピクセル、%、*の3種類の値を指定します。ピクセルは数値のみ、%は数値%と数値に続けて%を記述します。%を使用するときは必ず全体で100%となるようにします。*は相対値を表します。分割数に応じてコンマで区切ります。

cols="80.*"は、分割する左側は80ピクセル幅とし、右は自由な画面幅(残りの部分)とすることを意味しています。

【問題】
画面を横方向に3分割し、左右を100ピクセル、中央を相対指定するときの指定方法をのべよ

 

上の例で、COLSをROWSに差し替えROWS="80,*"とすると、上下2分割の画面となります。またROWS="80.*" COLS="80.*"とすると上下2分割左右2分割の4分割画面となります。それぞれ、問題で指定した画面、説明した画面の例を下に示します。

     
 
 
   
   
左右3分割
上下2分割
上下・左右2分割

フレームには、frameborder、 border、bordercolor、 framespacingなどのアトリビュートがあるが、ここでは説明を省略する。

分割されたフレームには、それぞれデータを表示するように指定する必要がある。フレームに表示する内容(フレームコンテンツ)をコントロールするためには<FRAME>を用いる。それぞれ分割された画面にNAME=”画面の名前”と名前をつけることにより、どの画面であるか区別する。また画面に表示するデータを指定するために、SRC=”表示するHTML文”と指定する。例では画面が2つに分割されているので2つの<FRAME>が書かれている。なお、画面をスクロールさせないときはSCROLLING="NO"とする。また画面サイズを変更させないときはNORESIZEとする。

<frame name="leftFrame" scrolling="NO" noresize src="*.html">

<frame name="mainFrame" src="*.html">

ブラウザによっては画面分割をサポートしていないものもあります。このようなブラウザでは画面表示が不能となるので
<NOFRAMES><BODY>注意をうながすメッセージ</BODY></NOFRAMES>
のように記述し、相手側にシステムの故障でないことを知らせるようにする。上の例では、フレームが使用できないとき

あなたの使用しているブラウザはフレームをサポートしていません

というメッセージを表示するようにしています。

【練習】

次の4例文を作成し、それぞれ同じディレクトリーに保存します。z7-0.htmlを実行させ、どのような動作をするか確認しよう。

z7-0.html
<html>
<head><title>HTML-RENSYU </title></head>
<frameset cols="80,*" frameborder="NO" border="1" framespacing="0">
<frame name="menu" scrolling="NO" noresize src="z7-1.html">
<frame name="main" src="z7-2.html">
</frameset>
<noframes><body bgcolor="#FFFFFF">
あなたの使用しているブラウザはフレームをサポートしていません
</body>
</noframes>
</html>
z7-1.html
<html>
<head></head>
<body bgcolor="#66ffff">
<p>目次<br>
<a href="z7-2.html" target="main">本論</a><br>
<a href="z7-3.html" target="main">結論</a></p>
</body>
</html>
z7-2.html
<html>
<head></head>
<body>
<h3 align="center">本論</h3>
これは本論です
</body>
</html>
z7-3.html
<html>
<head></head>
<body>
<h3 align="center">結論</h3>
これは結論です
</body>
</html>

実行結果はここを押す。

上の例は、画面の右側に目次を配置し、目次を選択すると左の本文が入れ替わるようになっています。

 

次に画面を上下2分割し、さらに下の部分を左右2分割してみましょう。

topFrame
left
Frame
mainFrame
<html>
<head> <title></title> </head>
<frameset rows="80,*" cols="*" frameborder="NO" border="0" framespacing="0">
<frame name="topFrame" scrolling="NO" noresize src="*.html">
<frameset cols="80,*" frameborder="NO" border="0" framespacing="0">
<frame name="leftFrame" noresize scrolling="NO" src="*.html"> <frame name="mainFrame" src="*.html">
</frameset>

</frameset>
<noframes><body bgcolor="#FFFFFF"> </body></noframes> </html>

上のリストで、赤色で表示した部分が上下の分割部分となります。上の部分はtopFrameと名前をつけています。下の部分のFRAMEの部分に左右分割用の青字で示したフレームセット定義が書かれています。

このフレームは3分割されていますので、データソースは3種類必要です。

この説明文は

わかりにくいところなど、気がついたら具体的にその部分と対応策について記述してください