
現在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ブラウザの不具合なのでしょうか。
このような症状についてご存知の方がいらっしゃいまいしたらごご教授いただけますようお願い申し上げます。
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での設定がどこか間違っているのかもしれません(値とか単位とか)。
システム側で改行などのが埋め込まれるパターンかもしれません。
ブラウザからソースを見るか、単純化して再検証するかすれば判断出来るでしょう。
詳しいご回答をありがとうございます。
いろいろ修正しているうちに問題のスペースは50px程になりました。
アドバイスいただいたようにtableを1行にすると問題のform上部分が小さくなりました。
行を増やす毎に大きくなるようです。
ブラウザから確認すると、上部の文章とformとの間はスペースではなくform要素の上部分が大きいことがわかりました。(backgroundカラーを付けて確認しました)
考えられる場所全てにmargin,paddingの指定を試しますが、まだ解決しません。
引き続き、他サイトのコードを参考にするなどして解決策や記述ミスを探してみようと思います。
この度は大変ありがとうございました。
またご質問させていただいた時はどうぞ宜しくお願い致します。
No.1
- 回答日時:
reset.cssの導入をおすすめします。
「ユーザーからCSSによる特別な指定が無い場合、
各要素の周囲にどの程度隙間を設けるか」
については、ブラウザがそれぞれ固有の設定を持っています。
したがって、同じHTML,CSSをもっても、
どうしても、表示には差が出てしまいます。
そこで出来た解決策が、
ブラウザによる独自設定をまっさらにするCSSをまず読み込ませ、
その後必要な要素に対してCSSを設定していく
という手法です。
この「まっさらにするCSS」は、
reset.css という名前で何種類も出回っています。
検索してお好きなものを使ってみてください。
過去の似た事例では、
「formに対してだけ、かつmarginに対してだけ」resetをかけています。
http://oshiete.goo.ne.jp/qa/5421693.html
http://oshiete.goo.ne.jp/qa/1751711.html
---
なお、ブラウザの表示(CSS)まわりで問題が発生した場合、
その原因の90%はIEにあると思ってもらって差し支えありません。
それくらい酷いブラウザです。
というわけで、今後表示不一致問題が発生した場合は、
「ie 問題の要素」での検索もおすすめです。
form ie margin - Google 検索
http://www.google.co.jp/search?hl=ja&lr=lang_ja& …
詳しいご回答をありがとうございます。
reset.cssという存在を知らずに、CSSには*{margin:0; padding:0;}を指定していました。
公開されている代表的なreset.cssにリンクや書き足しをしてみたり、form要素に直接指定をしてみましたが、やはりIEだけスペースが残ってしまいます。
いろいろ修正しているうちに問題のスペースは50px程になりました。
ブラウザから確認すると、上部の文章とformとの間はスペースではなくform要素の上部分が大きいことがわかりました。(backgroundカラーを付けて確認しました)
別の方の回答も受け、tableを1行にすると問題のform上部分が小さくなりました。
どうやら行を増やす毎に大きくなるようです。
考えられる場所全てにmargin,paddingの指定を試しますが、まだ解決しません。
引き続き、他サイトのコードを参考にするなどして解決策や記述ミスを探してみようと思います。
この度は大変ありがとうございました。
またご質問させていただいた時はどうぞ宜しくお願い致します。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
colspanを使うと正しく表示でき...
-
tableでcolspanを使うと次行以...
-
TRタグの余白をcssで設定するには
-
テーブル<TD>内に均等割付で表示
-
tableにul,または,olを入れられ...
-
テーブルのセルにアンカー
-
javascriptを使って、指定行以...
-
大量にあるrowspanを分割したい。
-
エクセルで、タグを自動生成
-
<span>の中では折り返さないに...
-
テーブルの位置
-
逆L字の表(table)組み
-
文字列が入っているtdを削除せ...
-
cssで、表示されるテキストによ...
-
センタリングしたページの印刷
-
テーブルとテーブルの間隔について
-
テーブル内のセル間にスペース...
-
html5のテーブル内でdivのタブ...
-
入れ子にしたテーブルをheight1...
-
スタイルシートでpaddingを使う...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
テーブルの行を折りたたみたい...
-
テーブルの任意の列を非表示に...
-
テーブルのセルに画像をピッタ...
-
tableにul,または,olを入れられ...
-
テーブルのヘッダとボディの幅...
-
cssで、表示されるテキストによ...
-
中に<table></table>が使えるア...
-
逆L字の表(table)組み
-
テーブルの表示がずれます
-
TRタグの余白をcssで設定するには
-
EXCELからhtmlへの変換で罫線が...
-
テーブルのセルにアンカー
-
ASP GridViewで1レコード2行を...
-
colspanを使うと正しく表示でき...
-
tableの要素(tr、td)に一...
-
文字列が入っているtdを削除せ...
-
htmlのtable内に画像
-
tableの中にtableを作りスクロ...
-
テーブルタグのセルの幅の一部...
-
Htmlのtd要素の中で半角の空...
おすすめ情報