- ベストアンサー
インラインフレームのスクロールバーについて
インラインフレームのスクロールバーが現れないようにしたいのです。それも、縦方向は残して、横方向のスクロールバーが出ないようにしたいのです。 MacのIEで確認すると(当方はMacintoshでホームページを作成しています)縦方向のみスクロールバーが現れ、横方向は現れません。がWindowsで確認すると縦横ともに現れるのです。 タグではautoとyesとnoしか制御する方法はないのでしょうか? Javascriptなどでもかまいません。 どなたかご存じでしたら教えてください。お願いします(泣) ちなみにテーブルのセルの中に作っているのですが、タグはこんな感じです↓ <td width="104"> <iframe src="info.html" name="info" width="100%" height="92" frameborder="0"> <p>このページはインラインフレーム対応のブラウザでご覧ください。</p> </iframe> </td>
- みんなの回答 (7)
- 専門家の回答
質問者が選んだベストアンサー
>仰るように一つ一つ組み直してみましたが、どうもうまくいきません。 少しずつ持っていったのなら、何処で問題が起こるか判りますよね? 問題が出た直前にペーストした物が、間違いなく原因となっています。 そうやって問題の切り分けをしていかないと、既に出来上がっている物を見直していくのは大変です。 全ての要素がテーブルの中に配置されている状態なら、最初に問題の起こらない状態のテーブルのみを配置します。 その後でテキスト、画像と続けてテーブルの中に配置していき、面倒でも大量のコピペは行わないようにしましょう。 実際に問題の起こらない状況が実現できているのだから、問題を起こしている要素が必ずあるはずです。 何処で問題が発生するか? それを入念に確認しましょう。
その他の回答 (6)
- Exkyde
- ベストアンサー率58% (7/12)
iframe内に読み込んでいるHTMLの方ですが、bodyタグに対してスタイルでmarginとpaddingをともに0に設定してみてもだめでしょうか。 ぎりぎりのサイズで製作されている場合、ページ余白がレイアウトに影響を及ぼしている可能性があるのですが、Shige29さんのソースを新規で貼り付けると問題ないということは<body leftmargin="0" topmargin="0">という行が影響を及ぼしているのかな?という気もします。 フレーム内に読み込まれる方のHTMLのbodyタグをスタイルシートでmargin、paddingともに0に再定義してみていかがでしょう。 ブラウザによって設定がないときの動作が変わりますので、margin、paddingの両方をきちんと指定してやるとより崩れにくいレイアウトになると思うのですが。
- Shige29
- ベストアンサー率23% (121/520)
良かった(^_^;) では何かが幅を取ってるんでしょうね。 結構縦に長い物なんでしょうか? 見直しは大変かも知れませんが、ブロックごとに少しずつ別のファイルにコピペして、原因を突き止めるしかないですね。 新規作成状態の方に、テキストや画像などを少しずつ持って行ってみてください。 ソースを見ることが出来れば話が早いんですけどね(^_^;)
お礼
お礼が遅くなって申し訳ありませんでした。 仰るように一つ一つ組み直してみましたが、どうもうまくいきません。 CSSが悪いのかな?それともBODYタグが悪いのかな? 何にせよもう少し頑張ってみます。 本当にどうもありがとうございました。
- Shige29
- ベストアンサー率23% (121/520)
え?ダメですか? WinIEでテストした物ですが? 一度新規作成状態で、下のをコピペしてみてもらえますか? それでダメなら他に原因があると思うので、問題の切り分けをさせて下さい。
お礼
ありがとうございます。新規でやってみると出ませんでした。 すでに作成途中のソースにコピペするとダメ。 新規作成状態でコピペするとOK。 ということは問題はこのほかにありそうです。 ほかに何か考えられることはありますか? う~~~ん、どうしよう・・・。 納期は明日なのですが・・・。
- Shige29
- ベストアンサー率23% (121/520)
テストしたので多分大丈夫だと思います(^_^;) コピペしてみて下さい。 【iframe】 <td width="430"> <iframe src="info.htm" name="info" width="430" height="92" scrolling="auto" frameborder="0">このページはインラインフレーム対応のブラウザでご覧ください。</iframe> </td> 【中身】 <body leftmargin="0" topmargin="0"> <table width="410" height="200" border="1" bgcolor="#FF0000"> <tr> <td> </td> </tr> </table> </body>
お礼
ありがとうございます。 試してみましたが、ダメでした。 テキストが横に流れているからかな?と思いテキストをなくしてみましたがそれでもスクロールバーが表示されるのです。 ちなみにこちらで使用しているWindowsはIEです。 ああ、いっそアップしているURLを記して、ソースを見てもらいたい!でもこれは規約違反なんですよね…(泣)
- arukamun
- ベストアンサー率35% (842/2394)
こんばんは <TABLE WIDTH=430 BORDER=0>~</TABLE> のWIDTH=430やBORDER=0大事ですが、上下左右に余白が出来てしまうので、 <TABLE WIDTH=430 BORDER=0 STYLE="{position: absolute; top: 0px; left: 0px;}">~</TABLE> とスタイルシートで、左上隅から表示させて見て下さい。
お礼
ご返答ありがとうございます。 試してみましたが、これはiframeの中に表示させるページに入れるのですよね。 結果は…WindowsだけでなくMacでもスクロールバーが現れるようになってしまいました~(泣)
- Shige29
- ベストアンサー率23% (121/520)
横方向を無くす場合、中に入れるページに、iframeで指定する幅よりも狭いテーブルを作ってあげましょう。 縦スクロールのバーの入る位置も考え、20程度低い数値を指定して下さい。 あと、widthは100%ではなく、数値の方が良いです。
お礼
補足に書いてしまったので、お礼を書き込むのを忘れていました! ありがとうございました。 でも、まだまだお知恵を拝借いたしたく…。
補足
早速のご回答、ありがとうございます。 じつは、その方法はもう試していたんですよ~(T_T) 質問ではtdの幅が104となっていますが、間違えました。本当は430でした。 で、中に入れるページを幅400のテーブルで囲ってみたんですが、やはりダメ…。これならどうだ!と試しに300とか200とかに指定してみたんですが、それでも現れるのです…。 widthが100%になっているのは、私が正確にテーブルレイアウトができていないためか、幅430のtdに幅430のiframeを入れると、右部分に空白ができてしまうからです…(Windowsで見た場合のみ)
お礼
ありがとうございます。早速トライしてみます。 ちなみに現状はこうなってます(↓)。 iframeを設置している親ページの<body>タグは以下の通りです。 <body text="#FFFFFF" bgcolor="#00B03B" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0"> 読み込ませる側、つまり子ページの<body>タグは <body leftmargin="0" topmargin="0"> としています。 ちなみに両方ともページの一番先頭に <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> と入れています。これは関係ないのかな?