z-index lors de l'utilisation de :: after under element

Si nous utilisons z-index combiné avec position: absolute; il est possible de placer le ::before d'un élément en lui-même. Il est un bon exemple sur une autre question (jsfiddle.net/Ldtfpvxy).

Fondamentalement

<div id="element"></div>

#element { 
    position: relative;
    width: 100px;
    height: 100px;
    background-color: blue;
}

#element::after {
    content: "";
    width: 150px;
    height: 150px;
    background-color: red;

    /* create a new stacking context */
    position: absolute;
    z-index: -1;  /* to be below the parent element */
}

rend:

z-index lors de l'utilisation de :: after under element

Donc, l'empilage, le contexte/l'ordre est défini par z-index. Mais quand j'applique z-index: 1; à l'élément et z-index: -1; à son ::before je ne peut réaliser la même chose.

Seulement si je omettre z-index de l'élément.

Toutes les idées de pourquoi il en est? Il est l'élément le rendu après son ::before & ::after pseudos afin qu'ils obtiennent la même z-index?

De travail: https://jsfiddle.net/Ldtfpvxy/
Ne fonctionne pas: https://jsfiddle.net/Ldtfpvxy/1/ (seulement ajouté z-index: 1; à l'élément)

source d'informationauteur Sergio