iframeのheightを指定する必要がある?

このQ&Aのポイント
  • 左にメニューバー、右にメインコンテンツという標準的な配置になっています。しかし、メニューバーをiframeにすると、その高さが表示されずに途中で切れてしまいます。
  • メニューバーの高さを超えた数値を適当に入れることで表示は可能ですが、項目が増えるたびに数値を変更しなければなりません。
  • 良い方法があれば教えていただきたいです。
回答を見る
  • ベストアンサー

iframe の height は指定しないといけない?

左にメニューバー、右にメインコンテンツ、という標準的な配置になっています。 左のメニューバーを iframe にしているのですが、ここで height を100%にすると右のメインコンテンツの高さの分だけが表示され、途中で切れてしまいます。 height を書かないともっと短くなってしまいます。 ですので、メニューバーの長さを超えた数値を適当に入れています。 例えば、メニューバーの高さが500ピクセルだったら、600ピクセル位にしておけば全部表示されます。 しかし、この場合、メニューバーの項目が増えてくるとその度にこの数値を変更しないといけないし、いつも適当に数字をあてはめて確かめるというのも大変です。 iframeをメニューバーとして使い、全部が表示されるよい方法がありましたら教えてください。 どうぞよろしくお願いします。

  • arbert
  • お礼率98% (269/273)
  • HTML
  • 回答数1
  • ありがとう数1

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

  • ベストアンサー
  • ORUKA1951
  • ベストアンサー率45% (5062/11036)
回答No.1

ありません。iframeに表示されるデータの大きさを、親のHTMLを描画する以前に知る方法がないからです。  そもそもiframeでメニューを表示すること自体が、iframeの趣旨に反しています。面倒でも内容を書きましょう。テキストエディタで複数行置換(差し替え)できるものはたくさんあります。それでもなら、CGIなどを使ってサーバーにさせればよい。

arbert
質問者

お礼

ご回答いただきありがとうございます。 >面倒でも内容を書きましょう。 面倒でもこれが一番無難なのでしょうね。

