• ベストアンサー

iflameのスクロールバーについて

ページ内に、iflameでページを表示しようとしています。 縦に長いページなので、縦にだけスクロールバーを出したいのですが… <iframe src="http://...." width="600" height="400" scrolling="yes"></iframe> こんな感じに設定しています。 ウィンドウズIEではキレイに見えています。 ですが、マッキントッシュIEで見ると、スクロールバーが表示されません。 <iframe src="http://...." width="600" height="400" scrolling="auto"></iframe> にすると、マッキントッシュIEでもスクロールバーがきれいに表示されるのですが、 ウィンドウズIEで、必要のない下の部分(横部分)のスクロールバーまで出てしまいます。 この横スクロールバー、たとえ中味を短くしても、表示されるので…すごーく嫌なのです…。 マッキントッシュと、ウィンドウズ両方で、たて部分だけスクロールバーが出るようにする方法はあるのでしょうか?

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

  • ベストアンサー
回答No.7

こちらでMacとMacOSXで試しましたがスクロールバーが出ていました。 スクロールバーが出なかったOSとブラウザの種類とブラウザバージョンを書くと回答がえられやすいかもしれません。 一応検証用に作ったHTMLもはっつけておきます。 ------- 読み込み側(index.html) --------- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=shift_jis"> <title>無題ドキュメント</title> </head> <body> <iframe src="test.html" width="600" height="400"> </iframe> </body> </html> ------- 読み込まれる側(test.html) --------- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html style="overflow-y:scroll;"> <head> <meta http-equiv="Content-Type" content="text/html; charset=shift_jis"> <title>無題ドキュメント</title> </head> <body> <p>ssss</p> <p>&nbsp;</p> <p>dddd</p> <p>&nbsp;</p> <p>&nbsp;</p> <p>&nbsp;</p> <p>ccccc</p> <p>&nbsp;</p> <p>&nbsp;</p> <p>&nbsp;</p> <p>&nbsp;</p> <p>&nbsp;</p> <p>&nbsp;</p> <p>&nbsp;</p> <p>&nbsp;</p> <p>&nbsp;</p> <p>&nbsp;</p> <p>&nbsp;</p> <p>&nbsp;</p> <p>dddddd </p> </body> </html>

akasa
質問者

お礼

