• ベストアンサー

表示範囲の狭い時のアンカータグについて

仕事でHTMLを製作しております。 環境はウインドウズXPSP2です。 HTMLの構造は 親ページ、A.htmlに、 子ページ、B.htmlが <iframe name=001 src="B.html" frameborder=0 width=200 scrolling=auto height=1000></iframe> に表示されているというものです。 A.htmlに項目がずらっと並んでいて、 それにリンクが張ってあり、それらをクリックすると 表示されているB.htmlの指定箇所を表示するというものです。 現在、A.htmlのリンクは、 <a href="B.html#01">1</a> <a href="B.html#02">2</a> <a href="B.html#03">3</a>となっており、 B.htmlには、 <a name="01"></a> <a name="02"></a> <a name="03"></a> となる、アンカーリンクが張ってあります。 これで、動きは完動するのですが、 <iframe name=001 src="B.html" frameborder=0 width=200 scrolling=auto height=1000></iframe> とあるように、表示されている縦が1000と、デザイン上すごく長くて、ふつうのPCでは表示し切れていません。現状この状況でアンカーリンクをクリックすると、通常動作と同時に親ページ、A.htmlの表示がページの一番下にスクロールしてしまいます。 A.htmlにある項目がデザイン上、上方にあるので、 他の項目を見るたびにA.htmlを上までスクロールしなければいけないのです。 アンカータグであるという原因はわかっているのですが、対処の仕方に悩んでいます。 わかりずらい状況かもしれませんが、 ご教授よろしくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
noname#38724
noname#38724
回答No.1

<a href="B.html#01">1</a>は<a href="B.html#01" target="001">1</a>にしてますよね? >通常動作と同時に親ページ、A.htmlの表示がページの一番下にスクロールしてしまいます。 が良くわからないのですが、テストしてみた所"A.htmlの表示がページの一番下にスクロール"にはなりませんでした。A.htmlのソースを乗せた方が回答しやすいかもしれないです。

samejima
質問者

お礼

ご回答ありがとうございます。 わかりずらい質問でした。申し訳ございません。 数日経過して、若干状況が変わりましたので、 もう少し整理して、別の質問として質問させていただきます。 今回はありがとうございました。

その他の回答 (1)

  • goldfox
  • ベストアンサー率49% (123/249)
回答No.2

iframeを使う必要があるのでしょうか。 「height=1000」というのは、フレーム内にスクロールバーが出ないことを意図しているのではないかと思いますが、それでは普通のページと同じです。 下のほうにリンク先があれば、ページはスクロールします。(リンク先を表示領域の一番上に表示しようとするため) 対処法は、iframeの高さを小さくする。 もしくは、インラインフレームではなく、メニューと内容で二分割したフレームにしてはいかがですか。

samejima
質問者

お礼

ご回答ありがとうございました。 「height=1000」という設定について、フレーム内にスクロールバーが出ないことを意図しているのではなく、膨大な選択肢があるためということがあります。数値についても納品先で使用される画面の解像度が1600*1200ということも考慮して、デザイナーが製作しておりました。故にiframeの高さを小さくすることもできないし、このフレームでの実現性をご質問させていただいたという事なのです。 数日経過して、若干状況が変わりましたので、 もう少し整理して、別の質問として質問させていただきます。 今回はありがとうございました。

専門家に質問してみよう