4-21-1a インラインフレーム関連

iframe(インラインフレーム)とは フレーム と違って画面を分割したりは致しませんが、 その代わりブラウザに表示されたページの好きな所に別のHTML文章を表示する事が出来ます。 (ちなみに iframe は 『inline frame』 の略語です)

但しiframeはNNは6以上からしか対応しておりません。 (NNではilayerという機能がそれに該当致します)。文章型宣言でも html 4.01 と XHTML 1.0 の Transitional//EN 、Frameset//EN でのみ使用出来ます。 排除勧告は出ていないようですが、余り アクセシビリティとユーザービリティ が高いとは云い難いので、使用しない方が良いタグの一つかも知れません(^^;

4-21-1b インラインフレームの仕組

iframe(インラインフレーム)は基本的に

<iframe>
インラインフレームに対応していないブラウザ向けの案内(呼び出したいHTMLのアドレスを記載)
</iframe>

という形で使用致します。
詳しい指定は <iframe src="呼び出したいHTMLのアドレス" name="update" title="更新履歴です"> 等といった形で記載致します。

4-21-1c インラインフレームの属性

<iframe> を作成する際に利用する属性の一覧です。

src
<iframe>内で使用したい外部ファイルのURL先を指定致します。
name
作成したインラインフレームに名前を付ける事が出来ます。 (これをしていないとリンクを張った時に表示したい場所に作品等を表示する事が出来ません) 必ず半角英数字で指定して下さい。
title
作成したインラインフレームにタイトルを付ける事が出来ます。(使用しているブラウザがIEならば、 名前を付けたインラインフレームの上にカーソルを持って行くと、設定した内容がポップアップ形式に表示されます)
frameborder
frameborder="0" にするとインラインフレームの境界線を消す事が出来ます。(規定値は frameborder="1" です)
border
border="0" にするとフレームの境界線を消す事が出来ます。(境界線の幅を決める項目なので、0以外の数値も指定出来ます)。 この項目はCSSで指定出来るので、実際に<iframe>タグ内で記載する事はありません。
bordercolor
境界線の色を決める事が出来ます。この項目はCSSで指定出来るので、実際は「border」として記載致します。 (上記の単語は直接HTML文章内に書き込む際に利用していた属性です)。
scrolling
作成したフレームのスクロールバーの有無を設定出来ます。
  • yes (常にバーを表示致します)
  • no (バーを表示致しません)
  • auto (必要に応じてバーを表示致します)
    これが規定値です。

スクロールバーは常に表示するか、auto(自動設定)にしておくのが望ましいです(バーの表示を拒否していた場合、訪問者の解像度次第では全てを見る事が出来ないケースも出て来る為です)。

marginwidth、marginheight
インラインフレームの境界線から中身までのマージン(余白)を設定出来ます。
  • marginwidth (左右のマージンを設定出来ます)
  • marginheight (上下のマージンを設定出来ます)

この項目はCSSで指定出来るので、実際は「padding」として記載致します。 (上記の単語は直接HTML文章内に書き込む際に利用していた属性です)。外側の余白は「margin」で指定出来ます。

4-21-1d 具体的な見本

<iframe> の見本をclass属性 を利用して表示してみました。

CSS

<head> ~ </head> 内に記述して下さい。
<style type="text/css">
<!--

.sample-1L {
width: 350px; /* 横幅 */
height: 150px; /* 高さ */
float: right; /* 右寄せ */
border: 1px solid #0000cc; /* インラインフレームの周りの線(実線で赤) */
margin: 20px; /* インラインフレームの外の余白(上下左右一括) */
padding: 5px 20px 20px 5px; /* インラインフレーム内の余白(上5px、下20px、左5px、右20px) */
}

.clear { clear: both; } /* 両端の回り込みを解除する */

-->
</style>

[ 関連事項 : HP-TIPS > CSS > 外部スタイルシートの記述方法 ]


HTML

<body> ~ </body> 内に記述して下さい。

<p>
下記のインラインフレームの中身は <a href="../bm/mt-f.html">素材ページのノーフレーム版</a> が表示されております。
</p>

<iframe src="../bm/mt-f.html" class="sample-1L" name="contents" title="インラインフレームの見本です。(素材ページのノーフレーム版を表示)" frameborder="0">
インラインフレームを表示しております。中身が見れない方は <a href="../bm/mt-f.html">こちら(素材ページのノーフレーム版)</a> をご覧下さいませ。
</iframe>

