ベンダー プレフィックス: ブラウザ エンジン プレフィックスが必要なのはなぜですか?

ベンダー プレフィックス: ブラウザ エンジン プレフィックスが必要なのはなぜですか?

ベンダープレフィックスとは何ですか?

ベンダー プレフィックス - ブラウザー エンジン プレフィックスは、CSS プロパティの前に置かれる小さな文字列で、そのプロパティが特定のブラウザー レンダリング エンジンでのみ認識され、有効になることを保証します。 Google Chrome と Safari は WebKit レンダリング エンジンを使用し、Firefox は Gecko エンジン、Internet Explorer は Trident エンジンを使用し、Opera は以前は Presto エンジンを使用していましたが、後に WebKit エンジンに切り替えました。ブラウザ エンジンは通常、他のエンジンのプレフィックスでマークされた CSS プロパティを実装しません。ただし、WebKit ベースのモバイル ブラウザは非常に人気があるため、Firefox などのブラウザもモバイル バージョンで WebKit エンジン プレフィックスでマークされたいくつかの CSS プロパティを実装しています。

ブラウザ エンジン プレフィックス (ベンダー プレフィックス) とは何ですか?

-moz- /* Firefox および Mozilla ブラウザ エンジンを使用するその他のブラウザ*/
-webkit- /* Safari、Google Chrome、その他の Webkit エンジンを使用するブラウザ*/
-o- /* Opera ブラウザ (初期) */
-ms- /* Internet Explorer (必ずしもそうとは限りません) */

ベンダープレフィックスが必要なのはなぜですか?

これらのブラウザ エンジン プレフィックス (ベンダー プレフィックス) は、主にさまざまなブラウザで新しい CSS3 プロパティ機能を実験またはテストするために使用されます。それは次の3つの点に要約できます。

  • まだ標準化されていない、あるいは今後も標準化されない可能性のあるCSSプロパティを試してみる
  • 新しい標準 CSS3 プロパティの実験的な実装
  • CSS3 の新しいプロパティに対する同等の意味論のパーソナライズされた実装

これらのプレフィックスがすべて必要なわけではありませんが、通常は追加しても問題はありません。プレフィックスなしのバージョンを最後の行に置くことを忘れないでください。

-moz-border-radius: 10px;
-webkit-border-radius: 10px;
-o-境界線の半径: 10px;
境界線の半径: 10px;

いくつかの新しい CSS3 プロパティは長い間実験的なものであり、一部のブラウザではすでにこれらのプロパティのプレフィックスの使用が停止されています。 Border-radius プロパティは非常に典型的な例です。最新のブラウザはプレフィックスなしの Border-radius 属性をサポートしています。

ベンダープレフィックスを必要とする CSS3 プロパティ

ベンダー プレフィックスを追加する必要がある主なプロパティは次のとおりです。

  • @キーフレーム
  • 移動と変換のプロパティ (transition-property、transition-duration、transition-timing-function、transition-delay)
  • アニメーションのプロパティ (animation-name、animation-duration、animation-timing-function、animation-delay)
  • 境界線の半径
  • ボックスシャドウ
  • 背面の可視性
  • 列のプロパティ
  • フレックスプロパティ
  • 遠近法プロパティ

リストはこれで終わりではなく、今後も増え続ける予定です。

ベンダープレフィックスの使用

ベンダー プレフィックスが必要な場合は、プレフィックスを最初に配置し、標準プレフィックスを最後に配置するのが最適です。例えば:

