Esta pregunta se puede resolver de varias maneras, pero realmente, conocer las reglas de apilamiento le permite encontrar la mejor respuesta que funcione para usted.
Soluciones
El <html>
elemento es su único contexto de apilamiento, así que solo siga las reglas de apilamiento dentro de un contexto de apilamiento y verá que los elementos se apilan en este orden
- El elemento raíz del contexto de apilamiento (el
<html>
elemento en este caso)
- Elementos posicionados (y sus elementos secundarios) con valores negativos de índice z (los valores más altos se apilan delante de los valores más bajos; los elementos con el mismo valor se apilan según la apariencia en el HTML)
- Elementos no posicionados (ordenados por apariencia en el HTML)
- Elementos posicionados (y sus elementos secundarios) con un valor de índice z de auto (ordenado por aparición en el HTML)
- Elementos posicionados (y sus elementos secundarios) con valores positivos de índice z (los valores más altos se apilan delante de los valores más bajos; los elementos con el mismo valor se apilan según la apariencia en el HTML)
Así que puedes
- establezca un índice z de -1, para que el
#under
índice z posicionado aparezca detrás del #over
elemento no posicionado
- establecer la posición de
#over
para relative
que la regla 5 se aplique a ella
El verdadero problema
Los desarrolladores deben saber lo siguiente antes de intentar cambiar el orden de apilamiento de los elementos.
- Cuando se forma un contexto de apilamiento
- Por defecto, el
<html>
elemento es el elemento raíz y es el primer contexto de apilamiento
- Orden de apilamiento dentro de un contexto de apilamiento
El orden de apilamiento y las reglas de contexto de apilamiento a continuación son de este enlace
Cuando se forma un contexto de apilamiento
- Cuando un elemento es el elemento raíz de un documento (el
<html>
elemento)
- Cuando un elemento tiene un valor de posición distinto de estático y un valor de índice z distinto de auto
- Cuando un elemento tiene un valor de opacidad menor que 1
- Varias propiedades CSS más nuevas también crean contextos de apilamiento. Estos incluyen: transformaciones, filtros, regiones CSS, medios paginados y posiblemente otros. https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Position/Understanding_z_index/The_stacking_context
- Como regla general, parece que si una propiedad CSS requiere renderizarse en un contexto fuera de pantalla, debe crear un nuevo contexto de apilamiento.
Orden de apilamiento dentro de un contexto de apilamiento
El orden de los elementos:
- El elemento raíz del contexto de apilamiento (el
<html>
elemento es el único contexto de apilamiento por defecto, pero cualquier elemento puede ser un elemento raíz para un contexto de apilamiento, consulte las reglas anteriores)
- No puede colocar un elemento secundario detrás de un elemento de contexto de apilamiento raíz
- Elementos posicionados (y sus elementos secundarios) con valores negativos de índice z (los valores más altos se apilan delante de los valores más bajos; los elementos con el mismo valor se apilan según la apariencia en el HTML)
- Elementos no posicionados (ordenados por apariencia en el HTML)
- Elementos posicionados (y sus elementos secundarios) con un valor de índice z de auto (ordenado por aparición en el HTML)
- Elementos posicionados (y sus elementos secundarios) con valores positivos de índice z (los valores más altos se apilan delante de los valores más bajos; los elementos con el mismo valor se apilan según la apariencia en el HTML)