IEとFirefoxで表示が違う

このQ&Aのポイント
  • WEBサイト制作中にIEとFirefoxで表示が異なる問題が発生しています。
  • IE(8)ではフォームの上部に大きなスペースが空いてしまうが、Firefoxでは問題ない。
  • IEブラウザの不具合なのか、間違った記述なのかが気になる。
回答を見る
  • ベストアンサー

IEとFirefoxで表示が違う

現在WEBサイトを制作しています。 フォームを挿入したのですが、IE(8)で表示すると<form>要素の上部に大きなスペースが空いてしまいます。Firefoxで表示すると問題ないです。 HTMLのフォーム付近は以下のような構成にしています。 <p>フォーム上部の文章</p> <form method="#" action="#"> <table> <tr><td>テキスト</td> <td><input type="text" name="#"></td></tr>   ・   ・ </table> </form> IEでは<p>の文章と<form>テーブルとの間に大きなスペース(約200px)ができてしまいます。 Firefoxではたまたまうまく処理されていて、間違った記述をしていると考えるべきでしょうか。 それとも、IEブラウザの不具合なのでしょうか。 このような症状についてご存知の方がいらっしゃいまいしたらごご教授いただけますようお願い申し上げます。

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

  • ベストアンサー
  • naokita
  • ベストアンサー率57% (1008/1745)
回答No.2

<p>フォーム上部の文章</p><form method="#" action="#"><table><tr><td>テキスト</td><td><input type="text" name="#"></td></tr></table></form> --------------------- 1行にしてもダメですか? これが原因って場合もあります。 確かに、フォーム関係で多少の差異があるのは確かです。 しかし、この程度のソースで、IE8で差異がでるとしたら、 制作者のミスが第一に考えられます。 IE8はかなり良く(進化)なったので、200pxものスペースが空く事はありませんので、CSSでの設定がどこか間違っているのかもしれません(値とか単位とか)。 システム側で改行などのが埋め込まれるパターンかもしれません。 ブラウザからソースを見るか、単純化して再検証するかすれば判断出来るでしょう。

rio_elastico
質問者

お礼

詳しいご回答をありがとうございます。 いろいろ修正しているうちに問題のスペースは50px程になりました。 アドバイスいただいたようにtableを1行にすると問題のform上部分が小さくなりました。 行を増やす毎に大きくなるようです。 ブラウザから確認すると、上部の文章とformとの間はスペースではなくform要素の上部分が大きいことがわかりました。(backgroundカラーを付けて確認しました) 考えられる場所全てにmargin,paddingの指定を試しますが、まだ解決しません。 引き続き、他サイトのコードを参考にするなどして解決策や記述ミスを探してみようと思います。 この度は大変ありがとうございました。 またご質問させていただいた時はどうぞ宜しくお願い致します。

その他の回答 (1)

  • stuff_ppo
  • ベストアンサー率62% (27/43)
回答No.1

reset.cssの導入をおすすめします。 「ユーザーからCSSによる特別な指定が無い場合、  各要素の周囲にどの程度隙間を設けるか」 については、ブラウザがそれぞれ固有の設定を持っています。 したがって、同じHTML,CSSをもっても、 どうしても、表示には差が出てしまいます。 そこで出来た解決策が、 ブラウザによる独自設定をまっさらにするCSSをまず読み込ませ、 その後必要な要素に対してCSSを設定していく という手法です。 この「まっさらにするCSS」は、 reset.css という名前で何種類も出回っています。 検索してお好きなものを使ってみてください。 過去の似た事例では、 「formに対してだけ、かつmarginに対してだけ」resetをかけています。 http://okwave.jp/qa/q5421693.html http://okwave.jp/qa/q1751711.html  --- なお、ブラウザの表示(CSS)まわりで問題が発生した場合、 その原因の90%はIEにあると思ってもらって差し支えありません。 それくらい酷いブラウザです。 というわけで、今後表示不一致問題が発生した場合は、 「ie 問題の要素」での検索もおすすめです。 form ie margin - Google 検索 http://www.google.co.jp/search?hl=ja&lr=lang_ja&q=form+ie+margin

