Ich habe ein interessantes Problem hier. Ich verwende eine Klasse für das Element als einen Schalter, um ein ziemlich großes Layoutverhalten auf meiner Site zu erzielen.Wann berechnet IE7 Stile neu? Funktioniert nicht zuverlässig, wenn eine Klasse zum Körper hinzugefügt wird
Wenn die Klasse angewendet wird, passieren bestimmte Dinge, und wenn die Klasse nicht angewendet wird, passieren sie nicht. Javascript wird verwendet, um die Klasse anzuwenden und zu entfernen. Der entsprechende CSS ist in etwa wie folgt aus:
.rightSide { display:none; }
.showCommentsRight .rightSide { display:block; width:50%; }
.showCommentsRight .leftSide { display:block; width:50%; }
Und der HTML:
<body class="showCommentsRight">
<div class="container"></div>
<div class="leftSide"></div>
<div class="rightSide"></div>
</div>
<div class="container"></div>
<div class="leftSide"></div>
<div class="rightSide"></div>
</div>
<div class="container"></div>
<div class="leftSide"></div>
<div class="rightSide"></div>
</div>
</body>
ich vereinfacht die Dinge haben, aber dies ist im Wesentlichen das Verfahren. Die gesamte Seite ändert das Layout (die rechte Seite wird in drei verschiedenen Bereichen ausgeblendet), wenn die Flagge auf den Körper gesetzt wird. Dies funktioniert in Firefox und IE8. Es funktioniert nicht im IE8 im Kompatibilitätsmodus. Was faszinierend ist, ist, dass wenn Sie dort sitzen und die Seite aktualisieren, die Ergebnisse variieren können. Es wird die rechte Seite eines anderen Abschnitts angezeigt. Manchmal wird nur die rechte Seite des oberen Bereichs angezeigt, manchmal wird auch die Mitte angezeigt.
Ich habe versucht:
- ein Validator (suchen malformed html)
- doppelt meine CSS-Formatierung überprüft und ...
- dafür, dass Blatt meiner IE7 Hack wurde eine Wirkung nicht haben.
- setzt die Flagge Klasse auf einem anderen, nicht-Körperhüllenelement (noch hat das gleiche seltsame Verhalten)
Also meine Frage ist:
- Gibt es eine Möglichkeit, dass dieses Verhalten zuverlässiger gemacht werden kann?
- Wann entscheidet sich IE7 für das Re-Styling?
Danke an alle.
Das klingt wirklich interessant. Es gibt keine Möglichkeit, dies auf eine Live-Site zu setzen, um sie zufällig zu betrachten und zu bestätigen. Haben Sie darüber nachgedacht, die Entwicklersymbolleiste für IE7 zu installieren, um genau zu sehen, wo es schief geht? http://www.microsoft.com/downloads/details.aspx?familyid=e59c3964-672d-4511-bb3e-2d5e1db91038&displaylang=en –
Ich habe die Dev-Toolbar installiert, sagt mir, dass die .rightSide-Elemente immer noch anzeigen: keine Anwendung, selbst wenn dieses Element angezeigt wird. Die Ungenauigkeit dort war jedoch keine große Überraschung, ich habe festgestellt, dass die Symbolleiste ziemlich häufig mit dynamischem Code nicht synchron ist. – SimplGy
Es gibt keine Möglichkeit, es auf eine Live-Site zu stellen, sorry. Ich fand diesen möglicherweise verwandten Beitrag: http://www.codingforums.com/archive/index.php/t-99370.html – SimplGy