初心者にも分かり易く解説してみます。(本当に分かり易いかは謎ですが)
先ず画像(img要素)の任意の位置にインラインフレームを配置するための原理を 簡単に説明します。(イメージマップの部分は省略しています)
紫色の部分はイニシャル・コンテナブロックと言う
ボックスです。この範囲内では独立した座標系が適用されますので、このボックスを
どんな位置に配置してもボックス内部の位置関係は正しく固定されます。
このコンテナブロック内にイメージマップ(クリッカブルマップ)に関連付けした画像と
絶対位置指定したインラインフレーム(アイフレ)を入れる訳です。
※ イニシャル・コンテナブロックとなる条件はdisplayプロパティがblockかつ
positonプロパティにabsolute、relativeまたはfixedが指定された要素です。
(但し、positon:fixed はIE6以下は実装されていない)
※ div要素は通常 displayプロパティがblockですが、これはブラウザの実装に於いて
必須となっていない為 display:block; と指定しています。
以下、ページ冒頭のサンプルを用いて説明します。
サンプルのソース
※ 画像の座標は画像処理ソフト等で調べることが出来ます。
※ Windowsではイメージマップを作成出来るフリーウェアとして、C-MAPやAreaMaker、
Client Side Image Map Editor(CSIM-Editor)、まっぷエディタ等があります。
画像が大きく、周囲の余白が気になる場合は<head>〜</head>の部分に 次のスタイルシートを書き入れてください。
以上でインラインフレーム+イメージマップを配置するページは完成です。
ここから下はフレーム内に表示させるページに適用するスタイルシートの
方法です。つまり、この記事のサンプルでは
(注)このスタイルシートはインラインフレームの中に表示させるページにのみ
使用してください。インラインフレームを置くページに filter: Chroma(color=色);
があるとIEでは透過に支障が出ます。
※ インラインフレームの透過は、初期状態でフレーム背景が透過とならない
IE 5.5、6 に対する対策です。
※ filter: Chroma(color=色); は指定した色を透明にするフィルターです。(IE5.5以上)
ページ毎に行う方法
インラインフレーム内に表示させる各ページの<head>〜</head>の部分に
以下のスタイルシートを記述します。
外部スタイルシートによる方法
外部スタイルシートを使用した方がスクロールバーの色も一括して変更出来、
管理も楽になります。
iframe.cssと同じ内容のファイルを作成、
アップロードして、インラインフレーム内に表示させる各ページの
<head>〜</head>の中に次のlinkタグを書き入れます。
※ IE以外のブラウザでは背景色は初期状態で透過(transparent)となっていますので、
特に background-color: transparent; を指定しなくともフレーム内は透過となります。
(フレームの透過に対応していない一部のブラウザを除く)
※ スクロールバーの配色はIE 5.5以上と一部のブラウザ(Opera、Konqueror等)に
効果があります。また、スクロールバーの透過はIE 5.5以上のみです。
※ 横スクロールバーが出て目障りな場合は、body { }の中に overflow-x: hidden;
を追加してください。(IE、Mozilla 1.8以上)