• ベストアンサー

javascriptの下に空白ができる

いつもお世話になっております。 ランダムに画像が表示されるjavascriptを作っており、無事に表示はされるのですが、そのランダム画像の下にテーブルを配置し、別の画像(javascriptを使っていない固定画像)をぴったりくっつけたいのですが、3ピクセルくらいの空白ができてしまいます。 Opera、Firedoxでは空白ができず、IEでのみできます。 何が悪いのでしょうか? 下記にタグを書かせていただきます。 <Script language="JavaScript"><!-- myImg = new Array() myImg[0] = "img1.jpg"; myImg[1] = "img2.jpg"; myImg[2] = "img3.jpg"; //--></Script> </HEAD> <BODY background="img/back.gif"> <SCRIPT language="JavaScript"><!-- i = Math.floor(Math.random()*);document.write("<img src="+myImg[i]+">");//--></SCRIPT> <table width="700" border="0"cellpadding="0" cellspacing="0"><th align="left" valign="top" scope="col"><img src="number1.gif" width="151" height="40" /> number1.gifがぴったりくっつけたい画像です。 以前FLASHを使用したページでも上記のようなことが起こり、教えて頂いて解決したので、(→ http://oshiete1.goo.ne.jp/qa4010291.html です。)同じようにやってみたのですが、ダメでした。 環境はWindows XP、使用ソフトはDreamweaver8です。 申し訳ありませんが、お助けいただけるとありがたいです。 よろしくお願いします。

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

  • ベストアンサー
  • BlurFiltan
  • ベストアンサー率91% (1611/1754)
回答No.2

HTML のことは詳しくないのでなぜそうなるのかの詳細はよくわかりませんが,  <画像表示部分><テーブル部分> となっていて, 画像 と テーブル との間に段落も改行もないので, ブラウザが「不思議???」状態になって空白ができるのではないかと思います(よくわかりませんが)。  <画像表示部分><br>  <テーブル部分> だと間が詰まりますよ。 つまり, JavaScript で document.write() している部分, … document.write("<img src="+myImg[i]+">"); … この部分を … document.write("<img src="+myImg[i]+"><br>"); … にすれば画像とテーブルの間に隙間がなくなります。 ※ちなみに,ご質問本題とは関係ありませんが,  その前の部分   i = Math.floor(Math.random()*);  は,   i = Math.floor(Math.random()*3);  ですね。  これで変数 i に 0~2 のうちいずれかの整数が入ります。

noname#127702
質問者

お礼

ご回答ありがとうございます! >>画像 と テーブル との間に段落も改行もないので, ブラウザが「不思議???」状態になって空白ができるのではないかと思います(よくわかりませんが)。 ということだったのですね…!タグのことをよく理解せず、「こう記述して」というお手本をそのまま書いていたので、自分では全く解決できずにいました。 autyさんへのお礼にも書きましたが、おかげさまですっきりと隙間が消えてくれて、思い通りのページになりました!うれしすぎます! ありがとうございました;; しかも<br>を追加するだけでいいという簡単な方法を教えていただき、大変助かりました。 もっとタグや言語の意味を理解した上でHPを作れるよう、勉強していかなくてはと思います。 それから、ご指摘の通り i = Math.floor(Math.random()*3); でした…。失礼しました! お礼が長くなってしまいましたが、助けていただいて本当にありがとうございました!もっとがんばります!

すると、全ての回答が全文表示されます。

その他の回答 (1)

  • auty
  • ベストアンサー率58% (284/486)
回答No.1

・ ご指定のページをみると    align='middle'   を利用するように述べられているので、次のように変更してみてください。 <script language="JavaScript" type="text/javascript"> <!-- var i = Math.floor(Math.random()*(myImg.length-1)); document.write("<img src="+myImg[i]+" align='middle'>"); //--> </script>

noname#127702
質問者

お礼

ご回答ありがとうございます!! 今日お返事を拝見して、試してみたところ…お二人に教えていただいたどちらの方法でも成功して、ぴったりくっついてくれました!!! ありがとうございます。泣きそうです。 結果的にはBlurFiltanさんに教えていただいたものの方が追加するタグが少しだったので、そうさせていただいたのですが、早々にご回答くださったautyさんにも心から感謝しています。 これから先にもjavascriptを使う機会はあると思うので、そんなときは今回教えていただいたことをしっかり生かすつもりです! 本当にありがとうございました。

すると、全ての回答が全文表示されます。

関連するQ&A