IE9ボーダー半径と背景グラデーションのにじみ


191

IE9は、CSS3標準定義のを使用して、角の丸い部分を処理できるようですborder-radius

境界線の半径背景のグラデーションのサポートについてはどうですか?はい、IE9は両方を個別にサポートしますが、2つを混合すると、グラデーションが丸みを帯びたコーナーから流出します。

角が丸いボックスの下に黒い実線として影が表示される奇妙さも見ています。

IE9に表示される画像は次のとおりです。

にじみがなく、角が鋭い画像 にじみのある画像

この問題を回避するにはどうすればよいですか?


ヒント@MikePおよび@meanstreakukをありがとう。私が探している答えは、IEがグラデーション/丸めを実際にいつサポートするか、または2つを連携させる方法に沿っていると思います。
SigmaBetaTooth、2011

2を連携させる方法については、@ meanstreakからの回答があります。現実的なものにしたい場合、背景画像としてのSVGグラデーションは、CSSグラデーションよりもはるかに早くすべてのブラウザーで完全にサポートされる可能性が高くなります(まだ開発/議論が進んでいます)。
Kevin Peno 2011年

29
信じられないほどのMSはこれまでのところ遅れています。それは2011年であり、IEはまだこの種の問題を扱っています。zzzzzzz。..彼らのサイト上で彼らは言う:「速くは今美しい」。もちろんそうだ。上記の写真をご覧ください。なんと長方形の美しさ!
SunnyRed

SunnyRedは、まあ、角の丸いものが何かに含まれているChrome要素では、角からにじみます。本当に、それは2012年であり、ブラウザーはまだこの種の問題に対処しています:-)
Joey

2
@SunnyRed It 2013現在、バグはまだあります:(
Sliq

回答:


49

以下は、データURIを使用して背景のグラデーションを追加する1つのソリューションで、背景色をオーバーレイする半透明の画像を作成します。IE9で境界の半径に正しくクリップされていることを確認しました。これはSVGベースの提案よりも軽量ですが、欠点として、解像度に依存しません。別の利点:現在のHTML / CSSで動作し、追加の要素でラップする必要がありません。

私はウェブ検索でランダムな20x20グラデーションPNGを取得し、オンラインツールを使用してデータURIに変換しました。結果のデータURIは、すべてのSVG混乱のCSSコードよりも小さく、SVG自体ははるかに小さくなります。(これを条件付きスタイル、ブラウザー固有のCSSクラスなどを使用してのみIE9に条件付きで適用できます。)もちろん、PNGの生成はボタンサイズのグラデーションには適していますが、ページサイズのグラデーションには適していません。

HTML:

<span class="button">This is a button</span>

CSS:

span.button { 
  padding: 5px 10px;
  border-radius: 10px;
  background-color: orange;  
  background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAvUlEQVQ4y63VMQrDMAyF4d/BGJ+rhA4dOnTo0Kn3P4ExxnSoXVQhpx0kEMmSjyfiKAF4AhVoqrvqjXdtoqPoBMQAPAZwhMpaYkAKwH1gFtgG0v9IlyZ4E2BVabtKeZhuglegKKyqsWXFVboJXgZQfqSUCZOFATkAZwEVY/ymQAtKQJ4Jd4VZqARnuqyxmXAfiAQtFJEuG9dPwtMC0zD6YXH/ldAddB/Z/aW4Hxv3g+3+6bkvB/f15b5gXX8BL0z+tEEtuNA8AAAAAElFTkSuQmCC);
  background-size: 100% 100%;

  border: 2px solid white;
  color: white;
}

1
そして勝者は...私はこれを選ぶ必要があるかどうか私はこれだと思います。IEがサポートしていると実際にIEがサポートする時期についての詳細を確認したいと思っていました。背景画像の解決策については、IEを動作させるために画像を取得しないのが好きです。役立つアドバイスをありがとうございました。
SigmaBetaTooth 2011年

1
私は設定background-size: 100% 103%; background-position:center;が良いことを発見しました。両方の値を100%にすると、上部と下部に奇妙な境界線が追加されます。
Morten Christiansen

背景サイズの追加:100%103%; background-position:center; 私には何もしません。
Gregory Bolkenstijn、2009

