Frage

Ich versuche, mit einem IE7 Fehler in meiner Anwendung zu beschäftigen. Hier ist der HTML / CSS-Code

<div style="margin-left: 320px">
    <form method="post" action=""><fieldset>
        <textarea name="prj_comment" id="prj_comment" rows="5" cols="50" 
                  style="margin: 0; padding: 0"></textarea>
    </fieldset></form>
</div>

In Firefox / Opera / Webkit / IE6 es ist in Ordnung, aber in IE7 hat das Textfeld eine 100px Rand links. Wenn jemand einen Tipp hat, dies zu korrigieren, vielen Dank!

Hier ist ein Screenshot von IE7 Darstellung dieser Probe HTML:

http://daneel.net/pub/img/ie7_bug_decalage.jpg

War es hilfreich?

Lösung

total seltsam. Ich bekomme eigentlich eine 320px (= Mutter div Marge) in IE7.

Sie können mit einem IE7 nur negative Marge überschreiben, aber das ist schrecklich ...

EDIT: OK, ich habe keine Ahnung, warum das funktioniert, aber es funktioniert. dies ist definitiv ein Fehler:

<div style="margin-left: 320px; display:inline-block;">
    <form method="post" action=""><fieldset>
        <textarea name="prj_comment" id="prj_comment" rows="5" cols="50" 
                  style="margin: 0; padding: 0"></textarea>
    </fieldset></form>
</div>

Andere Tipps

Das sieht aus wie die geerbte Marge Fehler (ähnlich, aber unterscheidet sich von der Doppelmargen Bug mit Schwimmern). Die Textarea erbt die Marge aus dem div um die Form. Position ist alles es im Detail beschreibt.

Die praktischen Abhilfen sind:

  • Geben Sie dem Textfeld einen negativen linken Rand von -320px (für IE nur, natürlich).
  • Setzen Sie ein Inline-Element vor dem Text, aber innerhalb des Fieldset. Es sieht aus wie Sie den Stil festlegen können angezeigt werden. Keine, aber das Element kann nicht leer sein
  • Wickeln Sie das Textfeld in einem div / span / any-other-Tag, solange es keine Stilregel hat, dass es das Layout gibt (ich würde eigentlich gedacht, die Form oder Fieldset würde es beheben, aber anscheinend sie don ‚t).

Es scheint ein Fehler mit IE Standardstil für

zu sein. Meine Vermutung, dass intern sein würde, ist IE Styling Fieldset float Code und das Auslösen des berüchtigten Double- Marge Bug .

ich es geschafft, den Fehler zu besiegen einfach durch einen Wrapper setzen

direkt innerhalb
.

eine andere, (auch schrecklich) Lösung wäre, die &nbsp; gerade vor <textarea> hinzuzufügen ... aber IMHO, ich bin ok mit kämpfen schmutzig IE Bugs mit drity Lösungen ... Feuer mit Feuer, wenn man so will ...;)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top