CGIをiframeで読み込んだ物に間隔を空けたい

このQ&Aのポイント
  • HTMLでホームページを作っています。CGIをDLし、HTMLの中にiframeで読み込むことに成功しました。しかし、2つのCGIが画面を分割して表示されてしまいます。そこで、float:leftを使用してCGIをdivで囲み、2つ目のCGIを最初のCGIの下に表示させました。
  • しかし、この表示ではCGIの間隔が正しく設定されず、中央に寄せることができません。marginを使用しても間隔は空けられません。他の方法を探しています。
  • なにか他の方法で2つのCGIを同じ間隔で中央に寄せる方法はありますか?
回答を見る
  • ベストアンサー

CGIをiframeで読み込んだ物に間隔を空けたい

HTMLでホームページを作ってます。 ホームページの中にチャットを作ろうと思いCGIをDLし、HTMLの中にiframe文で読み込むことに成功しました。 その際、iframeで読み込むCGIが2つあり、画面が2つに別れてしまうのが嫌で、iframeをdivで囲み、 folat:leftで回り込ませ、最初のiframeの下に2つ目のiframeで読み込んだ物が来るようにしました。 これでいちお、成功したと思ってるのですが、 できればこれらを同じ間隔で中央に寄せたいのですが,marginで間隔を空けようとしても空くことができません。 他に方法が無いかと思い質問させていただきました。 下記プログラムです。 ちなみにCGIソース元はkentさんのところです。http://www.kent-web.com/chat/ <div id=sample1> <iframe name="form" src="./comchat.cgi?mode=form&nam=&eml=&col=&retime=40&line=20" width="900" height="200"></iframe> <iframe name="log" src="./comchat.cgi?retime=40&line=20" width="900" height="900"></iframe> </div> </body> sample1{ float:left: }

  • HTML
  • 回答数4
  • ありがとう数6

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

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

たぶん、こういうことでしょうか。 <style> #sample1 { margin: auto; width: 900px; } </style> ---------- 質問文に書かれているこの書き方ですが、 sample1{ float:left: } もしBBSへの投稿時のコピーミスでなければ、これは機能していません。 #sample1 とするか、 <div class="sample1"> として、 .sample1 {} と書かなければ行けません。 これらCSSの書き方(文法)については、解説書や解説サイトなどで確認してください。 http://htmq.com/

nomnom20
質問者

補足

すみません、書き込みミスで#を付けるの忘れてました。 回答ありがとうございます。 無事真ん中に寄せることができました。

その他の回答 (3)

noname#206842
noname#206842
回答No.4

<div id="sample1"> <iframe class="sample1" name="form" src="./comchat.cgi?mode=form&nam=&eml=&col=&retime=40&line=20" width="900" height="200"></iframe> <iframe class="sample2" name="log" src="./comchat.cgi?retime=40&line=20" width="900" height="900"></iframe> </div> ↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑ HTMLを上のようにして、CSSを ↓↓↓↓↓↓↓↓↓↓↓↓↓↓ .sample1{margin-bottom:1em;} 考え方の違いで、いか様にも書くことができると思います。 ここでは、各iframeに、クラス名を付けて対応してみました。

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