2
画像だけでなくデータURIを使用する理由がよくわかりませんか?画像はie9ユーザーのためのサーバーへの追加の呼び出しを意味すると思いますが、ie9以外のブラウザーにこれらの余分な文字をすべて送信させるのは無駄に思えます。解決策は画像として私のために働いています、説明が大好きです。
デコイ

4
彼の手動のデータURIは、一部のCSSプリプロセッサーがデプロイ時に通常実行するものです。「しかし、それはどんな醜いハックなのか」の時点では、それは根本的なでたらめです。SVGは他のものと同様に画像ですが、ベクター画像です。したがって、SVGをハックと呼び、代わりにPNGを提案することはまったく意味がありません。なぜSVGが優れているのですか?解像度の独立性、ラスタライズされた画像の背景の代わりにborder-radiusを使用するのと同じ理由。
skrat

104

私もこの問題に取り組んできました。もう1つの「解決策」は、グラデーションと角の丸いアイテムの周囲にdivを追加することです。そのdivを同じ高さ、幅、丸い角の値にします。オーバーフローを非表示に設定します。これは基本的に単なるマスクですが、私にとってはうまくいきます。

HTML:

<div class="mask roundedCorners">
    <div class="roundedCorners gradient">
        Content
    </div>
</div>

CSS:

.mask
{
    overflow: hidden;
}

.roundedCorners
{
    border-radius: 5px;
    -moz-border-radius: 5px;
    -webkit-border-radius: 5px;
}

.gradient
{
    filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#0065a4', endColorstr='#a0cf67',GradientType=0 ); /* IE6-9 */
}

3
これは私にとって完璧に機能し、他の提案されたソリューションよりもはるかに簡単です。
Simon P Stevens

現在受け入れられている答えよりもはるかに簡単です。これはIE9で機能します。
Andy McCluggage 2012年

これはうまくいきます...とても悲しくて哀れです。これは「HTML5」ブラウザです!?IE10に興奮しないのはなぜですか。
Todd Vance

@toddv心配しないでください。それはすべてすぐに終わります。十分ではありませんが、すぐに。daringfireball.net/linked/2012/07/04/windows-hegemonyを参照してください。 運が良ければ、IE12のサポートについて心配する必要はありません...多分IE14-あいまいになります。
jinglesthula

2
ちょっとしたメモですが、前方互換性を促進するために、ボーダー半径ステートメントを逆にする必要があります。編集を行いました。
Parris 2012年

44

多くの場合、インセットボックスシャドウを使用してグラデーション効果を "偽造"し、IE9の醜いエッジを回避できることに言及する価値があると思います。これは特にボタンでうまく機能します。

この例を参照してください:http : //jsfiddle.net/jancbeck/CJPPW/31/

ボタンスタイルと線形グラデーションまたはボックスシャドウの比較


2
私はこれをボタンだけで使用し、あなたが描いたようにグラデーションが必要だったので、私の場合は素晴らしい修正です。私は今までgte IE9の条件付きコメントを使用し、その後適用しましたbox-shadow: inset 0 -8px 10px rgba(0,0,0,0.15), 0 1px 0 rgba(255,255,255, 0.3), inset 0 1px 0 rgba(255,255,255, 0.3);
Volomike、2012年

エレガントでシンプル。i ++。
Eliran Malka

1
枠を超えて考えるための+1。タブとボタンの両方に非常によく機能します。インセットを使用すると、要素内にグラデーションが保持されます。
GlennG

これは私が見た中で最高のソリューションです。純粋なCSS。追加の要素や画像は必要ありません。
Zaqx 2013年

1
素敵なトリックですが、サイト全体にグラデーションがあります。私はそれらすべてを愚かなものに変えることはできません。
Mehmet FatihYıldız

8

CSS3 PIEを使用してこの問題を解決することもできます。

http://css3pie.com/

もちろん、丸みを帯びた角と背景のグラデーションを持つ単一の要素に依存している場合は、やりすぎかもしれませんが、ページに多くの一般的なCSS3機能を組み込んでいて、簡単なサポートが必要かどうかを検討するオプションですIE6 +


1
css3pieとie9を使用しても、グラデーションが表示されません。丸みを帯びたコーナーとドロップシャドウが表示されますが、グラデーションは表示されません。
ケビン

