2012-04-25 12 views
5

Ho problemi con z-index e posizionamento. In sostanza, quando si passa sopra le voci di menu (casa, circa, ecc), spruzzi di vernice dovrebbero caricare sotto il menu:Z-Index e relativo/Posizionamento assoluto

http://www.saradouglas.net/home

foglio di stile si trova qui: http://www.saradouglas.net/wp-content/themes/sara-douglas-theme/style.css

questo ha funzionato bene quando ogni div spruzzi era impostato sul posizionamento assoluto, ma ho capito che questi sarebbero apparsi in posti diversi con risoluzioni dello schermo diverse. Ho pensato che sarebbe stato solo un caso di cambiare questo posizionamento relativo, e quindi di aggiustare le coordinate di conseguenza. Purtroppo ora i miei spruzzi non compaiono sotto il menu, come dovrebbero.

Per chiarire, voglio che gli spruzzi compaiano sotto il menu - quindi il menu dovrebbe sempre apparire in cima agli schizzi. Questo è solo diventato un problema da quando si imposta il menu a relativo, e questi schizzi su assoluto.

Spero che questo sia semplice da correggere e mi manca qualcosa. Spero che qualcuno qui possa dirmi dove sono andato male e offrire una soluzione!

Ci sono state alcune buone risposte inviate finora ma purtroppo non hanno risolto il mio problema. Ho provato ad aggiungere lo sfondo del menu alla classe UL piuttosto che al div, ma questo non ha cambiato il problema.

Grazie in anticipo.

Ross

+0

In quale dei fogli di stile vengono spruzzati i colori? –

+0

http://www.saradouglas.net/wp-content/themes/sara-douglas-theme/style.css – rossautomatica

+0

Questa non è una risposta alla tua domanda, ma un feedback generale. Consiglierei di caricare lo sfondo di questi 'span' in una volta ... ora, dopo che un utente passa su una voce di menu, il browser fa una richiesta per l'immagine ... sposta semplicemente la proprietà' background in 'spans' per 'a: hover span' ... quindi tutte le immagini verranno caricate contemporaneamente. – skip405

risposta

12

Se ricordo bene l'ordine di precedenza di z-indici è qualcosa di simile

  • tela (dove la elemento è disegnata/genitori zona drawable)
  • immagini bg
  • z-index: -1
  • predefinito (0)
  • z-index: 1+

Quando dunque fai qualsiasi elemento figlio di un z-index di -1, non andrà al di sotto del fondo i genitori a causa della genitori precedenza.

Ecco la soluzione. Ho appena provato Firebug e funziona:

  1. Rimuovere l'immagine di bg da #menu e aggiungere un div separato sotto il ul.menu prima dei LI.
  2. Dai il css qui sotto a questo div.
  3. Ora date a tutte quelle pennellate un indice z più piccolo di -1. -2 opere.

E quello dovrebbe essere.

CSS:

position:absolute; 
top:0; 
bottom:0; 
left:0; 
right:0; 
z-index:-1; 
background: url(...); 

so che non più di tanto semantica, ma, hey funziona, giusto? : P

+0

Ciao - grazie per la tua risposta e grazie soprattutto per essere così completo. Sfortunatamente, sto ancora avendo lo stesso problema con z-index! Saresti così gentile da controllare se ho perso qualcosa? – rossautomatica

+0

Sì, aggiungi il # menu-separatore all'interno dell'ul, non accanto ad esso come fratello. # menu-separator dovrebbe essere un figlio di ul. – Ege

+0

Perfetto. Ho solo bisogno di fare un po 'di lavoro su ul adesso per farlo sembrare così, ma questa è la mia domanda .. grazie !! – rossautomatica

1

Si dovrebbe impostare la posizione relativa nella vostra div menu, quindi aggiungere div posizionamento assoluto nel div del menu. quindi le diverse risoluzioni dello schermo non è un problema.

+0

Questo risponde al mio problema di posizionamento, ma ora gli spruzzi appaiono sopra il menu ... – rossautomatica

+0

È esattamente lo stesso :) –

+0

Grazie per il tuo aiuto - tuttavia, gli spruzzi appaiono in cima al menu, ma dovrebbero essere sotto il menu . Sai come posso risolvere questo problema? – rossautomatica

0

Puoi farlo semplicemente impostando BG, imbottiture e l'altezza su ul invece di <div id="menu">

+0

Ciao Simon, grazie per la tua risposta. L'ho provato - ho impostato bg, paddings e height sul 'menu' ul invece del div, ma mi ha dato lo stesso identico risultato che ho attualmente. Ora sono tornato al mio codice originale, quindi sfortunatamente non sono più avanti. Forse ho frainteso la tua risposta? – rossautomatica