Подтвердить что ты не робот

IE пересекает псевдоэлемент CSS?

Я пытаюсь получить несколько псевдо-элементов для работы с IE, но это просто не позволяет мне.

Он пересекает CSS и действует так, как будто он не существует, что меня ободряет.

Кто-нибудь знает, что я делаю неправильно? HTML:

 <div class="starttour">
        <div class="newbutton headerbutton">
            <span class="iconhead icon-02-arrow-icon"></span>
        </div>
        <p>START TOUR</p>
    </div>

CSS

.newbutton {
  border-radius: 50%;
  width: 74px;
  height: 74px;
  position: relative;
  background-color: black;
  margin: 60px 0px 25px 17px;
  overflow: visible;
}

.newbutton:before {
  content:"f";
  width:80px;
  height:80px;
  position: absolute;
  border-radius:50%;
  z-index:-1;
  top:37px;
  left:37px;
  -webkit-transform:translate(-50%,-50%);
  transform:translate(-50%,-50%);
  -webkit-animation-name: fadecolor;
  -webkit-animation-duration: 5s;
  -webkit-animation-iteration-count: infinite;
  animation-name: fadecolor;
  animation-duration: 5s;
  animation-iteration-count: infinite;
}

.newbutton:after { 
    content:"";
    width: 80px;
    height: 80px;
    position: absolute;
    border-radius: 50%;
    z-index: -2;
    top: -3px;
    left: -3px;
    background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#01BAE8), to(#0183D5));
}

Снимок экрана о том, что происходит:

4b9b3361

Ответ 1

Это известная проблема, но стили на самом деле применяются. Инструменты разработчика думают, что стили псевдоэлементов переопределяются соответствующими стилями родительских элементов. Это легко продемонстрировать, просмотрев стиль Вычисленный родительского элемента и посмотрев (что, по мнению F12), на конкурирующие стили:

enter image description here

Опять же, эти стили на самом деле применяются к правильным элементам - независимо от того, что верят или предлагают инструменты разработчика. Вы можете подтвердить это, выполнив над родительским элементом и двумя псевдоэлементами и зарегистрировав их вычисленную высоту:

(function () {

    var el = document.querySelector( ".newbutton" );

    [ "", "::before", "::after" ].forEach(function ( e ) {
        // Output: 74px, 80px, 80px
        console.log( window.getComputedStyle( el, e ).height );
    });

}());

Я проверю, есть ли у нас внутренняя проблема, отслеживающая эту ошибку, и добавьте к ней этот вопрос. Вообще говоря, мы стараемся дать такие вопросы, как объем внимания, пропорциональный количеству горя, вызываемого проблемой в реальном мире. Так что ваш вопрос как новое дополнение в билете может помочь нам переместить исправление вперед:)

Ответ 2

У меня была такая же проблема! Вы должны указать свои псевдонимы :before и :after a display.

Добавьте в :before и :after следующее.

display: block; 

Это должно исправить вашу проблему.:)