2009-02-26 8 views
5

Für eine Weile habe ich * html div { zoom: 1; } in meinem Basis-Stylesheet, und es hat gut funktioniert. Allerdings stoße ich jetzt auf Situationen, in denen Elemente absolut positioniert sind, die ihre Höhen und Breiten in IE 6 verlieren, da dies der Fall ist. Ich denke also an * html div { height: 1%; }, aber was sind die Nebenwirkungen?Auslösen von haslayout in IE 6, was ist der Nebeneffekt der Verwendung von * html div {Höhe: 1%; }

Update:

Vielen Dank für Ihre Antworten. Die Antwort ist höchstwahrscheinlich keine Nebenwirkungen, wie Sie alle gesagt haben.

Ich werde jedoch mit all Ihren Empfehlungen (in diesem Moment) nicht einverstanden sein, wie/wann haslayout ausgelöst werden soll. Ich sehe haslayout ein wünschenswertes Verhalten und sollte daher ein Standardverhalten in IE6 sein (& 7).

Es wurde erwähnt, dass es unwahrscheinlich ist, dass es irgendwelche Nebenwirkungen geben würde, aus dem genauen Grund, warum es nicht ein Standardverhalten machen und es nur ausschalten, wenn ein unerwünschtes Verhalten (wenn überhaupt) auftritt.

Sie können dies tun, indem Sie {zoom: auto;} oder {height:auto;} für dieses spezifische Element angeben, je nachdem, wie es im Basis-Stylesheet definiert wurde.

Ich werde die Antwort an die erste Person geben müssen, die "keine Nebenwirkungen" sagte, da jeder die gleiche Antwort gibt, während einige außerhalb des Geltungsbereichs gingen. Danke noch einmal!

+0

ich getroffen habe immer hilft, die ‚machen Sie es richtig dann fix IE Ansatz‘ anwenden, um den Hack alles nie wirklich fiel mir ein. Könnte ein interessantes Experiment für mein nächstes Projekt sein. Sehen Sie, ob es irgendwelche IE6 Käfer aus dem Tor tötet. Danke für die Idee! –

Antwort

3

Dies ist bekannt als The Holly Hack. Soweit ich weiß, gibt es keinen Nebeneffekt, vor allem wenn Sie es direkt für IE6 * html. Ich stimme den anderen Plakaten zu, dass die Platzierung auf dem Tag <div> möglicherweise nicht die klügste Wahl ist - ich würde die einzelnen Elemente ansprechen, die Kummer verursachen.

1

Ich versuche, diese Art von Problemumgehungen zu minimieren, um unvorhergesehene Probleme zu vermeiden. Ich verwende es nur für die Elemente, die es brauchen, wenn IE6 ein Layout bricht, niemals für alle Elemente einer Seite.

0

Eine Höhe von 1% sollte keine Auswirkungen haben, da IE Dimensionen als min-Dimensionen wirklich behandelt. Wie auch immer: pos: abs ist genug, um haslayout zu geben, und ich stimme Jeroen zu, dass pauschale Behauptungen wie diese nicht klug sind. Dies ist zum Beispiel bei einem CSS-Reset nicht erwünscht.

1

Ich glaube auch nicht, dass es irgendwelche Nebenwirkungen gibt. Aber wie gesagt - benutze es nur auf was du brauchst. Ich würde persönlich ...

  1. Verwenden Sie es nur auf eine Reihe Klasse:

    • html .haslayout {height: 1%; }
  2. Platz es in einem IE 6 Sheet über eine <

    conditional comment enthalten! - [if IE 6] > < link href = "ie6.css" rel = "stylesheet" type = "text/css" media = "Bildschirm, Projektion"/> <![Endif] - >

Hoffnung, die