2

ナビゲーションバーに矢印の端を作成したプロジェクトに取り組んでいます。問題は、変換が IE8 以下で機能しないことです。そのため、IE 用のフィルター css を実装して動作させたいと思っていましたが、適切に機能させることができません。オブジェクトは、マトリックスが指示しているように 45 回転しません。コードの回転を妨げているものが他にあるかどうかはわかりません。この問題の解決方法に関するフィードバックをお待ちしております。

.navbar .nav > li > a:before {
    background: #3b679e; 
    background: linear-gradient(left top, #3b679e 0%,#2b88d9 50%,#207cca 51%,#7db9e8 100%); 
        background: -moz-linear-gradient(left top, #3b679e 0%, #2b88d9 50%, #207cca 51%, #7db9e8 100%); 
        background: -webkit-gradient(linear, left top, right bottom, color-stop(0%,#3b679e), color-stop(50%,#2b88d9), color-stop(51%,#207cca), color-stop(100%,#7db9e8)); 
        background: -webkit-linear-gradient(left top, #3b679e 0%,#2b88d9 50%,#207cca 51%,#7db9e8 100%); 
        background: -o-linear-gradient(left top, #3b679e 0%,#2b88d9 50%,#207cca 51%,#7db9e8 100%); 
        background: -ms-linear-gradient(left top, #3b679e 0%,#2b88d9 50%,#207cca 51%,#7db9e8 100%);  
    border-top:1px solid white;
    border-right:1px solid white;
    border-radius:0 8px 0 0;
    content: ' ';
    filter:progid:DXImageTransform.Microsoft.Matrix(M11=0.7071067811865474, M12=-0.7071067811865477, M21=0.7071067811865477, M22=0.7071067811865474, SizingMethod='auto expand');
    height: 27px;
    margin-left:-34px;
    position: absolute;
    top:0;
    -webkit-transform: rotate(45deg);
    -webkit-transform-origin: 0 0;
    -moz-transform: rotate(45deg);
    -moz-transform-origin: 0 0;
    -o-transform: rotate(45deg);
    -o-transform-origin: 0 0;
    -ms-transform: rotate(45deg);
    -ms-transform-origin: 0 0;
    -sand-transform:rotate(45deg);
    transform: rotate(45deg);
    transform-origin: 0 0;
    width: 28px;
}

transformie と cssSandpaper のポリフィルを使用しようとしましたが、これも修正できません。回転は .navbar .nav > li > a:before ルールに適用されます。

http://jsfiddle.net/rsxavior/sTP5F/2/

4

1 に答える 1

2

これが機能しない理由がわかりました。誰かが同じ問題に遭遇した場合に備えて、将来の参考のために投稿しています。IE8 は、行列を :before や :after などの疑似クラスに適用しません。a 要素内に空の span タグを追加し、これが意図したとおりに機能するようにマージンを変更する必要がありました。

于 2013-01-29T13:32:06.787 に答える