2

サーバーへの非同期投稿を行うユーザーコントロールに取り組んでいます。ユーザーコントロールをフェードさせて、動作中に「送信中...」メッセージとgifを表示したい。そうするために、私はコントロールのメインdivの上に半透明のdivを絶対に配置しようとしています。本来よりもはるかに難しいことが判明しています。私はついにFirefoxで問題ないように見えましたが、IEに入ると、コントロールのメインdivが正しい幅でさえないことがわかりました。

全幅を275pxにしたい。だからFirefoxで私はそれを持っているようにスタイリングしました

width: 245px; margin 36px 15px 46px 15px;

つまり、幅+マージン= 275であり、それがレンダリング方法です。IEでは、ブラウザは幅からマージンを差し引いているため、合計幅は245で、その中に15pxのマージンがあります。さて、私は両方のブラウザがクァークズモードで実行されていることを知りました...私は思う...ドキュメントタイプは次のとおりです:

<!DOCTYPE HTML PUBLIC -//W3C//DTD HTML 4.01 Transitional//EN>

私の理解では、これがクァークズモードの機能ですが、IEとFirefoxの両方がクァークズモードであっても、レンダリングが異なる場合は、どうすればよいかわかりません。

4

1 に答える 1

0

リンクを貼っていただけると対応しやすいのですが、私の推測が正しければ、このようなメタタグを使ってIEモードを強制することができます

<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" />

明らかに、使用するバージョンによって異なります。同様に、互換モードを強制的に終了させたり、互換モードに切り替えたりすることもできます。私は Firefox でこの問題を経験したことがないので、それについて話すことはできませんが、Mozilla にも同様の問題があると思います。

ただし、ボックスモデルを設定することで問題が解決されると思います。問題のブロック要素でこの CSS クラスを使用します

#yourdiv { box-sizing: border-box }

これにより、さまざまなブラウザーでのボックス モデルのレンダリングの手間が軽減されます。ボックスサイズの詳細については、こちらをご覧ください。

display: blockまた、これにより奇妙なことが修正される場合があるため、忘れないでください。

于 2013-02-25T20:24:38.343 に答える