Почему анимация css меняет z-index?

Почему анимация меняет z-index?

Если вы посмотрите на jsfiddle, вы увидите, что красное изображение находится сверху, но если вы закомментируете анимацию, синее изображение будет сверху. Как сделать так, чтобы синее изображение всегда было сверху даже с анимацией?

jsfiddle

HTML

<img class = "blue" src = "http://via.placeholder.com/200/0037ff">
<img class = "red" src = "http://via.placeholder.com/200/ff0010">

CSS

.red {
  -webkit-animation-name: red;
  -webkit-animation-duration: 2s;
  -webkit-animation-iteration-count: infinite;
  animation-name: red;
  animation-duration: 2s;
  animation-iteration-count: infinite;
}

.blue {
  transform: translate(30%);
}

@keyframes red {
  from {
    transform: translate(50%);
  }
  to {
    transform: translate(0);
  }
}

Любая помощь высоко ценится!

Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Введение в CSS
Введение в CSS
CSS является неотъемлемой частью трех основных составляющих front-end веб-разработки.
Как выровнять Div по центру?
Как выровнять Div по центру?
Чтобы выровнять элемент <div>по горизонтали и вертикали с помощью CSS, можно использовать комбинацию свойств и значений CSS. Вот несколько методов,...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
CSS: FlexBox
CSS: FlexBox
Ранее разработчики использовали макеты с помощью Position и Float. После появления flexbox сценарий полностью изменился.
1
0
4 647
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

CSS-анимации сбросить z-index.

Итак, что вам, вероятно, нужно сделать, это присвоить красному изображению z-index 0, а синему изображению - z-index 1.

Добавление z-индекса ничего не дало.

Jeff 16.06.2018 00:53

Вы также установили z-index для @keyframes, как от, так и до? Кажется, это работает: jsfiddle.net/0wquLz46/23

Tanckom 16.06.2018 00:55
Ответ принят как подходящий

Элементы в HTML располагаются на оси Z в соответствии с их контекст наложения.

По умолчанию страница имеет 1 контекст наложения - элемент HTML - и все дочерние элементы контекста наложения располагаются в соответствии с их порядком DOM.

Однако новый контекст наложения может быть создан для элемента при применении определенных свойств CSS. Такие свойства, как position: absolute или position: relative, обычно используются для создания новых контекстов наложения, поэтому вы можете позиционировать их на оси Z с помощью z-index. Когда создается новый контекст наложения, он по умолчанию располагается над родительским контекстом наложения.

transform - это еще одно свойство CSS, которое будет создавать новый контекст наложения (поскольку вы можете преобразовывать элемент по оси Z). Поскольку элемент .blue имеет transform, а элемент .red не имеет, когда вы комментируете анимацию, он получает новый контекст наложения, который по умолчанию находится над родительским контекстом наложения (который включает элемент .red).

Итак, чтобы коробка .blue всегда оставалась на высоте, вам нужно добавить к ней position: relative и z-index: 1.

.blue {
  position: relative;
  z-index: 1;
  transform: translate(30%);
}

Почему бы вам не указать значение z-index на .blu?

попробуй это:

.blue{
z-index: 999;
transform: translate(30%);
}

Добавление z-индекса не помогает

Jeff 16.06.2018 00:52

Я вижу, это работает только в Firefox, извини, чувак.

Jaziel_Inc 16.06.2018 00:57

ОБНОВЛЕНИЕ: добавить позицию: relative в .blue и попробовать

Jaziel_Inc 16.06.2018 01:03

Другие вопросы по теме