Ho una situazione in cui ho 2 o più elementi di posizione fissi su una pagina visualizzata sovrapposta l'una sull'altra (cioè, la parte superiore del secondo si trova sul fondo del primo - nessun impilamento con z-index di quegli elementi). All'interno del primo elemento di posizione fissa, c'è un elemento assolutamente posizionato che è più alto del suo genitore fisso, quindi si estende oltre il fondo di quel genitore fisso.Z-index non si comporta come previsto con posizionamento assoluto all'interno di un elemento di posizione fissa
Il problema è che il prossimo elemento di posizione fisso viene visualizzato sopra l'elemento posizionato in modo assoluto. Ho un valore z-index più alto impostato sull'elemento posizionato in modo assoluto rispetto agli elementi posizionati fissi, ma è completamente ignorato.
Per aiutare a chiarire il problema, ho messo insieme questo esempio:
HTML
<div class="fixed first">
<p>This is a fixed element</p>
<p class="abs">
I should be displayed above both fixed position elements
</p>
</div>
<div class="fixed second">
<p>This is a fixed element</p>
</div>
CSS
.fixed {
font-size: 16px;
background: #eee;
border-bottom: 1px solid #ccc;
position: fixed;
height: 3em;
width: 100%;
z-index: 1;
}
.abs {
position: absolute;
background: #acc;
height: 6em;
top: 0;
left: 25%;
width: 50%;
z-index: 2;
}
.second {
top: 3.0625em;
}
Ecco l'esempio lavorare su JSFiddle:
Sono un po 'perplesso da questo. Qualcuno ha una spiegazione del perché questo sta accadendo e un modo per aggirarlo?
[questo ha una buona spiegazione su come funziona z-index] (http://coding.smashingmagazine.com/2009/09/15/the-z-index-css-property-a-comprehensive-look/) , poiché vedrai tutti gli elementi sullo stesso livello che hanno uno z-index avranno la precedenza su quelli dello z-index del livello secondario. Con questo in mente il tuo violino di sopra funziona come previsto – Pete
Ovviamente! Ho dimenticato che ogni elemento posizionato crea il proprio contesto di impilamento. Poiché ogni elemento di posizione fissa nell'esempio ha lo stesso valore z-index, l'ordine sorgente entra in gioco. Grazie per il promemoria, Pete. –