ベンダー固有の拡張機能を検討する際に従うべき原則は、プログレッシブ エンハンスメントです。基本的な考え方は、できるだけ多くの人が利用できるようにサイトを設計する必要があるということです。JavaScript、CSS、またはあらゆる種類のベンダー固有の拡張機能を使用せずに、端末クライアントでプレーンな HTML 3.2 で動作するように設計します。
次に、スタイルと機能を追加します。すべてのブラウザーがサポートしているわけではないより高度な標準を使用し、ビジュアル メディアのデザインを使用し、無効にできる CSS と JavaScript を使用し、最後に、ブラウザーによってまったくサポートされていないベンダー固有の拡張機能を使用します。他のブラウザ。しかし、最初は誰もがサポートする共通の機能セットを考慮して設計を開始したため、サイトが機能するために新しい機能からの追加機能は必要ありません。新しい機能は機能強化として追加されたものであり、サイトが機能するために不可欠なものではないため、古い機能を備えた古いブラウザーでも引き続き機能します。
したがって、これらのベンダー固有の拡張機能に依存するのではなく、拡張機能として使用してください。何らかの理由でそれらに依存している場合 (特定のブラウザーで利用可能な拡張機能がないと製品が機能しない場合) は、使用する価値があるかもしれません。しかし、その場合、あなたの未来はそのブラウザーと密接に関連しています。道端に落ちたらSOLです。それが韓国でのみ使用されることになり、製品がドイツ語であり、別のブラウザーが支配的なものである場合、あなたは SOL です。
現在、これらの決定を行う際に選択できる、さまざまな種類のベンダー固有の機能があります。特定のベンダーに常に固有の機能がいくつかあります。他のプラットフォームに適用できない機能、または標準化団体に提案され、そのアプローチ全体が拒否された機能。これらの機能は、非常に慎重に使用したい機能です。
標準化過程にある他の機能があります。これらは現在の CSS 3 ドラフトにあり、2 つまたは 3 つの異なるブラウザーにほぼ互換性を持って実装されています。これらの機能は、ユーザーベースがすべてそれらをサポートしている場合、信頼できる機能です。これらの機能は、主要なブラウザーの大部分 (潜在的なユーザーの大多数によって使用される) によって実装されることがかなり確実であるためです。将来。
つまり、個々のブラウザーでのみサポートされている効果をページに自由に追加する必要があると言えます。ただし、主要なブラウザーすべてで間もなくサポートされると信じる十分な理由がない限り、これらに依存するべきではありません。主要なブラウザーでサポートされている HTML の現在の状態では、非常に多くのことができます。標準に準拠することは請求書を支払うことではなく、機能を提供することであり、ある程度のスタイルを提供することであることに留意しながら、できる限り現在の標準とブラウザ間で共通の機能の範囲内で作業してみてください。
ベンダー固有の拡張機能の長所と短所に関する質問への直接的な回答として:
長所
- すぐに普及する可能性のある機能にアクセスする
- お客様により良い価値を提供する
- あなたは本当にクールで楽しいことをすることができます
- 他のブラウザーの実装者や標準に取り組んでいる人々に、この機能が良いアイデアであることを奨励するのに役立ちます
短所
- この機能はなくなり、同じブラウザの新しいバージョンでも表示されない可能性があります
- このような拡張機能に依存している場合、ユーザー ベースが大幅に制限される可能性があります
- この機能は、リリース前に大幅に変更される可能性があり、ページが壊れたり、特定が非常に困難な新しいスニッフィング モードが発生したりする可能性があります。
JavaScript ベースのアプローチと CSS 拡張アプローチのどちらを使用するかについては、ケースバイケースで判断する必要があります。プログレッシブエンハンスメントの原則に従うことができた場合は、どちらも問題なく使用できます。それがあなたのサイトに不可欠な機能でない限り、またはすべての主要なブラウザで同じことを行う別の方法を見つけている限り、JavaScript ソリューションよりも CSS の方が好ましいと言えます。より速い読み込み。
検証について考慮すべきことは、HTML が検証されることを確認することは一般的には良い考えですが (常に必須というわけではありません。たとえば、検証よりもダウンロード サイズを最小化することが重要であると考えているGoogleを参照してください)、ベンダー固有の理由による検証の失敗です。 CSS のプロパティはあまり重要ではありません。CSS では、不明なプロパティは単に無視されるように定義されているため、ベンダー固有のプロパティを使用しているために検証されない場合でも、そのプロパティをサポートしていないブラウザーでどのように動作するかがわかります。彼らはそれを無視します。プログレッシブ エンハンスメントのアプローチに従った場合、これらのプロパティが無視されてもサイトは正常に機能するはずです。つまり、サイトの見栄えが少し悪くなる以外に悪影響はありません。