Nun, das ist eine alte Geschichte, aber ich habe sie auch getroffen. Meine Lösung war ein bisschen anders:-
- Erstellen Sie ein Bild mit der gleichen Farbe wie der Hintergrund (in meinem Fall weiß), das das Div abdecken wird. Dieses Bild hat eine absolute Positionierung und einen höheren Z-Index als das Div, das ich ausblenden möchte.
- Machen Sie das innere div (das, das Sie sehen wollen) position: relative und geben Sie ihm die höchste z-Ordnung.
- main div ist zunächst ausgeblendet.
- Wenn die Seite geladen wird, positionieren Sie das Deckbild und machen Sie das Haupt-Div sichtbar. Da das div eine niedrigere z-Ordnung hat, wird es hinter dem abdeckenden Bild liegen und daher nicht sichtbar sein. Das innere Div hat jedoch wieder eine höhere z-Ordnung und wird sichtbar sein.
Der Vorteil dieses Ansatzes besteht darin, dass die Struktur und Position des Haupt-Divs und der untergeordneten Elemente durchgehend unverändert bleiben können. Das heißt, wenn Sie das Haupt-Div anzeigen möchten, können Sie einfach das abdeckende Bild entfernen. Wenn Sie außerdem sehen möchten, wie das Haupt-Div bei der Fehlersuche aussehen würde, können Sie das abdeckende Bildelement in den Debugger-Tools des Browsers, wie z. B. Firebug in Firefox oder Strg+Umschalt+i in Chrome, einfach entfernen.
Denken Sie daran, dass Sie den Z-Index für ein Element so einstellen, dass es absolut, relativ oder fest positioniert ist. Wenn Sie Probleme damit haben, dass der z-index wirksam wird, liegt das wahrscheinlich an der Stapelung von Kontexten. Siehe ici für eine gute Beschreibung, wie man dieses Problem lösen kann.