Почему не работает z-index для ::after?

Ссылка скопирована
1 ответ

Вроде раньше всегда работал z-index для псевдоэлементов? Или я что-то сделал не так? По сути: нужно ::after засунуть под блок .text

Почему не работает z-index для ::after?

Вот CodePen

Дополнительно:

z-index у родителя уберите

  • Одиночка Айс, благодарю! Помогло! Только логика немного в голове не укладывается. Получается, что after просто наследует z-index элемента? Вынесите, пожалуйста в ответ, помечу отвеченным.
  • Быдло-вариант: убрать у родителя z-index
    Вариант с теорией для полноценного понимания: https://ru.stackoverflow.com/questions/1014208/%D0...

    • Да, тоже нашел этот вариант на stackoverflow. Разобрался, спасибо!
    Нужно решить такую задачу?

    Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

    Заказать помощь
    Лучший ответ
    1
    Мария Код Ответ

    Проблема с z-index для ::after может возникать из-за того, что псевдоэлемент ::after находится внутри родительского элемента и может быть перекрыт другими элементами на странице.

    Для того чтобы правильно задать z-index для псевдоэлемента ::after, необходимо учитывать следующие моменты:

    1. Псевдоэлементы наследуют z-index своего родительского элемента, поэтому если у родительского элемента установлен z-index, то это может повлиять на псевдоэлемент.

    2. Если у псевдоэлемента ::after не установлено свойство position (например, position: relative), то z-index не будет работать. Поэтому убедитесь, что у псевдоэлемента установлено свойство position.

    Пример кода для установки z-index для псевдоэлемента ::after:

    .parent {
      position: relative;
      z-index: 1;
    }
     
    .parent::after {
      content: "";
      position: absolute;
      top: 0;
      left: 0;
      width: 100%;
      height: 100%;
      background-color: rgba(0, 0, 0, 0.5);
      z-index: -1; /* Устанавливаем z-index для псевдоэлемента */
    }

    .parent { position: relative; z-index: 1; } .parent::after { content: ""; position: absolute; top: 0; left: 0; width: 100%; height: 100%; background-color: rgba(0, 0, 0, 0.5); z-index: -1; /* Устанавливаем z-index для псевдоэлемента */ }

    В данном примере у родительского элемента установлено свойство position: relative и z-index: 1, а у псевдоэлемента ::after установлено свойство position: absolute и z-index: -1. Таким образом, псевдоэлемент будет находиться ниже контента родительского элемента.

    Если после применения указанных выше рекомендаций z-index для псевдоэлемента ::after все еще не работает, то возможно проблема заключается в других стилях на странице, которые могут перекрывать этот элемент. В этом случае необходимо провести более детальный анализ стилей и возможно внести изменения для исправления проблемы.

    Другие ответы (0)

    Пока нет других ответов. Будьте первым, кто поможет автору.

    Ответить на вопрос

    комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *

    Вам также может быть интересно