Ejemplo de marcado:revertir z-índice basado de la página para rendir
<div class="wrapper">
<h2>Trigger</h2>
<div>This is some content</div>
</div>
<div class="wrapper">
<h2>Trigger</h2>
<div>This is some content</div>
</div>
<div class="wrapper">
<h2>Trigger</h2>
<div>This is some content</div>
</div>
Ejemplo CSS:
.wrapper {z-index: 1}
.wrapper div {display: none; position: absolute;}
a través de JavaScript (jQuery) Estoy adjuntando un evento de clic a cada h2 que luego cambiar el contenido div para mostrar: bloque.
La intención es que estos sean bloques de contenido expandibles que se superpondrán a cualquier otra cosa en la página.
El problema es que me gustaría que el primero se superponga al segundo, que se superpondría al tercero en caso de que todos estén abiertos.
Sin embargo, dado que cada uno se renderiza DESPUÉS del anterior, el orden de apilamiento real se invierte (El último contenido div creado end sup superponiendo el creado anteriormente una vez).
¿Existe alguna manera ingeniosa de revertir este comportamiento con CSS/HTML? ¿O es la solución para permitir que la página se renderice, luego a través de javascript, toma todos los divs de contenido en orden y les da a cada uno un índice z en orden inverso?
ACTUALIZACIÓN:
Aquí hay algunas marcas más específico:
<div style="padding: 10px;">Hello World
<div style="position: relative; top: -5px;">
<div style="position: absolute; background: yellow;"><p>This</p><p>is</p><p>overlapping</p></div>
</div>
</div>
<div style="padding: 10px;">Hello World
<div style="position: relative; top: -5px;">
<div style="position: absolute; background: orange;"><p>This</p><p>is</p><p>overlapping</p></div>
</div>
</div>
<div style="padding: 10px;">Hello World
<div style="position: relative; top: -5px;">
<div style="position: absolute; background: red;"><p>This</p><p>is</p><p>overlapping</p></div>
</div>
</div>
El siguiente marcado producirá 3 divs, cada uno con un div superposición de color. Debido al orden de renderizado, el último DIV (rojo) absolutamente posicionado estará encima del anterior (naranja).
No puedo averiguar qué tipo de índices z necesito aplicar para que el PRIMER div superpuesto en color esté en la parte superior. El orden de arriba a abajo en términos de índice Z debe reflejar el marcado (amarillo en la parte superior, rojo en la parte inferior).
Esto es, por supuesto, contrario al estándar.
Estoy dispuesto a usar javascript para corregir esta publicación posterior, pero todavía estoy luchando por el CSS exacto que necesito aplicar a través de JavaScript. ¿Es posible lo que estoy buscando?
¡ME GUSTARÍA ver una respuesta a esto también! Tengo exactamente el mismo problema, ¡excepto que no sabré por adelantado cuántos hay para apilar! – n8wrl
Sería genial si las funciones css3 se pudieran usar como valores para z-index. I.E .: 'contra-incremento: mi-contador; z-index: contador (my-counter, decimal); 'OR' z-index: calc (xpos + 1) ', pero no puedo hacerlo funcionar. – skibulk