У меня несколько странное поведение в Chrome и Safari. У меня есть масштабированный (transform: scale()) контейнер с видео и другими элементами внутри него. При некоторых масштабирования абсолютные позиционированные элементы с высоким z-индексом исчезают и не возвращаются снова.
Как я могу это исправить? Обратите внимание: я не могу дать элементу видео отрицательный z-индекс, и мне нужно использовать overflow: hidden; ,
пример
Я привел пример, который масштабирует внешний контейнер вверх и вниз. В значении масштаба .on-top элемент с классом .on-top (и текст "I should always be on top.") исчезает. При уменьшении масштаба снова появляется неожиданно.
Ссылка на exmaple: https://jsfiddle.net/iafiawik/Lcox1ecc/
Выводы
- Кажется, что размер элемента имеет значение. Чем больше я это делаю, тем больше значение шкалы перед ее исчезновением.
- Я также проверил, чтобы установить
transform: scale(1.4)с CSS непосредственно на элемент, и поведение такое же.
Проблема не существует, если я:
- Замените тег видео на div
- Удалить
position: absolute;от братьев и сестер до.on-top(то есть,.below) - Удалить
overflow: hidden;от.content - Если я перемещаюсь.
.on-topпоэтому он помещается после тега видео в поток документа
(Но, конечно, ни один из этих обходных решений для меня не работает на самом деле из-за особых причин проекта. Я также не могу дать элементу видео отрицательный z-индекс, и мне нужно использовать overflow: hidden;)
Предлагаемые обходные пути сообщества (спасибо!)
- Дайте тегу видео отрицательный индекс z (не могу этого сделать, потому что иногда у меня есть элементы, размещенные за видео)
- Удалить
overflow: hidden;(Я не могу удалитьoverflow: hidden;)
Браузеры
Я видел эту проблему в Chrome (Mac) и Safari (Mac).
Обновление 1
Похоже, что этот отчет об ошибках в значительной степени охватывает мою проблему. Тем не менее, он не обеспечивает исправления.
Обновление 2
Я ответил на свой вопрос, предоставив свое решение этой проблемы.
Обновление 3
Существует много ответов, которые либо изменяют z-index видео, либо добавляют translateZ к .on-top. Демонстрации показали, что оба этих подхода устраняют проблему. Однако, поскольку моя структура HTML - это результат визуального редактора HTML (длинный рассказ...), я не знаю, какие элементы будут там или если они должны быть впереди, ниже или рядом с видео. Поэтому я ищу решение, которое не требует изменений для отдельных элементов, находящихся внутри масштабированного элемента.





