1

最近css3コマンドをチェックしています。それらの一部がブラウザごとに異なるのはなぜですか?

たとえば、この 2D 変換の例を見てください。

div
{
transform: rotate(30deg);
-ms-transform: rotate(30deg); /* IE 9 */
-webkit-transform: rotate(30deg); /* Safari and Chrome */
-o-transform: rotate(30deg); /* Opera */
-moz-transform: rotate(30deg); /* Firefox */
} 

それらのすべてが同じ議論を受け入れているのに、なぜ彼らはそれらを異なるものにするのでしょうか? 彼らはある種のベータ段階にいますか?それらは(ベータ段階の後)同じになりますか?

このアニメーションの例を考えると、かなり非現実的です

@keyframes myfirst
{
from {background: red;}
to {background: yellow;}
}

@-moz-keyframes myfirst /* Firefox */
{
from {background: red;}
to {background: yellow;}
}

@-webkit-keyframes myfirst /* Safari and Chrome */
{
from {background: red;}
to {background: yellow;}
}

@-o-keyframes myfirst /* Opera */
{
from {background: red;}
to {background: yellow;}
} 
4

2 に答える 2

1

質問に答えるために-はい、彼らは通常ベータ実装を示しています。特定のプロパティが標準化され、ブラウザベンダーがプレフィックスなしのバージョンを追加すると、通常、プレフィックス付きのバージョンがエイリアスとして保持され、後日非推奨になります。また、はい、標準化されると、動作は同じになります(予期しないバグがない限り)。

CSSベンダー固有の拡張機能は、仕様の一部です。ブラウザベンダーは、それらを使用して、批准されていない、または標準化されていないCSS機能をブラウザに追加します。機能はブラウザごとに異なる可能性があり、接頭辞のないルールが標準化されている場合は最終的な機能ではない可能性があることを理解しています。

CSSベンダーのプレフィックスはあまり好まれていませんが、強調した問題を回避して、よりクリーンな方法でそれらを処理するためのいくつかの便利なアプローチがあります。

于 2013-03-01T10:05:16.857 に答える
1

実際のところ、それらは常に同じパラメーターを受け入れたり、同じように動作したりするわけではありません。

つまり、このプロパティがどのように動作し、その構文がどのように見えるべきかについて、ある種の標準的または共通の理解が得られるまで、なぜプレフィックスが付けられるのかということです。

これらのプロパティのいくつかは、単なる実験的なものです。あるブラウザー ベンダーは、クールな新しいアイデアを思いつき、それを自社のブラウザーに追加しました。しばらくすると、他のブラウザー ベンダーがこの機能を採用する可能性があり、さらにしばらくすると、この機能の標準が作成されるでしょう。

ほとんどの場合、ブラウザーのバージョンによってはこれらのプレフィックスが削除されるため、標準のものを使用できます。border-radiusを参照してください。最初は接頭辞-moz--webkit-がありましたが、プロパティ定義が安定した後、接頭辞が削除され、接頭辞なしのバージョンを使用できるようになりました。

于 2013-03-01T10:01:09.793 に答える