2012-10-26 9 views
16

Io uso jQuery per creare un div apear, quando clicco su un pulsante -> lo sfondo dovrebbe avere una opacità di 0.8 e il div apparirà permetterà all'utente di fargli accedere - tutto bene quando non uso z- indice, ma ho 4 div (header, content, footer, e div con login-Form) deve avere z-index: 3 e content z-index: 2 - altrimenti le ombre non funzioneranno come previsto.z-index non funziona?

Con jQuery aggiungo un div dopo il tag body che contiene il lato completo - quindi posso impostare l'opacità, ma poi devo impostare lo z-index per il form-div più alto di quello per il div con opacità - ma non funziona. z-index del form-div è 999, l'altro div ha 5

Eventuali soluzioni alternative o qualcosa per z-index?

+2

Avremo bisogno di vedere l'HTML e il CSS per dare una risposta definitiva – Dancrumb

+0

z-index è complicato. Devi assicurarti di abilitare gli elementi per "usare" z-index. 'posizione: relativo;' per gli elementi che si desidera conservare nel flusso del documento e 'posizione: assoluta;' per gli elementi al di fuori del flusso del documento. Inoltre, IE7 ha un "bug" z-index che basa il suo indice sul suo genitore e che i genitori z-index sono paragonati ai suoi fratelli nel DOM. Questo può causare mal di testa. – jmbertucci

+0

Possibile duplicato di [Perché z-index non funziona?] (Http://stackoverflow.com/q/9191803/1529630), ma non può sapere perché non c'è codice. – Oriol

risposta

39

Modificare la posizione dell'elemento.

position: relative; 
+1

Ecco la documentazione: http://www.w3schools.com/cssref/pr_pos_z-index.asp – SamHuckaby

+0

già provato: -S - non funziona –

+8

@SamHuckaby: Non è "la" documentazione. W3Schools non è W3C. La vera documentazione è qui: http://www.w3.org/TR/CSS21/visuren.html#z-index – BoltClock

2

È necessario assicurarsi che position sia definito nel CSS. se si desidera che z-index venga implementato nell'elemento normale dell'HTML, quindi aggiungere position:relative al proprio elemento.

4

Vecchia domanda ma pubblicherò comunque se qualcun altro viene in cerca di una soluzione.

z-index non è così semplice come potrebbe sembrare. Fare z-index su element1 = 999 e su element2 = 1 non significa sempre che l'elemento 1 sarà in primo piano.

Ho avuto una situazione simile una volta, e ho cambiato lo z-index con jQuery quando avevo bisogno che l'elemento fosse di fronte, e funzionava bene. Ciò significa che z-index si preoccupa del tempo in cui hai dato quell'indice. Se vuoi dargli un valore di 999, dai al momento nel momento in cui vuoi che sia in primo piano. Questo potrebbe far sì che rimanga in cima, ma potrebbero ancora essere applicate altre regole, vale a dire: ordine di sovrapposizione. Questo argomento è abbastanza ampio da trattare qui, quindi ti indicherò qui: http://philipwalton.com/articles/what-no-one-told-you-about-z-index/

4

È necessario fare qualcosa sull'elemento genitore.

overflow: visibile;

Questo ti farebbe.

+0

Non so perché questa risposta ha ottenuto solo un voto (il mio). Questo mi ha appena salvato un **! –

+0

E ora che ci pensavo, mi rendo conto che il mio problema non era affatto lo z-index. L'elemento è stato semplicemente tagliato perché usciva dal suo genitore (usando 'posizione: assoluto'). –

+0

@GiladBarner Contento di aver potuto aiutare:) – steveluoxin

Problemi correlati