>僕にはあまりにも高度すぎて、すみませんが何言ってるかわかりません。  と言う事は、厳しいけど・・・基礎が出来ていないということ。  HTML/CSSなんて、お馬鹿な機械に文書の内容/デザインをわからせるための方法ですから、小説を読むより楽なはず。 >そんなことしなくてもブロック要素で囲みさえすれば、自然に別れるってことだと思います。  ブロックレベル要素と行内要素( http://www.asahi-net.or.jp/%7Esd5a-ucd/rec-html401j/struct/global.html#h-7.5.3 )の区別は、基本中の基本です。リンク先は読みなさいよ!!・・No.1の回答に書かれているリンク先も  決して間違えてほしくないのは「分けるためにブロックで囲む」のじゃなく、「別のブロックであることをマークアップする」・・・このふたつ、結果は同じでもまったく違う!!!  私がNo.1で書いたHTMLの<body>~</body>内、誰--機械が見ても、どこが文書のヘッダ、フッタ、本文(section)、完結した記事(article)かわかるでしょ。難しいとは言わせない!!くらい簡単明瞭だと思います。再確認すること  別々にチャット記事を読み込んでいるのですから、ブロックで囲まないとならないからブロックで囲んでいるのです。iframeが行内要素であることは、仕様書に 「<!ELEMENT IFRAME - - (%flow;)* -- inline subwindow -->( http://www.asahi-net.or.jp/%7Esd5a-ucd/rec-html401j/present/frames.html#edef-IFRAME )」  「inline(行内) subwindow(サブウィンドウ)」と書かれている。 >中央に・・  ⇒8.3 マージンのプロパティ( http://momdo.s35.xrea.com/web-html-test/spec/CSS21/box.html#margin-properties )  ブロック要素はマージンを持ちえますが、その指定はmargin-top,margin-right,margin-bottom,margin-leftのプロパティで指定します。marginは簡略化プロパティで一括して指定できます。  ⇒'margin'( http://momdo.s35.xrea.com/web-html-test/spec/CSS21/box.html#propdef-margin ) 'margin'   値:     <margin-width>{1,4} | inherit      幅を{1個から4個}の長さで指定、もしくはinherit(継承)の指定   初期値:   個々のプロパティを参照   適用対象:  table-caption、table、inline-table以外のテーブルdisplayタイプを持つ要素を除くすべての要素   継承:    no      継承しない   パーセンテージ: 包含ブロックを含む幅を参照   メディア:  visual ★急がば回れ・・・  まずHTML4.01の仕様書は一通り目を通しておくこと  ついで、CSS2.1の仕様書も   聞きかじりの変な知識で回り道をすることに比べたら、遠回りのようですが、最短で身につける手段です。

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

配置にfloatを使うべきではない。崩れる元です。 iframeは行内要素ですから、必ずブロック要素DIVやPなどブロックで囲みます。それで嫌でも二段になる。 これってclass名は、articleのほうが良さそう。class名は『id属性及び class属性と併用することで、文書に構造を付加するため( http://www.asahi-net.or.jp/%7Esd5a-ucd/rec-html401j/struct/global.html#h-7.5.4 )』です。HTML5の新しい要素( http://standards.mitsue.co.jp/resources/w3c/TR/html5-diff/#new-elements )を流用すると良い。  そのブロックの中央寄せは、margin:0 autoです。 ★Another HTML Lint - Gateway( http://www.htmllint.net/html-lint/htmllint.html# )  でチェック済み ★タブは_に置換してあるので戻す。 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html lang="ja"> <head> _<meta http-equiv="content-type" content="text/html; charset=Shift_JIS"> _<title>Untitled</title> _<meta name="author" content="IRUKA"> _<meta http-equiv="Content-Style-Type" content="text/css"> _<style type="text/css"> <!-- body{ background-color:gray;/* bodyの背景gray */ } div.header,div.section,div.footer{/* header,section,footerの指定 */ width:80%;/* 幅はwindowの80% */ margin:0 auto;/* 上下0、左右自動 */ padding:5px; background-color:silver;/* 背景はシルバー */ } p{ margin:0;/* 日本語用に段落間のマージンを消し */ line-height:1.8em;/* 日本語は字が大きいので行間を広げて */ text-indent:1em;/* 段落で字下げ */ } /* ここから!!! */ div.article iframe{ display:block; width:90%; margin:0 auto; } --> _</style> </head> <body> _<div class="header"> __<h1>title</h1> _</div> _<div class="section"> __<h2>section Title</h2> __<p> ___その際、iframeで読み込むCGIが2つあり、画面が2つに別れてしまうのが嫌で、iframeをdivで囲み、folat:leftで回り込ませ、最初のiframeの下に2つ目のiframeで読み込んだ物が来るようにしました。 __</p> __<p> ___これでいちお、成功したと思ってるのですが、できればこれらを同じ間隔で中央に寄せたいのですが,marginで間隔を空けようとしても空くことができません。 __</p> __<div class="article"> ___<iframe title="投稿" name="form" src="./comchat.cgi?mode=form&amp;nam=&amp;eml=&amp;col=&amp;retime=40&amp;line=20" width="900" height="200"><a href="./comchat.cgi?mode=form&amp;nam=&amp;eml=&amp;col=&amp;retime=40&amp;line=20">フレーム非対応なら</a></iframe> __</div> __<div class="article"> <iframe title="記録" name="log" src="./comchat.cgi?retime=40&amp;line=20" width="900" height="800"><a href="./comchat.cgi?mode=form&amp;nam=&amp;eml=&amp;col=&amp;retime=40&amp;line=20">フレーム非対応なら</a></iframe> __</div> _</div> _<div class="footer" id="DOCUMENT_INFORMATION"> __<dl class="document-version"> ___<dt id="FIRST-PUBLISHED">First Published</dt> ___<dd>2005-06-10</dd> ___<dt id="LAST-MODIFIED">Last Modified</dt> ___<dd>2014-04-10 12:00:00 (JST)</dd> __</dl> __<address>&copy; ORUKA1951 2013 - 2018 All Rights Reserved</address> _</div> </body> </html>

nomnom20
質問者

補足

回答ありがとうございます。 ORUKA1951さんには、前にもCSSの件について助けてもらった事があると思います。 ORUKA1951の丁寧な回答を何回も読み直したのですが、 僕にはあまりにも高度すぎて、すみませんが何言ってるかわかりません。 どこがわかんない?ってもし聞かれたとしても、わかんないところがわかんないと言ってしまいそうです。 とりあえず、わかったことは、floatと使うなってことと、そんなことしなくてもブロック要素で囲みさえすれば、自然に別れるってことだと思います。 そしてsample1の中にmargin:0 autoを入れればいいんでしょうか?

関連するQ&A

  • iframe越しに文字をインプット

    クリックした文字をifame内のテキストボックスに入れたいのですが、うまく動きません。iframeの特殊な指定のしかたなどあるのでしょうか? よくわからないところ:「parent」はとりあえず入れてみただけ。 (^^; 【sample1.htm】 <A href="javascript:function voi(){};voi()" onclick="parent.document.fm1.Title.value='やったね'">転記</A> <IFRAME NAME="Frame1" WIDTH=800 HEIGHT=500 SRC="sample2.htm" STYLE="position:absolute;top:50px;left:5px;"></IFRAME> 【sample2.htm】 <form name="fm1"> <INPUT TYPE="TEXT" NAME="sample" SIZE="12"> <form>

  • iframeにリンクを貼る

    <iframe src="qqq.gif" height="150" width="356" align="left" frameborder="0" scrolling="no" marginheight="1" name="tv" > この部分はiframe表示です </iframe> にURLを指定してリンクを張りたいのですが、どうしたらいいですか?

  • iframeが正しく表示されません

    #box1{ width: 595px; float: left; height: 570px; margin-top: 70px; margin-left: 10px; border: 1px solid #000000; } <div id="box1"> <iframe src="http://astore.amazon.co.jp/uraren-22" width="100%" height="100%" frameborder="0"></iframe> </div> とゆう表記でHPを作成したのですが、IEではちゃんと表示されるのですがfirefoxやsafariですと、box1の中に表示されず下にずれ、スクロールバーが表示されなかったりもします。 解決方法をお願いします。

    • ベストアンサー
    • HTML
  • iframe内でのスクロールについて

    iframeに関する質問です。 iframe内のみアンカーでスクロールしたいのですが、iframe含めページ全体がスクロールしてしまいます。 sampleファイルとして質問したい部分を抜粋したものを下記を記載します。 ◆index.html(親html) ◆01.html(iframe含む子html) ↓ ◆index.html <ul> <li><a href="01.html#Aarea" target="inline">子htmlのAへスクロール</a></li> <li><a href="01.html#Barea" target="inline">孫htmlのBへスクロール</a></li> <li><a href="01.html#Carea" target="inline">孫htmlのCへスクロール</a></li> </ul> <iframe src="01.html" id="inline" name="inline" width="300px" height="300px"></iframe> ◆01.html <div name="Aarea" id="Aarea" style="background:#00F; width:300px; height:300px; color:#CCC;"> <p>A area</p> </div> <div name="Barea" id="Barea" style="background:#9C0; width:300px; height:300px; color:#CCC;"> <p>B area</p> </div> <div name="Carea" id="Carea" style="background:#C36; width:300px; height:300px; color:#CCC;"> <p>C area</p> </div> これを実行した際に親であるindex.htmlもスクロールしてしまいます。 以前にも似た質問がされていましたが、対処方法が思っていたものと違っていた為質問自体重複してしまうかもしれませんが質問するに至りました。 完全にiframe内のみをスクロールさせる方法はありますでしょうか。 よろしくお願いします。

  • スタイルシートでフレーム枠を隙間なくピタリとつける。

    よろしくおねがいします。 http://www.sonzai.net/test/test.html 参考URL↑ 中央に<iframe>を置き、それを囲むようにフレームを設置したいのですが、 下辺だけ微妙に離れてしまいます。 【HTML】 <div id="subnavibar"> <p><img src="images/top/event.png" width="220" height="50" /></p> <img src="images/top/event.png" width="10" height="300" /><iframe src="a.html" width="200px" height="300px" scrolling="yes" frameborder="0" name="side"></iframe><img src="images/top/event.png" width="10" height="300" /> <p><img src="images/top/event.png" width="220" height="20" /></p> </div> 【css】 #subnavibar { width: 240px; float: left; background-color: #ffffff; height: 100%; } 原因としては、何があるでしょうか?

    • ベストアンサー
    • 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
  • CSSを使ってのiframe

    xhtmlとcssでhpを作ってます。 iframeをcssで表現したいんですが、どうしてもフレーム枠に1pxほどの枠が出てしまいますので、それを無くしたいのと、スクロールバーが出ないようにしたいのですが、どのような書き方がベストでしょうか? どなたかアドバイスをお願いします。 現状では以下の書き方をしております。 -----css----- #top{ float:left; text-align:left; width:300px; } #top_iframe{ overflow:auto; width:300px; height:150px;} -----html----- <div id="top"> <iframe src="xxx.html" title="top">更新</iframe> </div> 希望としては現状の幅300px 高さ150pxで、枠が無くスクロールバーもでないようにしたいのですが・・・ <<当方初心者なので、お返事頂けるさいにはcssとhtmlのタグでご回答願います。>>

    • ベストアンサー
    • HTML
  • 回り込みfloatの間隔について質問です

    ボックスでボックスを回り込みしています。(?) …書いたほうが早いですね… HTMLが <div id="left"> 左ボックス </div> <div id="right"> 右ボックス </div> CSSが *{ margin: 0px; padding: 0px; } #left { float: left; width: 100px; height: 100px; } #right{ width: 200px; height: 100px; } といった感じです。 左ボックスと右ボックスの間に1~2pxほどの間隔があいてしまいます。 これをなくすにはどうすればいいですか? お願いします。

  • iframeについて教えてください。

    ページ数が多く、一部変更するのにかなりの時間を要するので、ページ内のとある部分をフレーム対応に変更しました。 いろんなweb講座のページを見てそれらしきものを書き、一応見た目上は機能しているのですが、ちゃんとした意味がわからないので、詳しく知ってる方がいたら教えてください。 ■私が書いたもの <ILAYER CLIP="0,0,160,600" HEIGHT="600" WIDTH="160"> <LAYER HEIGHT="600" WIDTH="160" SRC="../etc/ad-love.htm"> <iframe src="../etc/info.html" name="sample" width="160" height="600" frameborder="0" scrolling=no> この部分はインラインフレームを使用しています。 </iframe> </LAYER> </LAYER> ◆縦600、横160というのを3回も書いてますが、こんなに必要なんでしょうか?本当は省略できるのに意味のない記述をしてるんでしょうか。 ◆この3回出てくる600,と300はすべて同じ部分をあらわしていますか? 例えば一番最初のはフレーム全体、次のはフレームの中の部分をあらわす、などのように微妙な違いがあるんでしょうか? わかりづらくてすみません。よろしくお願いします。

  • <iframe>タグが正常に動作しない

    下記HTMLを作成した場合、タグが正常に作動しません。 wikiのページに何か細工があるようですがどういった仕掛けが入っているのでしょうか? また、これを正常に表示させる方法はありますか? ご存知の方、教えてください。 宜しくお願い致します。 <HTML> <HEAD> <TITLE></TITLE> </HEAD> <BODY> <IFRAME src="http://ja.wikipedia.org/" width="900" height="1500"></IFRAME> <HR> <IFRAME src="http://yahoo.co.jp" width="900" height="1500"></IFRAME> </BODY> </HTML>

    • ベストアンサー
    • HTML

専門家に質問してみよう