7

私もこのバグに遭遇しました。私の提案は、ie9のグラデーションに繰り返される背景画像を使用することです。IE9は、丸みを帯びた境界線の後ろに画像を正しくタイル表示します(RC1以降)。

CSSの1行を置き換えるために100行のコードを記述するのが単純またはエレガントであることを確認できません。SVGはすべてクールですが、グラデーション背景のより簡単なソリューションが何年も前から存在しているのに、なぜそうなるのでしょうか。


5

私も同じ問題で立ち往生しましたn IEが境界の半径とグラデーションを同時にレンダリングできないこと、両方が競合すること、この問題を解決する唯一の方法はフィルターを削除してsvgコードでグラデーションを使用することです、 IEのみ..

マイクロソフトのこのサイトからグラデーションカラーコードを使用してsvgコードを取得できます(特にsvgへのグラデーション用に作成)。

http://ie.microsoft.com/testdrive/graphics/svggradientbackgroundmaker/default.html

楽しい :)


リンクは無効です。
クラッシュ

5

ラッパーdiv(丸め&オーバーフローは非表示)を使用して、IE9の半径をクリップします。シンプルで、クロスブラウザで動作します。SVG、JS、および条件付きコメントは不要です。

<div class="ie9roundedgradient"><div class="roundedgradient">text or whatever</div></div>

.ie9roundedgradient { 
display:inline-block; overflow:hidden; -webkit-border-radius: 8px; -moz-border-radius: 8px; border-radius: 8px; 
}
.roundedgradient { 
-webkit-border-radius: 8px; -moz-border-radius: 8px; border-radius: 8px; 
/* use colorzilla to generate your cross-browser gradients */ 
}

4

このブログ投稿は私を助けました:http : //abouthalf.com/2010/10/25/internet-explorer-9-gradients-with-rounded-corners/

基本的には、条件付きコメントを使用してフィルターを削除してから、背景画像として使用できるグラデーションのSVG「スプライト」を作成します。

シンプルでエレガント!


私はこれを住んでいます。SVGを使用してスプライトを作成する方法についての私の検索を最後に終了するのを支援してくれた、特に大きな問題です。SVGはスケーラブルであり、スプライトが可能であるため、SVGスプライトパックはcssグラデーションよりもはるかに多様性があり、前述のように、CSSグラデーションよりずっと前にブラウザーで100%のサポートが見られるでしょう。
Kevin Peno

ああ、私がこれに追加する唯一のことは、現在ウェブキットであり、そして、オペラはCSS画像url()呼び出しでSVGもサポートしているということです。残りは1つだけなので、1000個の条件文をドロップし、それをサポートするすべてのbgに対してSVGを提供します。他のすべての人のために、ラスターイメージを提供します。その後、このハックは管理可能になります。
Kevin Peno

4

IE9は、border-radiusとgradientsを一緒に適切に処理します。問題は、IE9 がグラデーションに加えてフィルターを適切レンダリングすることです。これを適切に解決する方法は、filterプロパティを利用するスタイル宣言でフィルターを無効にすることです。

これを最もよく解決する方法の例として:

メインスタイルシートにボタンクラスがあります。

