2016-05-26 9 views
2

私はベストプラクティスの答えを探しています。現在、私のウェブサイトのナビゲーションバーにドロップダウンメニューを追加しようとしています。私はCSSを使用してそれを行うことができ、JS - Angularを使用して行うこともできることを発見しました。私はそれを読んだことがあるので、JS悪意のあるものは、JSを無効にするいくつかの人々をプログラムすることができます。したがって、より多くのコンピュータにあなたのウェブサイトの機能を維持するには、CSSでプログラミングする必要があります。これにメリットはありますか?可能な限りJSでのコーディングを避けるべきですか?できるだけJSを避け、代わりにCSSを使うべきですか?

+2

あなたは何をしているかによって、開発者の意見が異なり、インタラクティブなWebエクスペリエンスの作成にCSSには限界があります。他の何かを検討するには、ある種の新しい/実験的なCSS機能を使用する場合、同様に、ブラウザの不自然なサポートのために、サイトを適切に使用することから重要な人口を切り捨てることができます。この質問には明確な答えはありません。 (静的なリンクだけで構成されたかなり非対話的なサイトを構築したいのでない限り、アニメーションGIFは、誰かが下位のUXを取得しようとしています)。 – Serlite

+1

これまでの回答はお互いに同意していることが示されており、CSSは以下の回答の理由からベストプラクティスです。もちろん例外はありますが、いつもありますが、一般的に私の質問への答えは可能な限りCSSを使うことです。 – Vindictive

+0

IE6以降、完全なCSSドロップダウンメニューを作成できますが、js(Ajaxなど)を避けることができない多くのケースがあります。 Btw私は答えに同意しない。私は "主に意見に基づいて"と "あまりにも広い"の間で選択することはできません: -/ – leaf

答えて

4

CSSを使用してCSSを使用することを好む理由はほとんどありません。

  • CSSアニメーションは、JS アニメーションと比較してパフォーマンスがはるかに優れています。 CSSはアニメーションをレンダリングするためにJSと同じくらい多くのメモリを消費しません。
  • アニメーションが画面の幅に依存する場合、CSSメディアクエリーは遅れなくチャームのように機能します。しかし、JSを使用してこれを達成する必要がある場合は、イベントをウィンドウサイズにバインドし、すべてのサイズ変更でアクションを実行する必要があります。
  • JavaScriptアニメーションはCSSアニメーションよりもわずかに高いオーバーヘッドを持っています。なぜなら、最終的にJSアニメーションはアニメーションのCSSスタイルを操作するためです。

しかし、彼らの言うように、あらゆる利点には欠点があります。 CSSアニメーションは、アニメーションを自由に実行することはできません。スケール、回転、及び要素の位置をアニメート

は非常に一般的です。 CSSでは、それらはすべて1つの「変換」プロパティに詰め込まれており、単一の要素上で本当に異なる方法でアニメーション化することは不可能です。たとえば、 "回転"と "スケール"を別々のタイミングと簡単にアニメートする場合はどうでしょうか?たぶん要素が連続的に脈動していて、ロールオーバで回転させたいと思うかもしれません。それはJavaScriptでのみ可能です。

参考:Myth Busting: CSS Animations vs. JavaScript

あなたはJSアニメーションの柔軟性とCSSアニメーションの速度が必要な場合は、JavaScriptの上に構築されており、CSSアニメーションよりもはるかに高速ですされ、GSAPを試してみてください。Hereは、CSSアニメーション(Zeptoを使用)、jQueryアニメーション、GSAPアニメーションを比較したパフォーマンステストです。忘れてはならないが、結果はレンダリングエンジンごとに異なる可能性がある。

結論: これはあなたがそれについて行く方法です。

簡単なアニメーション、CSSの達成可能:使用CSS

簡単なアニメーションは、CSSで実現することができない:使用JS

ヘビーアニメーション:使用GSAPをかrequestAnimationFrameであなたのアニメーションを作ります。

Hereは、CSSアニメーションとJS​​の実装の間の驚くべきパフォーマンスの比較です。

2

CSSは、(X)HTML文書のスタイルを設定する最善の方法です。

生のJavaScriptやDOM、またはjQueryのようなフレームワークを使用してドキュメントをスタイルする必要がある場合でも、CSSルールに値を渡すことになります。

ルールは次のようになります。あなたが予測可能なドキュメントのスタイルを設定することができます

使用純粋なCSSは - また、あなたのCSSを強化し、一般化や複雑なシナリオのためのCSSセレクタを使用することができます - 。 JavaScriptのようなJavaScript/DOMやフレームワークを使用すると、ドキュメントやその一部が予測不可能になったり、オンザフライで作成されたり、フェードやその他の特殊効果を適用している場合 - 実際、CSS 3.0ではトランジションが可能ですJavaScriptなしでたくさんのことをする - 。 結局のところ、CSSを使って簡単にできることや、JavaScriptを代わりに使っているような過酷なことを考え、その短所(ブラウザの互換性とパフォーマンス)を念頭に置いてください。

より多くのCSSを使用するほど、より標準化されたクロスブラウザ、パフォーマンス、保守性の高いWebです。

+0

Cssはブラウザの互換性の問題からあなたを救いません。 – leaf

関連する問題