rio_elastico
質問者

お礼

詳しいご回答をありがとうございます。 reset.cssという存在を知らずに、CSSには*{margin:0; padding:0;}を指定していました。 公開されている代表的なreset.cssにリンクや書き足しをしてみたり、form要素に直接指定をしてみましたが、やはりIEだけスペースが残ってしまいます。 いろいろ修正しているうちに問題のスペースは50px程になりました。 ブラウザから確認すると、上部の文章とformとの間はスペースではなくform要素の上部分が大きいことがわかりました。(backgroundカラーを付けて確認しました) 別の方の回答も受け、tableを1行にすると問題のform上部分が小さくなりました。 どうやら行を増やす毎に大きくなるようです。 考えられる場所全てにmargin,paddingの指定を試しますが、まだ解決しません。 引き続き、他サイトのコードを参考にするなどして解決策や記述ミスを探してみようと思います。 この度は大変ありがとうございました。 またご質問させていただいた時はどうぞ宜しくお願い致します。

関連するQ&A

  • ボタンクリックでフォーカス移動

    JavaScript超ビギナーなので方法がよくわかりません。 フォームにテキストボックス(配列)4個あり ボタンを押すたびに未記入のテキストボックスにカーソルを移動したいのですが。どのようにしたらいいでしょうか。 <form name="form1" method="post"> <table width="200" border="1"> <tr><td ><input type="submit" name="Submit" value="送信"></td></tr> <tr><td ><input type="text" name="name1"></td></tr> <tr><td><input type="text" name="name1"></td></tr> <tr><td><input type="text" name="name1"></td></tr> <tr><td><input type="text" name="name1"></td></tr> </table> </form>

  • ラジオボタンでの表示の切替方法

    2つのラジオボタンの切替によって、表示の切替を行いたいです。 例えば、Aを選択すると(1)の入力フォームが表示され、Bを選択すると(2)が表示したいです。初期表示はAが選択された時と同じ内容となります。 <table align="center" border="0" cellpadding="0" cellspacing="0"> <tr><td><form name="Quick1"> <tr><td>選択</td> <td> <input type="radio" name="A" value="1" checked>A  <input type="radio" name="B" value="2">B  </td></tr> <tr> <td>(1)</td> <td> <input type="text" size="6" maxlength="5" name="text1" value="">- <input type="text" size="6" maxlength="5" name="text2" value="">- <input type="text" size="6" maxlength="5" name="text3" value=""> </td></tr> <tr> <td>(2)</td> <td> <input type="text" name="text7" size="43" value=""> </td></tr> </table></form></td></tr></table> すみませんが、よろしくお願い致します。

  • IEで、「まれに画面の一部が表示されない」という現象が起きて困っていま

    IEで、「まれに画面の一部が表示されない」という現象が起きて困っています。 IE向けのウェブアプリの保守・開発をしているものですが、 IEで以下のようなHTMLの、下のコード中の<table width="600" class="btn_area">以下の情報が何度かに一度だけ表示されない、という現象が起きています。 正常に表示されることの方が多いのですが、単純に更新を繰り返すと数回~20回に一度、表示されない現象がおきます。 Firefoxだと発生しません。IEだとバージョン6,7,8で同じように発生します。 IE8の開発者ツールで問題が起きた画面と起きていない画面を比べると、コードは画像のsrcを含め変わりありません。 ただし、左タブをHTML、右タブをレイアウトにしてみると、 表示されているテーブルは同一なのですが、 表示されていないテーブルではOffset、長さ・高さが0になっています。 このテーブルの読み取りに失敗しているようなのですが、その原因がわかりません。ご存じの方いらっしゃいましたら、お教えください。 一部省略した、問題が起きるコードは以下です。 <form> <table> //略 </table> <table> //略 </table> <table width="600" class="btn_area"> <tr> <td width="300"></td> <td width="100"> <input type="hidden" name="PG" value="1"> <input type="image" src='../images/BtIns.gif' ></td> </form> <form method="post" action="XXX"> <td> <input type="hidden" name="PG" value="1"> <input type="image" src="../Images/BtReturn.gif" width="100" alt="一覧表示画面へ戻ります"></td> </form> <form method="post" action="XXX"><td width=100><input type="image" src="../Images/BtMnuCst.gif" width=100 alt="メニューへ戻ります"></td> </form> </tr> </table>

    • ベストアンサー
    • HTML
  • form要素とtable要素

    元はこちらです。 http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1483846324 <table> <tr><td><input form="form1" type="text" value="text1"></td></tr> <tr><td><input form="form1" type="submit" value="submit1"></td></tr> <tr><td><input form="form2" type="text" value="text2"></td></tr> <tr><td><input form="form2" type="submit" value="submit2"></td></tr> </table> <form id="form1" action="cgi1.cgi" method="POST"></form> <form id="form2" action="cgi2.cgi" method="POST"></form> 上記はHTML5の仕様に従って書いていますが、これを、HTML4.01の仕様に反さないように書くと、どの様にすればいいのでしょうか。 添付画像は、実際のテーブルの様子です。

    • ベストアンサー
    • HTML
  • 入力フォームに半角スペース以降が表示されない

    Perlでプログラムを組んでいます。 「山田 太郎」とデータを書き込みました。 それを$nameという変数に入れてPerlで出力し、 HTMLのフォームで表示しようとすると 「山田」までしか表示されません。 フォーム以外ではちゃんと「山田 太郎」と表示されます。 入力フォームはINPUTTYPE=text maxlength=20 です。 スクリプトは以下のような感じです。 HTML出力部分のみ。 # フォームからの情報を連想配列 %form に入れる &init_form($kanjicode) ・・・・ print <<"EOD"; Content-type: text/html <HTML> <HEAD> $contenttype <TITLE>$title</TITLE> </HEAD> <body> $tabletag <UL> <LI>$nameさんパスワードは大文字小文字の違いに注意してください。</LI> ↑「山田 太郎」とちゃんと表示される </UL> <FORM ACTION=$thisurl METHOD=$method> <TABLE> <TR> <TD>氏名</TD> ↓ここでは「山田」までしか表示されない <TD><INPUT type=text size=20 maxlength=20 name=$name value=$name></TD> </TR> <TR> <TD>パスワード</TD> <TD><INPUT type=password size=4 maxlength=4 name=pass value=$pass></TD> </TR> <TR> <TD COLSPAN=2> <INPUT type=hidden name=cmd value=new2> <INPUT type=submit value=登録する> </TD> </TR> </TABLE> </FORM> </BODY></HTML> EOD なにかヒントがありましたら教えてください。

    • ベストアンサー
    • Perl
  • フォーム htmlで項目をセット

    下記フォームのページがあります。 http://hogehoge.com/form.html <form action="#" method="post"> <table border="1"> <tr> <td>名前</td> <td><input type="text" name="name"></td> <td colspan="2" align="center"> <input type="submit" value="入力"> </td> </tr> </table> </form> </body> </html> このフォームに http://hogehoge.com/form.html?name=xxx でアクセスすると、 nameの項目に xxxが入力されて表示できるようにアクセスする事は可能なのでしょうか? 恐れ入りますが、ご教授お願い致します。

    • ベストアンサー
    • HTML
  • フォームで確認画面を表示させるにはどうすればいいのでしょうか?

    質問をご覧下さりありがとうございます。 <form action="18add.php" method="POST" name="form1"> <table> <tr> <th>番号(半角数字)</th> <td><input type="text" name="number" value=""></td> </tr> <tr> <th>名前</th> <td><input type="text" name="name" value=""></td> </tr> <tr> <td><input type="hidden" name="mode" value="add"></td> <td><input type="submit" name="submit" value="追加"></td> </tr> </table> </form> htmlでこんなフォームを作り、phpで $table_body = ""; if( isset( $_POST['mode'] ) ){ $mode = $_POST['mode']; $number = $_POST['number']; $name =$_POST['name']; } else{ $mode = ""; $number = ""; $name = ""; } if( $mode == "add" ){ $table_body .= "<tr>"; $table_body .= "<td>"; $table_body .= $number; $table_body .= "</td>"; $table_body .= "<td>"; $table_body .= mb_convert_encoding( $name, "SJIS", "EUC-JP" ); $table_body .= "</td>"; $table_body .= "</tr>"; } で一度入力された情報を確認する画面を作りたいのですが うまくいきません。 初心者なのでわかりやすく説明をつけてくださると大変助かります。

    • 締切済み
    • PHP
  • IEソース表示の整理の仕方

    sea_clear_sky8 [環境] OS Win98SE PWS [質問内容] Response.writeメソッドによって、出力されて、<HTML>タグが IEの 「表示」→「ソース」では、1行で表示されてしまいます。 それを区切ってきれいにするにはどうプログラムを出力したらいいのでしょうか? 例 1行に表示される。 <form id="myForm"method="post"action="kousin.asp"><table><tr><TD>id</TD><TD>name</TD></TR><TR><TD> これを下記のように区切って表示されるようにしたいのです。 <form id="myForm" method="post" action="kousin.asp"> <table> <tr> また、ASPファイルのソース、スクリプトをIEの「表示」→「ソース」で みえないようにするにはどうしたらよろしいのでしょうか? ご教授願います。 よろしくお願いします。

  • javascript ラジオボタン

    javascriptのことで質問させてください。 よろしくおねがいします。 簡単なフォームをテーブルで作成しています。 例えばの例でお願いします。 <form action="" method="post"> <table> <tr> <td>表示/非表示<td> <td><input type="radio" value="1">非表示 <input type="radio" value="2">表示<td> <tr> <!--ここから表示/非表示部分--> <tr> <td>テキスト<td> <td><input type="text"><td> <tr> <!--ここまで表示/非表示部分--> </table> </form> 上記のようなフォームがあったとします。 PHPを使用していまして、 『hoge.html?str=値』 がアドレスとします。 $str=$_GET['str']; $str=1 の時は、はじめは表示 $str=2 の時は、はじめは非表示 $str="" の時は、はじめは非表示 という感じの内容でラジオボタン選択すると表示/非表示されると言うものを作成したいと思っています。 説明がわかりにくいと思いますがどうぞよろしくお願いします。

  • Yes/No型を使ってアップロード

    はじめまして。 下記にhtmlを書かせていただいてますが、このhtmlの『アップロード』のボタンを押すと 1. データベース『mdb』のYes/No型にチェックが入る 2. Yes/No型にチェックが入ったものはアップロードされる ようにすることはできるでしょうか?また、何か参考になるサイト様などがあれば 教えていただきたいのです。 おわかりになる方、よろしくお願いします。 下記のような↓フォームです。 ---------------------- <table> <TR> <TD> <INPUT type='hidden' NAME='UPDATE_ID' VALUE='1'> <center><INPUT TYPE='submit' VALUE=' アップロード '><br><center> <p></p> </TD> <TD>登録ファイル1</TD></FORM> <FORM ACTION='' METHOD='POST'> <TR> <TD> <INPUT type='hidden' NAME='UPDATE_ID' VALUE='2'> <center><INPUT TYPE='submit' VALUE=' アップロード '><br><center> <p></p> </TD> <TD>登録ファイル2</TD></FORM> <FORM ACTION='' METHOD='POST'> <INPUT type='hidden' NAME='UPDATE_ID' VALUE='3'> <TR> <TR> </FORM> <TR> </table>