.btn {
    background: linear-gradient(to bottom,  #1e5799 0%,#7db9e8 100%);
    filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#1e5799', endColorstr='#7db9e8',GradientType=0 );
}

条件付きIE9スタイルシートでは:

.btn { filter: none; }

メインのスタイルシートの後に IE9スタイルシートが頭で参照されている限り、これは完全に機能します。


2
ie9は線形グラデーションをレンダリングしません
James Westgate

3

IE9で要素を1つだけ使用して簡単に動作させる方法があります。

このフィドルを見てください:http : //jsfiddle.net/bhaBJ/6/

最初の要素は境界半径を設定します。2番目の疑似要素は、背景のグラデーションを設定します。

いくつかの重要な指示:

  • 親は相対位置または絶対位置を持っている必要があります
  • 親にはオーバーフローが必要です:非表示 ; (境界半径効果が見えるようにするため)
  • :: before(または:: after)疑似要素にはz-indexが必要です:-1(回避策の一種)

基本要素の宣言は次のようになります。

.button{
    position: relative;
    overflow: hidden;        /*make childs not to overflow the parent*/

    border-radius: 5px;      /*don't forget to make it cross-browser*/

    z-index:2;               /*just to be sure*/
}

疑似要素宣言:

.button:before{

    content: " ";                     /*make it a node*/
    display: block;     

    position: absolute;               
    top:0;left:0;bottom:0;right:0;    /*same width and height as parent*/

    z-index: -1;                      /*force it to NOT overlay the TEXT node*/

    /*GRADIENT declarations...*/
    background: -ms-linear-gradient(top,  #ff3232 0%,#7db9e8 100%);
    filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#ff3232',endColorstr='#7db9e8',GradientType=0 );

}

完璧!ありがとう!:)
majimekun 2014年

私はあなたの例でborder-radiusを20に設定しました、そしてIE9でボーダーがクリップされていません
クラッシュ

これをヘッダーに設定してみてください:<meta http-equiv = "X-UA-Compatible" content = "IE = 9" />
Marakoss

2

このバグを回避するために、IE9が角を丸めることを無効にすることにしました。クリーンで簡単、汎用的に使用できます。

{
border-radius:10px;
border-radius:0px \0/;
background:linear-gradient(top , #ffeecc, #ff8800);
/* ... (-moz -ms,-o, -webkit) gradients */    
filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0,startColorstr=#ffeecc,endColorstr=#ff8800);
}

1

IE9のマスクdivは良い考えです。少しわかりやすくするために、完全なコードをいくつか提供しています。ボタンをDIVでラップすることには満足していませんが、PNGマスクを埋め込むか、SVGを使用してすべての作業を行うよりも理解しやすいと思います。多分IE 10はそれを正しくサポートするでしょう。

<!DOCTYPE html>
<html>
<head>
<title>Button Test</title>
<style>
.btn_mask { cursor:pointer;padding:5px 10px;border-radius:11px 11px 11px 11px;
 background-color:transparent;-moz-border-radius:11px 11px 11px 11px;
 -webkit-border-radius:11px 11px 11px 11px;overflow:hidden;padding:0px;
 float:left; }
.btn { cursor:pointer;text-decoration:none;border:1px solid rgb(153,153,153);
 padding:5px 10px;color:rgb(0,0,0);font-size:14px;font-family:arial,serif;
 text-shadow:0px 0px 5px rgb(255,255,255);font-size:14px;
 border-radius:11px 11px 11px 11px;-moz-border-radius:11px 11px 11px 11px;
 -webkit-border-radius:11px 11px 11px 11px;box-shadow:0px 0px 0px rgb(0,0,0);
 -moz-box-shadow:0px 0px 0px rgb(0,0,0);
 -webkit-box-shadow:0px 0px 0px rgb(0,0,0);background-color:rgb(255,204,0);
 background-image:linear-gradient(-90deg,rgb(255,255,153),rgb(255,204,0));
 background-image:-webkit-gradient(linear,50% 0%,50% 100%,from(rgb(255,255,153)),to(rgb(255,204,0)));-ms-filter:"progid:DXImageTransform.Microsoft.gradient(startColorStr='#ffffff', EndColorStr='#ffcc00)')";background-image:-moz-linear-gradient(-90deg,rgb(255,255,153),rgb(255,204,0));
}
.btn:hover { cursor:pointer;text-decoration:none; border:1px solid rgb(153,153,153); padding:5px 10px 5px 10px; color:rgb(0,0,0); font-size:14px; font-family:arial,serif; text-shadow:0px 0px 5px rgb(255,255,255); font-size:14px; border-radius:11px 11px 11px 11px; -moz-border-radius:11px 11px 11px 11px; -webkit-border-radius:11px 11px 11px 11px; box-shadow:0px 0px 0px rgb(0,0,0); -moz-box-shadow:0px 0px 0px rgb(0,0,0); -webkit-box-shadow:0px 0px 0px rgb(0,0,0); background-color:rgb(255,255,0); background-image:linear-gradient(-90deg,rgb(255,255,0),rgb(255,255,153)); background-image:-webkit-gradient(linear,50% 0%,50% 100%,from(rgb(255,255,0)),to(rgb(255,255,153))); background-image:-moz-linear-gradient(-90deg,rgb(255,255,0),rgb(255,255,153)); }
</style>
</head>
<body>
<form name='form1'>
<div class='btn_mask'><input type='button' class='btn' value='a button'></div>
<div class='btn_mask'><input type='button' class='btn' value='a button'></div>
<div class='btn_mask'><input type='button' class='btn' value='a button'></div>
<div class='btn_mask'><input type='button' class='btn' value='a button'></div>
</form>
</body>
</html>

1
background: #4f81bd; /* Old browsers */
/* IE9 SVG, needs conditional override of 'filter' to 'none' */
background: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/Pgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDEgMSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSI+CiAgPGxpbmVhckdyYWRpZW50IGlkPSJncmFkLXVjZ2ctZ2VuZXJhdGVkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjAlIiB5MT0iMCUiIHgyPSIxMDAlIiB5Mj0iMCUiPgogICAgPHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iIzRmODFiZCIgc3RvcC1vcGFjaXR5PSIxIi8+CiAgICA8c3RvcCBvZmZzZXQ9IjEwMCUiIHN0b3AtY29sb3I9IiM4YWJiZDciIHN0b3Atb3BhY2l0eT0iMSIvPgogIDwvbGluZWFyR3JhZGllbnQ+CiAgPHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjEiIGhlaWdodD0iMSIgZmlsbD0idXJsKCNncmFkLXVjZ2ctZ2VuZXJhdGVkKSIgLz4KPC9zdmc+);
background: -moz-linear-gradient(left, #4f81bd 0%, #8abbd7 100%); /* FF3.6+ */
background: -webkit-gradient(linear, left top, right top, color-stop(0%,#4f81bd), color-stop(100%,#8abbd7)); /* Chrome,Safari4+ */
background: -webkit-linear-gradient(left, #4f81bd 0%,#8abbd7 100%); /* Chrome10+,Safari5.1+ */
background: -o-linear-gradient(left, #4f81bd 0%,#8abbd7 100%); /* Opera 11.10+ */
background: -ms-linear-gradient(left, #4f81bd 0%,#8abbd7 100%); /* IE10+ */
background: linear-gradient(left, #4f81bd 0%,#8abbd7 100%); /* W3C */
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#4f81bd', endColorstr='#8abbd7',GradientType=1 ); /* IE6-8 */

これをやっていて、「filter:」行を削除すると、出血が消えました。さらに、PIEを使用します。

裁ち落とし:

    background: #8abbd7; /* Old browsers */
/* IE9 SVG, needs conditional override of 'filter' to 'none' */
background: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/Pgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDEgMSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSI+CiAgPGxpbmVhckdyYWRpZW50IGlkPSJncmFkLXVjZ2ctZ2VuZXJhdGVkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjAlIiB5MT0iMCUiIHgyPSIwJSIgeTI9IjEwMCUiPgogICAgPHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iIzhhYmJkNyIgc3RvcC1vcGFjaXR5PSIxIi8+CiAgICA8c3RvcCBvZmZzZXQ9IjEwMCUiIHN0b3AtY29sb3I9IiM0ZjgxYmQiIHN0b3Atb3BhY2l0eT0iMSIvPgogIDwvbGluZWFyR3JhZGllbnQ+CiAgPHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjEiIGhlaWdodD0iMSIgZmlsbD0idXJsKCNncmFkLXVjZ2ctZ2VuZXJhdGVkKSIgLz4KPC9zdmc+);
background: -moz-linear-gradient(top, #8abbd7 0%, #4f81bd 100%); /* FF3.6+ */
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#8abbd7), color-stop(100%,#4f81bd)); /* Chrome,Safari4+ */
background: -webkit-linear-gradient(top, #8abbd7 0%,#4f81bd 100%); /* Chrome10+,Safari5.1+ */
background: -o-linear-gradient(top, #8abbd7 0%,#4f81bd 100%); /* Opera 11.10+ */
background: -ms-linear-gradient(top, #8abbd7 0%,#4f81bd 100%); /* IE10+ */
background: linear-gradient(top, #8abbd7 0%,#4f81bd 100%); /* W3C */
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#8abbd7', endColorstr='#4f81bd',GradientType=0 ); /* IE6-8 */
-pie-background: linear-gradient(#8ABBD7, #4f81bd);
behavior: url(../PIE/PIE.htc);

出血しない:

    background: #8abbd7; /* Old browsers */
/* IE9 SVG, needs conditional override of 'filter' to 'none' */
background: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/Pgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDEgMSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSI+CiAgPGxpbmVhckdyYWRpZW50IGlkPSJncmFkLXVjZ2ctZ2VuZXJhdGVkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjAlIiB5MT0iMCUiIHgyPSIwJSIgeTI9IjEwMCUiPgogICAgPHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iIzhhYmJkNyIgc3RvcC1vcGFjaXR5PSIxIi8+CiAgICA8c3RvcCBvZmZzZXQ9IjEwMCUiIHN0b3AtY29sb3I9IiM0ZjgxYmQiIHN0b3Atb3BhY2l0eT0iMSIvPgogIDwvbGluZWFyR3JhZGllbnQ+CiAgPHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjEiIGhlaWdodD0iMSIgZmlsbD0idXJsKCNncmFkLXVjZ2ctZ2VuZXJhdGVkKSIgLz4KPC9zdmc+);
background: -moz-linear-gradient(top, #8abbd7 0%, #4f81bd 100%); /* FF3.6+ */
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#8abbd7), color-stop(100%,#4f81bd)); /* Chrome,Safari4+ */
background: -webkit-linear-gradient(top, #8abbd7 0%,#4f81bd 100%); /* Chrome10+,Safari5.1+ */
background: -o-linear-gradient(top, #8abbd7 0%,#4f81bd 100%); /* Opera 11.10+ */
background: -ms-linear-gradient(top, #8abbd7 0%,#4f81bd 100%); /* IE10+ */
background: linear-gradient(top, #8abbd7 0%,#4f81bd 100%); /* W3C */
-pie-background: linear-gradient(#8ABBD7, #4f81bd);
behavior: url(../PIE/PIE.htc);

クイックIEシャドウ修正:

fixBoxShadowBlur($('*'));

function fixBoxShadowBlur(jQueryObject){
if($.browser.msie && $.browser.version.substr(0, 1) == '9'){
    jQueryObject.each(function(){
        boxShadow = $(this).css('boxShadow');
        if(boxShadow != 'none'){
            var bsArr = boxShadow.split(' ');
            bsBlur = parseInt(bsArr[2]) || 0;
            bsBlurMeasureType = bsArr[2].substr(("" + bsBlur).length);
            bsArr[2] = (bsBlur * 2) + bsBlurMeasureType;
            $(this).css('boxShadow', bsArr.join(' '));
        }
    });
}

}


1

シャドウを使用してグラデーションを実現することができ、Internet Explorer 9で動作しますborder-radius

このようなもの:

box-shadow: inset 0px 0px 26px 5px gainsboro;

0

これが一時的なものか、有効な回避策かはわかりませんが...

ボーダー半径がボーダー幅より大きい場合、問題は発生しませんでした。それらが同じだったとき、私は四角い角を得ていました。


0

compassとsassを使用すると、次のように簡単にこれを実現できます。

@import "compass";
#border-radius {
@include border-radius('RADIUS'px); }
#gradiant{
$experimental-support-for-svg: true;
@include background-image(linear-gradient('COLOR') %,('COLOR') %,...; }

CompassがSVG画像を生成します。

そのようです:

#gradiant {
 background-image: url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4gPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPSJncmFkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9InRvIiB5MT0iYm90dG9tIiB4Mj0idG8iIHkyPSJ0b3AiPjxzdG9wIG9mZnNldD0iMCUiIHN0b3AtY29sb3I9IiMwODJhMmUiLz48c3RvcCBvZmZzZXQ9IjM1JSIgc3RvcC1jb2xvcj0icmdiYSg4LCA0MiwgNDYsIDAuNzYpIi8+PHN0b3Agb2Zmc2V0PSI0MyUiIHN0b3AtY29sb3I9InJnYmEoNywgNDMsIDQ3LCAwLjcxKSIvPjxzdG9wIG9mZnNldD0iNTglIiBzdG9wLWNvbG9yPSJyZ2JhKDQsIDQ0LCA1MCwgMC41OCkiLz48c3RvcCBvZmZzZXQ9IjEwMCUiIHN0b3AtY29sb3I9IiMwNDJjMzIiLz48L2xpbmVhckdyYWRpZW50PjwvZGVmcz48cmVjdCB4PSIwIiB5PSIwIiB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiBmaWxsPSJ1cmwoI2dyYWQpIiAvPjwvc3ZnPiA=');
background-size: 100%;
background-image: -webkit-gradient(linear, to bottom, to top, color-stop(0%, #082a2e),   color-stop(35%, rgba(8, 42, 46, 0.76)), color-stop(43%, rgba(7, 43, 47, 0.71)), color-stop(58%, rgba(4, 44, 50, 0.58)), color-stop(100%, #042c32));
background-image: -webkit-linear-gradient(to bottom, #082a2e 0%, rgba(8, 42, 46, 0.76) 35%, rgba(7, 43, 47, 0.71) 43%, rgba(4, 44, 50, 0.58) 58%, #042c32 100%);
background-image: -moz-linear-gradient(to bottom, #082a2e 0%, rgba(8, 42, 46, 0.76) 35%, rgba(7, 43, 47, 0.71) 43%, rgba(4, 44, 50, 0.58) 58%, #042c32 100%);
background-image: -o-linear-gradient(to bottom, #082a2e 0%, rgba(8, 42, 46, 0.76) 35%, rgba(7, 43, 47, 0.71) 43%, rgba(4, 44, 50, 0.58) 58%, #042c32 100%);
background-image: linear-gradient(to bottom, #082a2e 0%, rgba(8, 42, 46, 0.76) 35%, rgba(7, 43, 47, 0.71) 43%, rgba(4, 44, 50, 0.58) 58%, #042c32 100%);

}

/* line 28, ../sass/boxshadow.scss */
#border-radius {
 -moz-border-radius-topright: 8px;
  -webkit-border-top-right-radius: 8px;
   border-top-right-radius: 8px;
 -moz-border-radius-bottomright: 8px;
  -webkit-border-bottom-right-radius: 8px;
  border-bottom-right-radius: 8px;

}


0

私のために働く...

<!--[if gte IE 9]>
  <style type="text/css">
  .gradient{
   filter: ;
}
</style>

CSS

border-radius: 10px;
background: #00a8db; /* Old browsers */
background: -moz-linear-gradient(top, #00a8db 0%, #116c8c 100%); /* FF3.6+ */
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#00a8db), color-    stop(100%,#116c8c)); /* Chrome,Safari4+ */
background: -webkit-linear-gradient(top, #00a8db 0%,#116c8c 100%); /* Chrome10+,Safari5.1+     */
background: -o-linear-gradient(top, #00a8db 0%,#116c8c 100%); /* Opera 11.10+ */
background: -ms-linear-gradient(top, #00a8db 0%,#116c8c 100%); /* IE10+ */
background: linear-gradient(to bottom, #00a8db 0%,#116c8c 100%); /* W3C */
-webkit-box-shadow: 1px 5px 2px #999;
-moz-box-shadow: 1px 1px 5px #999;
box-shadow: 1px 1px 5px #999;
color: #fff;
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#00a8db',     endColorstr='#116c8c',GradientType=0 ); /* IE6-8 */
/* IE9 SVG, needs conditional override of 'filter' to 'none' */
background:     url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/Pgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDEgMSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSI+CiAgPGxpbmVhckdyYWRpZW50IGlkPSJncmFkLXVjZ2ctZ2VuZXJhdGVkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjAlIiB5MT0iMCUiIHgyPSIwJSIgeTI9IjEwMCUiPgogICAgPHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iIzAwYThkYiIgc3RvcC1vcGFjaXR5PSIxIi8+CiAgICA8c3RvcCBvZmZzZXQ9IjEwMCUiIHN0b3AtY29sb3I9IiMxMTZjOGMiIHN0b3Atb3BhY2l0eT0iMSIvPgogIDwvbGluZWFyR3JhZGllbnQ+CiAgPHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjEiIGhlaWdodD0iMSIgZmlsbD0idXJsKCNncmFkLXVjZ2ctZ2VuZXJhdGVkKSIgLz4KPC9zdmc+);
/* W3C Markup, IE10 Release Preview */ 
background-image: linear-gradient(to top, #116C8C 0%, #00A5D7 100%);
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.