2016-03-12 2 views
2

Основная идея this transition увеличивает размер шрифта, удивительный значок и текст при наведении мыши.Перемещение CSS (псевдоэлемент, размер шрифта, em, IE) не работает

Он отлично работает в Chrome, Opera, Safari и Firefox, но он не работает с IE 11.

пример показывает тот же переход с помощью точек (класс test1) и эм (класс test2); У меня нет проблем с использованием px; проблема специфична для следующего сценария:

Эффект: переход

Тип: псевдо-элемент

недвижимости: размер шрифта

Unit: эм

Браузер: IE 11

.test1 span{ 
 
    font-size: 40px; 
 
    -webkit-transition: all 0.4s ease; 
 
    -moz-transition: all 0.4s ease; 
 
    transition: all 0.4s ease; 
 
} 
 

 
.test1::before{ 
 
    font-family: FontAwesome; 
 
    font-size: 20px; 
 
    content: "\f08e"; 
 
    position: relative; 
 
    -webkit-transition: all 0.4s ease; 
 
    -moz-transition: all 0.4s ease; 
 
    transition: all 0.4s ease; 
 
} 
 

 
.test1:hover span{ 
 
    font-size: 80px; 
 
    -webkit-transition: all 0.4s ease; 
 
    -moz-transition: all 0.4s ease; 
 
    transition: all 0.4s ease; 
 
} 
 

 
.test1:hover::before{ 
 
    font-size: 40px; 
 
    -webkit-transition: all 0.4s ease; 
 
    -moz-transition: all 0.4s ease; 
 
    transition: all 0.4s ease; 
 
} 
 

 
.test2 span{ 
 
    font-size: 1em; 
 
    -webkit-transition: all 0.4s ease; 
 
    -moz-transition: all 0.4s ease; 
 
    transition: all 0.4s ease; 
 
} 
 

 
.test2::before{ 
 
    font-family: FontAwesome; 
 
    font-size: 0.5em; 
 
    content: "\f08e"; 
 
    position: relative; 
 
    -webkit-transition: all 0.4s ease; 
 
    -moz-transition: all 0.4s ease; 
 
    transition: all 0.4s ease; 
 
} 
 

 
.test2:hover span{ 
 
    font-size: 2em; 
 
    -webkit-transition: all 0.4s ease; 
 
    -moz-transition: all 0.4s ease; 
 
    transition: all 0.4s ease; 
 
} 
 

 
.test2:hover::before{ 
 
    font-size: 1em; 
 
    -webkit-transition: all 0.4s ease; 
 
    -moz-transition: all 0.4s ease; 
 
    transition: all 0.4s ease; 
 
}
<html> 
 
    <head> 
 
    <link rel="stylesheet" href="https://fortawesome.github.io/Font-Awesome/assets/font-awesome/css/font-awesome.css"> 
 
    </head> 
 
    <body> 
 
    <table> 
 
     <tr style="font-size: 40px;"> 
 
     <td class="test1"> 
 
      <span>Text 01</span> 
 
     </td> 
 
     </tr> 
 
     <tr style="font-size: 40px;"> 
 
     <td class="test2"> 
 
      <span>Text 01</span> 
 
     </td> 
 
     </tr> 
 
    </table> 
 
    </body> 
 
</html>

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

Наиболее похожей проблемой, которую я смог найти, является this one, в которой упоминается известная проблема в IE, но это кажется другой проблемой.

ответ

0

Так что я просто stumbled across your question in my own search, и я думаю, что я на самом деле есть свой ответ, хотя я не могу найти ничего, что доказывает его: в моем тестировании, IE10 и 11 будет стек Эмс на pseudoelements. Итак, вы получили .test2::before набор для .5em и .test2:hover::before, которые в любом другом браузере (к моему знанию) означало бы, что вы перезапись «.5em относительно родителя (то есть, .test2)» с «1em по отношению к родителю», но в IE это означает «1em относительно .5em относительно родительского», где 1em относительно .5em просто .5em (1 * .5 = .5).

В моем случае, я имел .6em базовое состояние, 1.5em зависать, и может заставить его вести себя, как в других местах путем изменения состояния парения в 2.5em, который 1.5em/.6. Конечно, это не было решением, потому что тогда везде, 2.5em было слишком большим. Я закончил использование rem s, которые не складываются и подходят для моей цели (IE10 +). Я не уверен, как получить em s для работы без укладки в IE10 + псевдоэлементы.

Смежные вопросы