/* シンプルなプロパティ */
.myClass{
	-webkit アニメーション名: fadeIn;
	-moz-アニメーション名: fadeIn;
	-o-アニメーション名: フェードイン;
	-ms-アニメーション名: フェードイン;
	animation-name: fadeIn; /* プレフィックスなしのものを最後に置く*/
}
/* 複雑な属性キーフレーム */
@-webkit-keyframes フェードイン {
	0% { 不透明度: 0; } 100% { 不透明度: 0; }
}
@-moz-keyframes フェードイン {
	0% { 不透明度: 0; } 100% { 不透明度: 0; }
}
@-o-keyframes フェードイン {
	0% { 不透明度: 0; } 100% { 不透明度: 0; }
}
@-ms-keyframes フェードイン {
	0% { 不透明度: 0; } 100% { 不透明度: 0; }
}
/* プレフィックスのないものについては最後に置く */
@keyframes フェードイン {
	0% { 不透明度: 0; } 100% { 不透明度: 0; }
}

インターネットエクスプローラー

Internet Explorer 9 は、CSS3 の新しいプロパティの多く (すべてではありません) をサポートしています。たとえば、IE ではベンダー プレフィックスなしで border-radius プロパティを使用することもできます。

IE6 から IE8 は CSS3 をサポートしていません。残念ながら、これらの低バージョンのブラウザを使用しているユーザーはまだ多くいます。したがって、CSS3 をサポートしていなくても、Web サイトのデザインが適切に表示されるかどうかを確認してください。 border-radius、linear-gradient、box-shadow などの一部のプロパティについては、CSS3Pie を使用できます。これは、Web サイトのルート ディレクトリに配置する小さなファイルで、これにより、ページが IE6 および IE8 でこれらのプロパティをサポートするようになります。

<<:  CSS で隠し要素を実現する 7 つの興味深い方法

>>:  mysqlはコンマに基づいてデータ行を複数の行に分割します

推薦する

VMware Workstation 12 Pro Linux インストール チュートリアル

この記事は、VMware Workstation 12 ProのインストールLinuxチュートリアル...

MySQLデータベースのロック機構の分析

同時アクセスの場合、非反復読み取りやその他の読み取り現象が発生する可能性があります。高い同時実行性に...

Ubuntu での MySQL および MySQL Workbench のインストール チュートリアル

Ubuntu に jdk をインストールする: [リンク] UbuntuにEclipseをインストー...

CocosCreator最適化DrawCallの詳細な説明

目次序文ドローコールとはDrawCall はパフォーマンスにどのような影響を与えますか?ドローコール...

スケーラブルな列の完全な例を実現するための Ant 設計 Vue テーブル

ant-design-vue テーブルのスケーラブルな列の問題に対する完璧なソリューション。固定列と...

Vueはドラッグ可能なツリー構造図を実装します

目次Vue 再帰コンポーネントドラッグイベント最近、Vue を使用して、ドラッグ可能なツリー構造図と...

要素の高さを下から上へ、上から下へ制御する CSS メソッド

よくある質問から議論を始めましょう。CSS を使用して要素の高さを [ブラウザ コンテンツ ウィンド...

CentOS7.5にHarbor1.7をインストールして設定するプロセス全体

1. 必要なパッケージをダウンロードする wget -P /usr/local https://st...

jQueryは従業員情報の追加と削除の機能を実装します

この記事では、従業員情報の追加と削除の機能を実装するためのjQueryの具体的なコードを参考までに共...

よくある HTML タグの記述エラー

HTML Police がコードを調べて意味のないタグをすべて見つけ出すので、注意を払う必要がありま...

ノード スキャフォールディングを使用してトークン検証を実装するサーバーを構築する方法

コンテンツスキャフォールディングを使用してノードプロジェクトを素早く構築するデータベースとやり取りす...

アコーディオンセカンダリメニューを実装するためのjQueryプラグイン

この記事では、jQueryプラグインを使用してアコーディオンセカンダリメニューを作成します。具体的な...

CentOS7でPHPスケジュールタスクを実行する方法

序文この記事は主に CentOS7 で PHP スケジュールタスクを実行することに関する関連コンテン...

JavaScript マクロタスクとマイクロタスク

マクロタスクとマイクロタスクJavaScript はシングルスレッド言語です (マルチスレッドの場合...