• ベストアンサー

なぜか余白が…

スタイルシートでmarginを0pxに設定し、テーブルを幅100%、縦100%に設定したあとでjavascriptを設定すると、どうしても上部に余白が出来てしまいます。 javascriptを設定しないときは <HTML> <HEAD> <TITLE></TITLE> <STYLE type="text/css"> <!-- BODY{ margin-top : 0px; margin-left : 0px; margin-right : 0px; margin-bottom : 0px; } --> </STYLE> </HEAD> <BODY bgcolor="#ffffff"> <TABLE border="1" width="100%" height="100%" bgcolor="#000000"> <TBODY><TR><TD></TD></TR></TBODY></TABLE> </BODY> </HTML> と正常なんですが、javascriptを設定すると、 <HTML> <HEAD> <TITLE></TITLE> <STYLE type="text/css"> <!-- BODY{ margin-top : 0px; margin-left : 0px; margin-right : 0px; margin-bottom : 0px; } --> </STYLE> <SCRIPT Language="JavaScript"> <!-- document.write("<img src=cgi-bin/sasuke.cgi?sasuke="); document.write(document.referrer+"' width=1 height=1>");// --> </SCRIPT> </HEAD> <BODY bgcolor="#ffffff"> <TABLE border="1" width="100%" height="100%" bgcolor="#000000"> <TBODY><TR> <TD></TD> </TR> </TBODY></TABLE> </BODY> </HTML> のようにどうしても上部に余白が出来てしまいます。 このスクリプトを設定したときのみ、こうなるので非常に困っています。(HPのデザイン上…) どなたか、よい方法がありましたら教えてください。m(__)m なお、スクリプトはアクセス解析です。 当方はwindows98 ie5.5の環境で作成しています。 javascriptはこの場合はhtml内に組み込んでいますが、××.jsで呼び出しをかけています。 よろしくお願いします!

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

  • ベストアンサー
  • Adams2001
  • ベストアンサー率67% (70/103)
回答No.2

原因は、TABLE要素の外にアクセス解析用のIMG要素が描かれるような記述をしているからです。BODY要素の直下にはTABLE要素だけが存在するように記述しないと狙ったデザインにはなりません。よってスクリプトをTD要素の中に入れておけばOKです。 HEAD要素の中に含むことができる要素は限られています。IMG要素はダメですし、そうなるようなスクリプトもダメです(IEだとBODY要素の先頭に記述された、とものとして描画するようですが)。 このような文法の間違いがあっても(あまりにも文法を間違えたHTMLを書く人が多すぎるため)ブラウザは何とか表示しようとがんばってくれます。思ったとおりに表示されたからHTMLは間違っていない、と考えてはいけません。 #間違っていても思ったとおりに表示されてればいいじゃないか、という意見もありますが、実際にはそういう考え方だと表示上の問題が発生しやすい/原因がわからない、などなどデメリットがかなり多いです。 #地道にHTMLの基礎からしっかり勉強する方が、トータルでは時間の節約になります<経験談ですけど。 <HTML> <HEAD> <TITLE></TITLE> <STYLE type="text/css"> <!-- BODY {margin : 0} --> </STYLE> </HEAD> <BODY bgcolor="#ffffff"> <TABLE border="1" width="100%" height="100%" bgcolor="#000000"> <TBODY><TR> <TD><SCRIPT Language="JavaScript"> <!-- document.write("<img src='cgi-bin/sasuke.cgi?sasuke="); document.write(document.referrer+"' width=1 height=1>");// --> </SCRIPT> </TD> </TR> </TBODY></TABLE> </BODY> </HTML> #スタイルシート部の記述が、ムダが多いので直してます(^^;

rokusyou
質問者

お礼

お答えありがとうございます。 上記の方法で、うまくいきました! ありがとうございます!! デザインも崩れることなくいきました。 スタイルシート部分はHP作成ソフトで出力した部分ですので(汗) 直してくださってありがとうございました。参考にいたします。

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

その他の回答 (2)

noname#236902
noname#236902
回答No.3

CSSを使わなくても、BODYタグだけでできますよ。 <body leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">

rokusyou
質問者

お礼

お答えありがとうございます。 BODYタグだけでもできるんですね。記述方法がちょっとわからなかったので、とても参考になりました。 ありがとうございました!!

すると、全ての回答が全文表示されます。
  • osamuy
  • ベストアンサー率42% (1231/2878)
回答No.1

≫ <SCRIPT Language="JavaScript"> ≫ document.write("<img src=cgi-bin/sasuke.cgi?sasuke="); ≫ document.write(document.referrer+"' width=1 height=1>"); ≫ </SCRIPT> を、 ≪ <script type="text/javascript"> ≪ with ( new Image ){ src = 'cgi-bin/sasuke.cgi?sasuke=' + document.referrer; } ≪ </script> にしてみるとか。 head部に、imgタグが出てくるのは、かなーり、おかしい。

rokusyou
質問者

お礼

お答えありがとうございます。 一度試してみたのですが、うまくスクリプトが作動しませんでした;; でも、head部分にimgタグがでるのはおかしいんですね。勉強になりました。

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

専門家に質問してみよう