2008-10-22 8 views
18

Ich habe einen Fall, in dem eine Drittanbieteranzeige durch meine modale Fensterimplementierung blutet. Ich möchte den Z-Index des modalen Overlays so hoch wie möglich erhöhen, damit die Anzeige nicht darüber angezeigt wird. Gibt es eine Grenze für Z-Index-Werte? Ich bin mir sicher, wenn es nach Browser variiert. Weiß jemand?Gibt es eine Obergrenze für die Z-Index-Werte in Webbrowsern?

Antwort

13

Beachten Sie, dass z-index nicht global funktioniert, sondern nur innerhalb eines ‚Stapel Kontext‘ (die definition in CSS zu verdauen hart hat), und wenn die Anzeige Kontext seine eigene Stapel legt, dann z-index eingestellten Werte an anderer Stelle darf es überhaupt nicht beeinflussen.

jedoch wahrscheinlicher, es ist eine Frage des „Fenster“ Flash (Objekts ohne wmode=transparent Attribut), die am Anfang von allem machen Browser, als ob ein Fenster über Browser-Fenster war. In diesem Fall wird z-index überhaupt nicht helfen. Du musst ad [-provider] zwingen, wmode=transparent zu verwenden oder verrückte Hacks mit iframes zu verwenden.

+0

Es ist wahrscheinlich schwieriger, den Anbieter zu zwingen, etwas zu tun, als jede technische Lösung. Seufzer. Gute Info, obwohl! –

10

Nicht wirklich, aber Sie könnten die natürlichen Begrenzungen eines Systems, wie ein int-Bereich betrachten. Ich würde wahrscheinlich behalten es unter 32.767. Ich habe das in Javascript bei der Arbeit an einem ähnlichen Problem definitiv übertroffen und hatte keine Probleme auf den wichtigsten Browsern und Plattformen, die mir damals Sorgen machten.

Im Falle von Drittanbieter-Anzeigen und Overlays, stellen Sie sicher, dass wmode = "transparent" auf dem Flash-Embed ein häufiges Problem in die gleiche Richtung ist. Es ist auch erwähnenswert, dass der IE einen Fehler beim Stapeln von Z-Indizes hat. Wenn Sie also keinen Erfolg sehen, stellen Sie sicher, dass Sie damit nicht den Kopf gegen die Wand schlagen.

Ich möchte immer zu einer Art von Konvention halten, und keine willkürlichen Zahlen verwenden. Zum Beispiel, vielleicht alles in meinem CSS fällt zwischen 0 und 10. Vielleicht passiert dhtml stuff in den 100's Place Werten, mit einem aussagekräftigen Z-Index für jedes Modul.

* Sidenote: Der IE-Fehler ist, dass IE eine neue Instanz des Dokumentenflusses als neuen Stapelkontext für den Z-Index betrachtet. Sie müssen sicherstellen, dass Ihre Z-Indizes nicht in der DOM-Hierarchie verloren gehen, wenn ein untergeordneter Knoten, der normalerweise Ihren Z-Index erben würde, seinen eigenen Positionierungskontext erhält.

+0

Ich bin alles für die Konvention über Zufallszahlen. Momentan ist das modale Overlay auf 2999 und der modale Inhalt auf 3000 gesetzt. Ich bin bis zu 9999 vorher gegangen, war aber zurückhaltend darüber, viel höher zu gehen. –

+0

Ja, ich weiß zu schätzen, dass Sie Vorbehalte hatten. In der Vergangenheit habe ich den Z-Index rücksichtslos bis zu 6) oder 7) 9 erhöht, nur um zu sehen, ob ich ein Limit finden könnte. – keparo

+1

Ich habe gerade einen Z-Index von 3 Milliarden verwendet - 2 Milliarden haben dank SmartGWT nicht funktioniert. –

18

Der von den meisten Browsern unterstützte maximale zIndex-Wert ist 2147483647 (2^31-1), aber Opera 9.2 akzeptiert keine Werte, die größer sind als 2147483583; Sie haben es in Version 9.5 behoben.

+3

Ist das irgendwo dokumentiert? –

+2

Gute Sache auch, weil ich Angst hatte, dass ich nicht genug Schichten haben würde. j/König: P –

+0

Das ist meine Art von Antwort. (Referenzen sind immer auch gut) – Jacksonkr