У меня есть плавающая программа просмотра изображений.В настольных браузерах и Android-браузерах это работает, как и ожидалось, наложение охватывает весь экран и находится поверх обычного содержимого, в то время как изображение и кнопка закрытия отображаются поверх этого, но в браузерах iOS (Safari и Chrome)контент появляется за другим контентом, он не относится к z-index.
Я перепробовал все, что мог придумать, но надежды нет.Можете ли вы объяснить, почему это происходит только на iOS, и как я могу решить эту проблему?
Вот мой код:
/* Sass: */
/*
.photo-preview {
top: 0;
left: 0;
z-index: 11;
height: 100vh;
position: fixed;
.btn-close-photo-preview {
right: 0;
top: 0;
position: absolute;
pointer-events: auto;
.inner-btn-close-photo-preview {
margin: 2.5vw;
position: relative;
z-index: 2;
font-size: 6vw;
color: #fff;
background: rgba(0, 0, 0, 0.4);
-webkit-border-radius: 50%;
-moz-border-radius: 50%;
border-radius: 50%;
-khtml-border-radius: 50%;
height: 8vw;
width: 8vw;
text-align: center;
}
}
img {
height: auto;
width: 100vw;
position: relative;
top: 50%;
transform: translateY(-50%);
}
}
.overlay {
display: none;
position: fixed;
top: 0;
left: 0;
width: 100vw;
height: 100vh;
z-index: 10;
pointer-events: none;
background-color: #000;
}
*/
/* Compiled CSS: */
.photo-preview {
top: 0;
left: 0;
z-index: 11;
height: 100vh;
position: fixed;
}
.photo-preview .btn-close-photo-preview {
right: 0;
top: 0;
position: absolute;
pointer-events: auto;
}
.photo-preview .btn-close-photo-preview .inner-btn-close-photo-preview {
margin: 2.5vw;
position: relative;
z-index: 2;
font-size: 6vw;
color: #fff;
background: rgba(0, 0, 0, 0.4);
-webkit-border-radius: 50%;
-moz-border-radius: 50%;
border-radius: 50%;
-khtml-border-radius: 50%;
height: 8vw;
width: 8vw;
text-align: center;
}
.photo-preview img {
height: auto;
width: 100vw;
position: relative;
top: 50%;
transform: translateY(-50%);
}
.overlay {
display: none;
position: fixed;
top: 0;
left: 0;
width: 100vw;
height: 100vh;
z-index: 10;
pointer-events: none;
background-color: #000;
}
<main>
<div class="photo-preview">
<div class="btn-close-photo-preview">
<div class="inner-btn-close-photo-preview">
<i class="fal fa-times photo-preview-svg"></i>
</div>
</div>
<img src="https://i.imgur.com/ruluJhL.jpg">
</div>
</main>
<div class="overlay" id="overlay"></div>
Что я ожидаю увидеть:
Что я вижу:
iOS (Safari):
Изображение и кнопка находятся за наложением
iOS (Chrome):
Изображениеи кнопка находятся за оверлеем
Рабочий стол (Chrome):
Работает, как и ожидалось
Android(Chrome):
Нет скриншота, но работает как положено (без проблем)