MACはOS9で、IE6です。 うう~ん、おかしいですね…ひょっとしてキャッシュとかが残っているのが問題なのでしょうか…。 最新に更新…ってやっているのですが…。 読み込み側の<iframe>を<div>タグでくくっているのがもんだいなのかもしれません(^^ゞ <div>タグで、大きさを指定しているので…。 もう少し思考してみます。

akasa
質問者

補足

何回か同じ事を繰り返したら、成功しました!! どうもありがとうございました。 マックのキャッシュが残っていたのも問題のようで…(^^ゞ 本当にありがとうございました。

その他の回答 (8)

  • quads
  • ベストアンサー率35% (90/257)
回答No.9

可能なのであれば、ページを提示していただけますか? 或いは、Macintoshでお使いのブラウザIEのversion、Windowsでお使いのブラウザIEのversionを教えていただけますか。 また、インラインフレームを設置しているページ及びインラインフレーム内に表示するページのドキュメントタイプも教えていただければ検証しやすいです。 特に調べなくても良いのであれば無視していただいても結構ですが…。

akasa
質問者

お礼

残念な事にちょっと、そのページ自体をお見せする事は出来ないのです… お仕事関係の事なので(T_T) mac ie 6.0 win ie 6.0 ドキュメントタイプは shtml です。 わがまま言ってすみません…

  • Mulumba
  • ベストアンサー率45% (27/59)
回答No.8

再び#1です。 MacOSXのIE5.2とサファリ、MacOS9のIE5.0でテストしてみましたが、#6の方法で縦スクロールバーだけ無事に表示されます。 ひょっとして、iframeに読み込むページが600X400に収まっているのではないでしょうか? 試しにiframeに読み込むページの<BODY></BODY>の中身を<DIV style="width:600px; height:500px"></DIV>で囲ってみて試してみて下さい。

akasa
質問者

お礼

iframeに読み込むページは、600×400には収まってないです(^^ゞ ちゃんと下があるのに、スクロールバーがなくて見れない…という状態です。 マウスで文字を選択して、ぐぐぐぐぐっ…としたに無理やり引っ張ると、スクロールじみた感じで動いたりもしますが…

akasa
質問者

補足

ちなみになんですが… <iframe>のscrollを[yes]から[auto]にすると表示されます…。 何がどう悪いのだか…

  • Mulumba
  • ベストアンサー率45% (27/59)
回答No.6

再び#1ですが、単純にiframeが読み込むページの横幅を600px以下に制限し、 <iframe src="http://...." width="600" height="400" style="overflow: auto;" ></iframe> としてみたらどうですか?iframewをブロック要素で囲む必要はなかったようです。

akasa
質問者

お礼

ページの半分以下の長さにしてみて試しても見ましたが…やはりダメでした…。 なかなか難しいですね…。

回答No.5

iframeで設定しているHTMLの中味を変更するであってます。 たとえば <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html>・・・(中略)・・・</html> というHTMLだったら。 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html style="overflow-y:scroll;"> ・・・(中略)・・・</html> こんな感じです。

akasa
質問者

お礼

ありがとうございます! しかしながら…残念ながら、マッキントッシュでやはりスクロールバーが表示されませんでした…。 どうもありがとうございました。

回答No.4

iframeのsrcで指定している読み対象のHTML要素を <html style="overflow-y:scroll;"> に変えてみてください。

参考URL:
http://www.airemix.com/pukiwiki/pukiwiki.php?%5B%5BIETips%5D%5D#content_1_4
akasa
質問者

補足

すみません、参考URLも見てみたのですが…ちょっとわかりませんので質問させてください… HTML要素を <html style="overflow-y:scroll;"> とのことですが… いったいどこに、何を設定すればよいのでしょうか? iframeで設定しているHTMLの中味を変更するのでしょうか…? 基本的な事もわかっていなくてすみません…

  • Mulumba
  • ベストアンサー率45% (27/59)
回答No.3

#1ですが、iframeのheightを必要なだけの大きい数、400よりも大きな数にすれば縦スクロールバーが出現するのではないかと思います。

akasa
質問者

お礼

ええっと、マッキントッシュでは画面以上に縦に長くてもスクロールバーが表示されない状態です(^^ゞ ある意味、縦幅内に収まっていたら、スクロールバーは表示されないほうがよかったりします。

  • moon_night
  • ベストアンサー率32% (598/1831)
回答No.2

>マッキントッシュと、ウィンドウズ両方で、たて部分だけスクロールバーが出るようにする方法はあるのでしょうか? マイクロソフトを抗議する・・・無理か。 強引に普通のフレームを複雑に切ってインラインフレームっぽく見せる・・・というのはダメか。

akasa
質問者

お礼

本当に…講義したくなります(^^ゞ 普通のフレームで組むのも考えました…。 ソレが一番早いかなぁ…と…。 いい解決方法があれば一番なのですが。

  • Mulumba
  • ベストアンサー率45% (27/59)
回答No.1

<DIV style="width: 600px; height: 400px; overflow: auto; overflow-x: hidden;"> <iframe src="http://...." width="600" height="400" scrolling="no"></iframe> </DIV> のように、iflameをブロック要素で囲み、ブロック要素にスタイルシートでスクロールバーをつけてみたらどうでしょうか。 自信はありませんが。

akasa
質問者

お礼

試してみましたが、スクロールバー自体がうまく表示できませんでした(^^ゞ なかなかうまくいかない、難しい問題ですね…

関連するQ&A

専門家に質問してみよう