0

FF と Chrome では美しく動作するが、IE では動作しない (ショック、ホラー!) 素敵なフロート フォーム レイアウトがあります。

ここに画像の説明を入力

それで、私はテストに行きます.弓を横切る最初のショットは、IEのFIELDSETに1pxのピンクの境界線を追加して、境界線がどこにあるかを確認することです.これが私が得たものです:

ここに画像の説明を入力

...きちんと IE、きちんと。それで、IEのレイアウトエンジンで何かをトリガーして、物事を本来のように動作させる「ディスプレイ」について何か覚えているので、Googleに会いに行きます。しかし、hasLayout のものは IE7 主義のようです。

したがって、詳細は次のとおりです。正しく配置されていない要素は、FIELDSET です。それに対する CSS 属性は 1 つだけです。「空白: nowrap;」(その下のタグはフロートでスタイルされています)。「新しい」clearfix を追加しても機能しません。

だから..誰かがIEで何が起こっているのかについて何か考えがありますか? また、余談ですが、条件文は私にとっては機能していないようです(...)これも奇妙です。

ああ...なぜ私がIEをとても、とても、とても嫌いなのかを思い出すことの暖かさと輝き...

4

1 に答える 1

1

いつも通りじゃない?時間をかけて StackOverflow の記事を書き、それを投稿すると、以前には見えなかった何かに焦点が当てられますか?

だから...これの原因は、IE9がレンダリング中に幅を設定しないことに関連しているようです。境界線が FIELDSET に配置されると、ラップを強制するのに十分な少なくとも 2px の幅が強制されました。幅を 0px に設定すると問題が発生しますが、幅を 1px (またはそれ以上) にすると期待どおりにラップされました。最後に、CSS クラスに「clear: left」を追加するだけで (これは、私が期待していたので、間違いなく適切です)、すべてが再び正しいものになりました。

そのため...場合によっては、IE9がレンダリング(レンダリング?)要素(この場合はFIELDSET)に幅を設定しないようです。これはおそらく hasLayout と関係がありますが、100% 確実ではありません。これは、FIELDSET 内のすべての要素が FLOAT されたままになっていることが原因である可能性があります。

于 2012-04-04T04:58:33.770 に答える