Установите z-index
псевдоэлемента :before
или :after
на -1 и присвойте ему position
, который учитывает свойство z-index
(absolute
, relative
или fixed
),Это работает, потому что z-index
псевдоэлемента относительно его родительского элемента, а не <html>
, который является значением по умолчанию для других элементов.Это имеет смысл, потому что они являются дочерними элементами <html>
.
Проблема, с которой я столкнулся (которая привела меня к этому вопросу и к принятому ответу выше), заключалась в том, что я пытался использовать псевдоэлемент :after
чтобы получить фон с элементом z-index
, равным 15, и даже при значении z-index
, равном 14, он по-прежнему отображается поверх родительского элемента.Это связано с тем, что в этом контексте стекирования его родитель имеет z-index
, равный 0.
Надеюсь, это поможет немного прояснить, что происходит.