2016-03-12 139 views
2

this transition的基本思想是當鼠標懸停時增加字體真棒圖標和文本的大小。CSS轉換(僞元素,字體大小,EM,IE)不起作用

它工作正常鉻,歌劇,Safari和Firefox,但它不與IE 11

的例子工作表明使用PX(類TEST1)和EM(類測試2)相同的過渡;我用px沒有問題;問題是特定於以下情形:

效果:過渡

類型:僞元素

物業:字體大小

單位:EM

瀏覽器: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將 EMS上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工作,而不會在IE10 +僞元素中堆疊。