HTMLの書き方 基礎15
発言番号 発言日時 発言者
01369 98/02/11 00:04 にゃん

● フレームに入れるファイルの書き方

フレームなしで表示させるファイルと比べて、特別に違った所はありません。いつものように html ファイルを書いてください。注意すべき点は、フレームの中は狭いので、狭いなりのレイアウトが必要だということと、別のファイルへリンクするときに、新しいオプションが必要になることくらいでしょうか。

● フレーム内からのリンク:同じフレームに表示

今までと同じように、<A HREF=" ">〜</A> でリンクを書いてください。そこをクリックすると、その同じフレームの中にリンク先のページが表示されます。ただし、狭いフレームの中にでかいページを呼び込んだとしても、読めるものではありません。よくある使い方は、目次フレームの中で「目次1」と「目次2」を切り替えるとか、内容表示フレームの中で「前の文書へ戻る」、「次の文書へ進む」といったリンクを作るというものです。

● フレーム内からのリンク:別のフレームに表示

「翻訳に役立つリンク集」では、左にある狭いフレーム("L" という名前)に目次li_idx.htm があって、そこをクリックすると、右にある広いフレーム("R" という名前)に、お目当てのァイルが表示されます。このように、クリックしたフレームとは別のフレームにリンク先が表示されるのは、リンクの <A HREF> タグに TARGETというオプションが付いているからです。

"R" という名前のフレームに表示させたいときは、

<A HREF="li_eve.htm" TARGET="R">特設★勉強会/イベント関連</A>

のように書きます(本当は、後述する別の手を使っています)。ここで使う名前は、フレーム設定ファイルの <FRAME> タグで、NAME によって定義した名前です。

● フレーム内からのリンク:ブラウザ全体に表示

トップページへ戻るリンクは、どのフレームをターゲットにしましょうか? どのフレームもダメですね。フレームを解除して、ブラウザ全体に表示させなくてはいけません。他人のホームページへのリンクも、他人のホームページは、あなたが切ったフレームの中に表示させるつもりで作ってあるわけじゃありませんから、ブラウザ全体に表示させるべきですね。そういうときには、TARGET="_top" を指定します。"_top" は、小文字でないといけないので注意してください。それから、アンダースコアを忘れないで。

<A HREF="index.htm" TARGET="_top">トップページへ戻る</A>

TARGET="_top" に似たのに、TARGET="_parent" があります。たいていの場合、どちらも動作は同じですが、あるファイルでフレームを切った中に、さらに別のフレームを切ったファイルを表示させている場合には、違ってきます。_top は、全部のフレームを解除して、ブラウザ全体にリンク先を表示します。_parent は、現在のファイルで作られたフレームだけを解除して、元からあるフレームはそのまま残ります。

● フレーム内からのリンク:新しいブラウザに表示

TARGET="_blank" と指定すると、もう一つ新しいブラウザが立ち上がって、その中にリンク先が表示されます(もちろんブラウザ全体に表示されます)。このへんのことは、前に『基礎8』で書いてしまったのでした。詳しくはそっちを見てください。

● フレーム内からのリンク:基本のターゲットを指定

どのリンクもほとんどみんな同じフレームをターゲットにしている場合、いちいちTARGET を書くのは面倒ですね。あらかじめ <HEAD>〜</HEAD> の中に <BASE TARGET=" "> というタグを書いておくと、いちいち指定する必要がありません。翻訳フォーラムの li_idx.htm では、

<HEAD><TITLE>FHONYAKU LINKS</TITLE><BASE TARGET="R"></HEAD>

こう書いてあるので、このファイルからのリンクは原則として "R" というフレームに表示されます。

● フレーム内からのリンク:入力フォームの場合

これは本当は、入力フォームの話をしてからなんですが、今回のシリーズでは、フォームにまで手を広げないことにします。ただ、Yahoo! とか検索エンジンのサイトで、あなたのホームページにも検索フォームを付けましょう、っていうんで、コピーして貼るだけで使えるフォームを提供していますね。そういうのをそのままフレームの中に貼ると、検索した結果もずーっとフレームに入ったままになっちゃうので、具合悪いです。そうならないように、<FORM ACTION> の所に TARGET を指定してください。たとえば次のように。

<FORM METHOD=GET ACTION="http://search.yahoo.co.jp/bin/search" target="_blank">
<INPUT SIZE=30 NAME=p>
<INPUT TYPE=submit VALUE="Yahoo! JAPAN">
</FORM>

● フレームを切ってないときに TARGET を使うと

フレーム機能のあるブラウザでは、たとえば TARGET="R" と書いてあると、"R" という名前のフレームを探して、そこに表示しようとするので、その名前のフレームがなければ、新しく作ってしまいます。つまり、新しいブラウザが立ち上がります。

● フレーム設定のオプション:境界線の表示/非表示

フレーム設定ファイルの <FRAMESET> タグで、<FRAMESET COLS=30%,* FRAMEBORDER=0>のように FRAMEBORDER=0 を指定すると、フレームの間の境界線が表示されなくなります。FRAMEBORDER=1(または省略)だと、フレームの間にいくらか幅のある境界線が表示されます。0 か 1 の代わりに、no か yes でもいいみたいです。<FRAMESET>タグではなく <FRAME> タグに、このオプションを書くこともできるようです。

フレームの境界線を消すために FRAMEBORDER=0 を指定しただけでは、ブラウザによっては灰色の線が残ってしまいます。さらに FRAMEBORDER=0 FRAMESPACING=0 BORDER=0 まで指定すると、すべてのブラウザで境界線を消すことができるようです。

● フレーム設定のオプション:境界線を固定する

フレーム設定ファイルの <FRAME> タグで、<FRAME SRC="URL" NORESIZE> のようにNORESIZE というオプションを付けると、フレームの境界線をドラッグして動かすことができなくなります。これが付いていない場合は、見やすいように勝手に仕切りをずらすことができます。

他にもオプションがありますけど、省きます。

前の記事 次の記事

目次

翻訳フォーラムのトップページ