編集以下は他の理由で役立ちますが、実際には、WebKitまたはFirefoxシンタックスのどちらを使用するかを知るというOPの問題には役立たないと思います! (Doh) グラデーションを使用できるかどうかを知るのに役立ちます。
もう一度編集しかし!Modernizr のソースを見ると、機能テストでそれを行う方法がわかります (彼らは賢いですね)。おそらく自分でソースを見ればわかると思いますが、簡単にハックした例を次に示します。
function testGradientSyntax() {
var element;
element = document.createElement("testsyntax");
element.style.cssText =
"background: -webkit-gradient(radial, 45 45, 10, 52 50, 30, from(#A7D30C), to(rgba(1,159,98,0)), color-stop(90%, #019F62))";
if (element.style.background.indexOf("-webkit") >= 0) {
// It's WebKit syntax
log("This supports WebKit syntax");
}
else {
// It's not WebKit syntax
log("This doesn't support WebKit syntax");
}
}
これにはModernizrを使用することをお勧めします。関連する構文を検出し、単一の CSS ファイルを両方の構文で使用する方法を提供します。
ドキュメントからのサンプル グラデーション コード:
button.glossy {
background: #ccc url(gloss.png) 50% 50% repeat-x;
}
.cssgradients button.glossy {
background: #ccc -webkit-gradient(linear, left top, left bottom,
from(rgba(255,255,255, .4)),
color-stop(0.5, rgba(255,255,255, .7)),
color-stop(0.5, rgba(0,0,0, .2)),
to(rgba(0,0,0, .1)));
}
.cssgradients button.glossy:hover {
background-color: #fff;
}
(編集.cssgradients button.glossy
上記では、ドキュメントのエラーのように見えたルールの末尾から行を削除しました。)
その.cssgradients
クラスを参照してください。Modernizr を実行すると、それが関連する構文であるかどうかが検出され、関連する構文である場合は、そのクラスがhtml
要素に追加されます。これにより、子孫セレクターがオンになり.cssgradients button.glossy
、ルールが適用されます。
残念ながら、これはすべて、Javascript が有効になっているブラウザに依存しています。