<p class="clear">
実際にクリックすると該当の素材が見れますが、窓が小さいとコンテンツの中身を見る際に非常に苦労するという、悪い例(見本)だと思っていて下さい(^^;
</p>

表示結果

下記のインラインフレームの中身は 素材ページのノーフレーム版 が表示されております。

実際にクリックすると該当の素材が見れますが、窓が小さいとコンテンツの中身を見る際に非常に苦労するという、悪い例(見本)だと思っていて下さい(^^;

上記の<iframe>を IEとNN、OPERA、firefoxで表示してそれぞれを画像 にしてみました(約16.0KB)。

4-21-1e インラインフレームのページからリンクを張る場合

<iframe> の中で設定したname属性の名前を利用して下さい。

4-21-1f インラインフレームの非表示

<iframe> タグは企業の広告等の表示で利用される事が多く、各ブラウザでインラインフレームを非表示にする事が出来るケースが多いです。 また、小窓の大きさを自由に決められる事から悪意のある業者等のページでも同タグが利用され、該当のページを見た途端ウイルスに感染させられたり、パスワードを盗まれたりするケースがあります。

【 参考URL 】

4-21-1f 各ブラウザの設定

各ブラウザごとに<iframe> を非表示にする方法です。

Internet Explorer

メニューバーにあります、『 ツール(T) > インターネットオプション(O) > セキュリティ > レベルのカスタマイズ(C) > セュリティの設定 』 の中にある、「その他 > IFRAMEのプログラムとファイルの起動」を無効にしてOKボタンを押して下さい。

IEにおけるiframe無効化設定画面

※ IE6.0での設定方法です。


Netscape Navigator

ネットエスケープナビゲーター 7.1 では、特に<iframe> タグを非表示にする設定は無いようです。(NNでは6以上のヴァージョンでないと同タグは表示されません)


OPERA

メニューバーにあります、『 ツール(T) > 設定(R) > 詳細設定』 の中にある「コンテンツ」を選択し、「スタイルオプション」をクリックして下さい。

OPERAにおける設定画面

『 スタイルオプション > 表示設定 』 の中にある、「インラインフレームを表示」のチェックボタンを外してOKボタンを押して下さい。

OPERAにおけるスタイルオプション画面でインラインフレームの表示が設定出来ます

設定前と後を画像にしてみました。 OPERAではこんな感じになります(約7.51KB)
もしここで <iframe> に対応していないブラウザ向けの文章が書いていなければ、(それか表示されないHTML文章へのリンクが張っていなければ)、訪問者は謎のスペースを見て(--; ?状態に陥ります(汗)

※ OPERA9.2での設定方法です。


Firefox

Firefox 2.0 ではデフォルト(ダウンロードしたばかりの初期値の状態)で<iframe>部分を非表示には出来ない(?)ようです。 その代わり、表示された各サイトの画像をマウスで右クリックして一括で非表示に出来たり、 アドオン(Firefox の機能や外観を追加、変更する為のソフトウェア[ウェブブラウザにおけるプラグインと同意])で JavaScript や Iframe 等をブロックする「No Script」や、広告や同タグを非表示にして下さる「Adblock Plus」があります。

4-21-1g 擬似インラインフレームの作り方

<iframe> タグを利用しないでそれっぽく見せる方法です。<div> タグを利用し、はみ出した部分をoverflowするという物です。 但しIE4、NN6、OPERA6、Firefox1以上でないと表示出来ません。


CSS

<head> ~ </head> 内に記述して下さい。
<style type="text/css">
<!--

.sample-1m {
width: 350px; /* 横幅 */
height: 50px; /* 高さ */
padding: 5px; /* 枠内の余白 */
border: 1px solid #0000cc; /* 線は実線で赤 */
overflow: auto; /* はみ出した部分は自動的にスクロールバーを表示 */

/* スクロールバーの色指定(赤) */
scrollbar-face-color:#660000;
scrollbar-track-color:#660000;
scrollbar-arrow-color:#ffffff;
scrollbar-highlight-color:#ffffff;
scrollbar-shadow-color:#ffffff;
scrollbar-3dlight-color:#660000;
scrollbar-darkshadow-color:#660000;
}

-->
</style>

[ 関連事項 : HP-TIPS > CSS > 外部スタイルシートの記述方法 ]


HTML

<body> ~ </body> 内に記述して下さい。
<div class="sample-1m">
<p>
このボックスにオーバーフローを設定しております。はみ出した文章は自動的に枠内に収まり、スクロールバーが表示されます。
</p>
<p>
段落を使用しても同じ事になります。
</p>
</div>

表示結果

このボックスにオーバーフローを設定しております。はみ出した文章は自動的に枠内に収まり、スクロールバーが表示されます。

段落を使用しても同じ事になります。


上記の見本の 各ブラウザの違いはこちらの画像をご覧下さい(約8.97KB)