При создании иконки загрузчика я заметил странное поведение в IE11 по сравнению с Chrome, используя эту анимацию:
@keyframes loader-2 {
0% {
transform: translateX(0);
}
50% {
transform: translateX(-1.6rem);
}
100% {
transform: translateX(0);
}
}
Элемент сначала корректно переводится в сторону, но затем смещается очень далеко, прежде чем переводить обратно,Это работает только в IE11 (отлично работает в Chrome / Firefox) и только для псевдоэлемента (::after
).
См. эту скрипку (или ниже фрагмента кода)для примера.Верхняя точка - span
, которая работает нормально, нижняя точка - элемент ::after
, который ведет себя странно.
html {
font-size: 62.5%;
}
.splash {
align-items: center;
display: flex;
height: 100vh;
justify-content: center;
width: 100vw;
}
@keyframes loader-2 {
0% {
transform: translateX(0);
}
50% {
transform: translateX(-1.6rem);
}
100% {
transform: translateX(0);
}
}
.loader {
display: inline-block;
height: 3.2rem;
padding: 4rem 0;
position: relative;
width: 3.2rem;
border: 1px solid red;
}
.loader span {
animation: loader-2 1.5s ease infinite;
background: #024;
border-radius: 50%;
bottom: 0;
display: block;
height: 1.6rem;
left: 0;
margin: auto;
position: absolute;
right: 0;
top: 0;
width: 1.6rem;
}
.loader div::after {
animation: loader-2 1.5s ease infinite;
background: #024;
border-radius: 50%;
bottom: 0;
content: '';
display: block;
height: 1.6rem;
left: 0;
margin: auto;
position: absolute;
right: 0;
top: 3.2rem;
width: 1.6rem;
}
<div class="splash">
<div class="loader">
<span></span>
<div></div>
</div>
</div>
Конечно, я могу обойти это, не используя псевдоэлементы, но я все же хотел бы знать, что вызывает эту проблему.