2017-05-17 7 views
1

CSSのCalcは直線勾配でIE11に

*{ 
 
    margin:0; padding: 0; 
 
} 
 
body { 
 
background-color: orangered; 
 
} 
 
.content { 
 
    margin-top: 200px; 
 
    height: 100vh; 
 
    background-color: #fdfdff; 
 
} 
 
.tilt { 
 
    position: relative; 
 
} 
 
.tilt:before { 
 
    content: ''; 
 
    padding-top: 8.74887%; 
 
    position: absolute; 
 
    left: 0; 
 
    right: 0; 
 
    bottom: 100%; 
 
    background-image: linear-gradient(5deg, #fdfdff calc(50% - 1px), transparent 50%); 
 
}
<div class="content tilt"> 
 

 
</div>

を働いていないことは、IE11がCALC()CSSプロパティをunderstantingいくつかの問題を抱えているようです。

私はこのように直線的勾配でCALCを使用しています:

background-image: linear-gradient(5deg, #fdfdff calc(50% - 1px), transparent 50%); 

しかし、私はこのようにそれを使用する場合:

background-image: linear-gradient(5deg, #fdfdff, transparent 50%); 

それは問題なく動作します。

私が理解できないことがもう1つあります。私はIE11でそのプロパティを調べるとき、それをオフに戻って、それが動作します。

calc(50% - 1px)を使用する全体のポイントは、その角度がより滑らかに見えることです。

提案がありますか?

+0

IEは、 'calc'値の継承でやや微妙です。それは何から50%を継承していますか? [mcve]のようなより完全なデモが役に立ちます。 – TylerH

+0

投稿に例を追加しました。それが役立つことを願っています。 – wired

+0

Caniuse.comによると、IE11は生成されたコンテンツ(:: before/:: after擬似要素を含む)で 'calc'を適切にサポートしていないようです – TylerH

答えて

1

解決策が見つかりました。私のSASSのミックスインで 私が追加しました:私がしたかったよう

@media screen and (-ms-high-contrast: active), screen and (-ms-high-contrast: none) { background: linear-gradient($angle, $color 50%, transparent 50%); } 

は、今では動作します。

関連する問題