関連するQ&A

  • iframeでWIDTHとHEIGHTを指定せずにすむ方法は?

    楽天で時々iframeでたくさんの内容を表示させている人がいますが、ソースを見るとWIDTH="(幅)" HEIGHT="(高さ)" を指定していないんですよね。なのにスクロールバーを出さず、子ページをきちんと全部表示している…これを自分でやるとタテもヨコもちょんぎれてしまいます。いったいどういう裏技なのでしょうか???

    • ベストアンサー
    • HTML
  • 変動する場合のiframeの高さ指定について

    横2つに分けたページ(index.htm)があり、スクロールバー非表示にしてあります。 左(left.htm)右(raight.htm)にそれぞれiframeが入っていて、これにスクロールバーが表示されます。 この時、ウィンドウの大きさを変えても常に一番最後までスクロールできるような高さ指定の方法はありますでしょうか? なにか良い知恵がありましたら教えてください。 よろしくお願いします。 --index.htm <html> <head> <title>サンプル</title> </head> <frameset rows="*" cols="220,*" framespacing="0" frameborder="no" border="0"> <frame src="left.htm" name="left" frameborder="no" scrolling="no" noresize> <frame src="raight.htm" name="raight" frameborder="no" scrolling="no"> </frameset> <noframes> <body></body></noframes> </html> --left.htm <html> <head> <title>左</title> </head> <body bgcolor="#66CCFF"> <div align="center"> ここにメニュー<br>ここにメニュー<br>ここにメニュー<br> ここにメニュー<br>ここにメニュー<br>ここにメニュー<br> <iframe src="in_left.htm" name="in_left" width="190" height="100%" frameborder="0" scrolling="auto"></iframe> </div> </body> </html> --raight.htm <html> <head> <title>右</title> </head> <body bgcolor="#FFFFCC"> ここにリード文<br>ここにリード文<br>ここにリード文<br> ここにリード文<br>ここにリード文<br>ここにリード文<br> <div align="center"> <iframe src="in_raight.htm" name="in_raight" width="90%" height="100%" frameborder="0" scrolling="auto"></iframe> </div> </body> </html>

    • ベストアンサー
    • HTML
  • iframe内から外のjavascriptを動かす

    cgiを使ってiframe内にコンテンツを表示させていて、 iframe内にどれを表示するかはiframe外のjavascriptで操作しています。 他のページからこのページへアクセスしたときに、 どのiframeを表示するか指定したいのですが、どのようにすればいいのでしょうか? ちなみにcgiはmovabletypeを使っています。 できれば、iframeにアクセスした際に、iframe外も自動で表示されるようにしたいです。 (iframeのアドレスにアクセスするとコンテンツがページの真ん中にポツンと表示されてしまうので) まだ本当に始めたばかり初心者なので、右も左もわからないのですが どうぞよろしくお願いいたします。

  • “段組み”or“float”、どちらが原因?

    こんにちは。 段組みを使い、左にメニューバー、右にメインコンテンツを配置しています。 メニューバーはfloat:left;を使って左に寄せています。 そこで問題なのですが、メニューが増えてくると、メニューバーの長さがだんだん長くなってきます。 そして、新たに一つのメニューを追加したとき、右隣りにあるメインコンテンツが下にずれたのです。 試しに、さらにメニューを追加するとまた下がります。 明らかに両者が干渉しています。 自分としては、段組みかfloatに原因があると思っていますが実際はどうなのでしょうか。 解決する方法をご存知の方、どうぞよろしくお願いします。

    • ベストアンサー
    • HTML
  • heightを%で指定して効果が出ない!?

    今、左側にメインコンテンツ、右側にメニューのあるページを作成しています。 左側のコンテンツはページによって長さが違うので、右側のメニューもそれにあわせて伸びるようにheight="100%"という風に指定したのですが、ちゃんと効果が出ないようです。 ページトップの宣言文 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> をはずしたら効果が現れたのですが HTML4.01Transitionalだとテーブルのheightの%指定は無効なんでしょうか? もし、そうだとしたら他に解決法はありますでしょうか?

  • iframeについて・・・

    幅260pxの枠内に、別ページAに記載した幅230pxのコンテンツを表示させたいのです。 ページAのコンテンツは縦長のリストなので、iframeには縦のスクロールバーのみ表示するようにしているのですが、どうも、読み込み先のページAが幅230pxよりも右側にちょうどスクロールバー1本分程度の余白ができてしまい、パッと見はわからないのですが、iフレーム内でカーソルをドラッグして右にずらすと、その余白がでてきてしまいます。 いったいこの余白は何が原因でできているのでしょうか。 また、消すことはできるのでしょうか?

    • ベストアンサー
    • HTML
  • IFRAMEページ表示について

    html超初心者で相当ハマッテいます・・・。  _menu__main______  |   |       |←のようなページをIFRAME  |   |       | を使って作成し、左にmenu/  |   |       | 右にそのリンク先を表示  |   |       | させようとしています。  |   |       | menuボタンをクリックした  |   |       | ときにスクロールバーが  --------------  下りていると、次に表示されたページも同じスクロール位置で表示されてしまいます。 menuボタンをクリックしたとき、ページのトップにリンク先のページも表示させるにはどうしたらいいのでしょうか? ちなみに <a href="***.html#TOP" target="main">~</a>としてみるとスクロールが一応は上がったのですが、微妙におかしくて・・・。 どなたかご教授いただけませんか?

    • ベストアンサー
    • HTML
  • iframeの高さを読み込むサイトの高さにしたい。

    <iframe src="フレーム.html" width="100%" frameborder="0" ></iframe> と、記述したのですが インラインフレームの高さが小さく「フレーム.html」が全部表示し切れません。 インラインフレームの高さを「フレーム.html」の高さにあわせるにはどうしたらいいでしょうか? アドバイスお願いします。 _____________ |      || |      || |      || |途中で切れる|| |____________|| スクロールバー↑ _____________ | | | | | | | | | |       | |フレーム.html| |が全部表示  | |_____________| スクロールバーなし↑

  • 文字化けと<iframe>の問題

    ヤフーのジオシティーズでホームページを作っています。 index(TOP)のページをフレームで分けて構成していて、 左にメニュー、右にテキストのような構成です。 右のページには<iframe>も使っています。 どのテキストでも一番下に<a href="javascript:history.back()">で 「戻る」を配置してるんですが戻るを実行すると 左のメニューの文字が化けるんです。 それとTOPの右の<iframe>も見れなくなっちゃうんです。 ブラウザのツールバーの戻るでも同じ現象が起きます。 戻るを使わなければ、普通に見ることが出来ます。 ちゃんと<meta http-equiv="content-type" content="text/html; charset=euc">も 使っているんですが、なぜ文字化けと<iframe>が正常に 作動しなくなってしまうのでしょうか? どなたか解決法がをわかる方がいらっしゃれば よろしくお願い致します。

  • htmlでheightが自動で延長

    divを使ってデザインしているのですが、 全体のデザインの入る#wrapの中に floatを左に設定した#leftと、 floatを右に設定した#rightがあります。 #leftにはメニューバーを、#rightにはコンテンツを入れるのですが、 コンテンツの量はページによって全然違うので、 #leftの長さを設定できません…。 #leftには背景色がついているので、途中でとぎれない様にしたいです。 短く設定すると、下が切れますし、 長く設定すると、情報量が無いページでは、ただ縦に長いだけの空白になってしまいます。 min-heightというのがあるらしいのですが、なぜか反映されなくて… #rightの長さに合わせて、#leftを自動で伸び縮みさせたいのですが… 可能でしょうか? 質問の仕方が下手だったらゴメンなさい! 誰か助けてください…。よろしくお願いします

    • ベストアンサー
    • HTML

専門家に質問してみよう