2015-01-10 19 views
38

私はIE上で動作するいくつかの擬似要素を取得しようとしてきましたが、それだけで私をさせません。IEは擬似要素CSSを超えていますか?

これは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)); 
 
}
<div class="starttour"> 
 
    <div class="newbutton headerbutton"> 
 
    <span class="iconhead icon-02-arrow-icon"></span> 
 
    </div> 
 
    <p>START TOUR</p> 
 
</div>

何が起こるかのスクリーンショット:

+6

うまくいけば、 '-webkit-'ビットを使い切ることはありません。 – BoltClock

+4

Pfff、それについて教えてください。それは私の目的を私を動かしている、私は賭けた。愚かなIE。 – Kairowa

+1

とにかく、どのバージョンのIEをテストしていますか?また、ドキュメントモード/ブラウザモードについては何を教えてくれますか?私はIEがこのような行動を取る理由を本当に理解したことはありませんが、うまくいけばこれらのことがいくつかの手がかりを提供します。 – BoltClock

答えて

30

これは既知の問題ですが、スタイルは、実際に適用されています。開発者ツールは、擬似要素のスタイルが親要素に対応するスタイルによって上書きされていると考えます。これは簡単に競合するスタイル親要素のコンピュースタイルを検査し、(F12ツールがあることを信じるもの)を調べることで証明される:再びenter image description here

を、しかし、これらのスタイルはされて、実際にされています開発者ツールが何を信じているか、提案しているかに関係なく、正しい要素に適用されます。親要素と2擬似要素上で実行し、その計算された高さログインしYou can confirm this

(function() { 

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

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

}()); 

を、私たちはすでにこのバグを追跡する内部の問題を持っているかどうかを確認し、それにこの質問を追加します。一般的に言って、このような問題には、問題が現実世界で引き起こしている悲しみの量に比例した注意力を与えるようにしています。だからチケットに新しい追加としてあなたの質問を持っている私たちは修正を前進させるのに役立つかもしれません:)

+7

IE11でも同じ問題が発生していますが、擬似要素スタイルは適用されていません。 Computedパネルで想定されているパレンタルオーバーライドをオフにしても、擬似要素スタイルは適用されません。レンダリングされるブロック全体の唯一の部分はコンテンツルールであり、他はすべて無視されます。 – gps03

+0

Computingに入るプロパティをクリックして、それがオーバーライドされていることがわかりました。私はthの背景を覆し、キャレットアイコンは並べ替えのために表示されませんでした(Datatables)。ありがとう! – Exzile

+0

私のコードにある ':: after'疑似スタイルは、IE11とEdgeではすべて外に出ました。実際にすべてのルールが適用されます:-) 1つを除いて全て: 'cursor:pointer'。モバイルハンバーガーメニューのため、私はポインタを移動させることができます(私はその画面サイズで多くのホバリングを期待していないので)。 –

14

私はまったく同じ問題を抱えていました! :before:after疑似要素にはdisplayプロパティを指定する必要があります。

:before:afterに以下を追加してください。

display: block; 

これで問題が解決するはずです。 :)

+1

私のために働いていません:( – Hazlo8

+0

あなたが現在設定しているプロパティを共有してください。コンテンツプロパティが設定されていないか、擬似を許可しない要素に擬似要素を設定しようとしています。 – Freddie

+0

これが修正されました。私のためのものです!プロパティはまだDev Toolsでクロスされていますが、要素は正しく表示されます。 –