4,5番目の欠点については、ページデザインに注意を払うことによって、避ける ことは可能である。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
<frameset cols="30%,70%"> <frame src="link1.html"> <frame src="link2.html"> </frameset>
link1.html | link2.html |
<frameset rows="20%,80%"> <frame src="link1.html"> <frame src="link2.html"> </frameset>
link1.html |
link2.html |
<frameset cols="30%,70%"> <frame name="menu" src="link1.html"> <frame name="main" src="link2.html"> </frameset>link1.html ファイルの中のリンクにおいて、現在 link2.html が表示されてい る右側のフレームにコンテンツを表示したいとき、link1.html に書くべきリン クには、target属性の値を右側のフレームの名前とする必要がある。
<a target="main" href="link3.html">LINK3を表示</a>target属性の値には、始めから以下のものが用意されている。
よくフレームが使われる例として、フレームによって左右にブラウザを分割し、 右側にメニュー、左側にそのメニューが示すコンテンツを表示するものが挙げ られる。上下に分割し、上をメニューとするものもある。
このときメニュー側のリンクタグには、target="コンテンツ側のフレーム 名" をつける必要がある。しかし、この時全てのリンクに target 属性を付け るのは面倒である。そこで、もしコンテンツ側のフレーム名が main であれば、 メニューのヘッダ部に、
<base target="main">と書いておけば、全てのリンクは main のフレームに表示される。それ以外の 表示を行いたいときのみ、リンクに target 属性を設定するとよい。
トップページにメニューを置き、サイトのコンテンツへのアクセスを助け る機能を、広い意味でのナビゲーション機能という。しかし、このようなナビ ゲーション機能をフレームによって実現する方法は、近年やや人気が無くなっ て来ているようである。その理由は、フレームの欠点 に示した。
フレームによるメニューに代わって、現在では表機能を使った複雑な段組 を作り、表の要素としてメニューを入れるものが、ナビゲーション機能として、 見栄え、使いやすさともに人気を集めつつあるようだ。しかし、フレームと同 等な使い勝手を実現するには、どのページの一部にもナビゲーション機能(メ ニュー)を含まれていなければならない。このため、メニューの変更(新たなコ ンテンツの追加など)があった場合は、ほとんど全てのコンテンツのメニュー 部にその変更が及ぶので、コンテンツの管理を手作業にて行うのは非常に困難 である。通常、そのようなデザインのサイトでは、動的Webコンテンツ生成が 使われているため、メニュー変更も、あまり作成者の負担にはならない。
表機能を使ったメニューを備えたページ
Impress PC Watch一方で、フレームを使ったメニューの場合、基本的にメニューの変更は、メ ニュー用のHTML文書の変更だけで済み、既に作成したコンテンツについては、メ ニューの変更による内容の変更は及ばないため、手作業による管理が比較的楽で ある。したがって、手作業でWebコンテンツを管理する場合には、フレームを使っ たメニューによってナビゲーション機能を持たせるデザインがお勧めである。