10

ディレクティブの用途の 1 つは、ページにきれいに挿入できる再利用可能な HTML 要素を作成することです。

現在のプロジェクトでこのアイデアを何度か使用しましたが、特定のディレクティブの CSS 宣言を含める正しい場所を判断できません。これまでのところ、私は考えました:

  • インライン css: これは常に悪いことであり、私の道徳的立場に反しますが、ディレクティブの正確な css が何であるかが非常に明確であり、CSS の衝突や他のページ要素との上書き、およびその逆の可能性を排除します。
  • HTML テンプレート内のスタイル/リンク タグ: スタイル タグは、インライン css の悪い部分を寄せ付けませんが、テキスト エディターで維持するのが面倒になる可能性があります (たとえば、emacs では正しくフォーマットされません)。スタイルシートへのリンクを代わりにテンプレートに追加することもできますが、実際にページの途中に CSS リンクを追加する必要があるでしょうか?
  • 外部スタイルシート: CSS を含める従来の「正しい」方法も、最初の箇条書きで述べたような衝突が発生する可能性があるため、あまり適していないようです。さらに、これをページの上部にリンク タグとして追加することを覚えておく必要があります。これは、ディレクティブを定義する方法と一致していないようです。テンプレートのリンク タグを明示的に追加する必要はありません (ディレクティブ定義の「template_url」を介してテンプレートをインポートしています)では、なぜスタイルに対してこれを行う必要があるのですか?

これをサイト全体のグローバル css に追加することもできますが、あるプロジェクトから完全にばらばらな他のプロジェクトにディレクティブを持ち上げることができるはずなので、これは良い習慣ではありません。

だから、質問:

再利用可能な HTML セグメントを意図した特定のディレクティブの CSS 宣言を配置する正しい場所はどこですか?

前もって感謝します!

4

2 に答える 2

2

スタイルは常に別のファイルに保存する必要があります。他の人のページに埋め込まれたり、HTML メールを送信したりするコードを書いていない限り、インライン スタイルはお勧めできません (メールの場合でも、外部ファイルから簡単にスタイルをインライン化できます)。テンプレート内のスタイル リンク タグはアプリケーションを覆い隠し、開発者にすべてのディレクティブを読むように強制します。開発者は AngularJS にさえ気付いていない可能性があります。

私にとって、あなたは間違った質問に対する答えを求めています。あなたのスタイルは、AngularJS を使用しているかどうかを気にするべきではありません。CSS をコーディングするときは、優れた CSS プラクティスに従います。ディレクティブは、クラス バインディングの恩恵を受けることができる単なる HTML ビューですが、CSS を編成する方法の要因にはなりません。CSS 構造 (BEM、OOCSS、SMACSS、Atomic Design など) を選択して、チームと自分自身がそれに従うようにします。

tl;drスタイルは、ビヘイビアレイヤーが使用しているものを気にする必要はありません。適切な CSS プラクティスを使用してください。この場合、適切な CSS プラクティスは、スタイルを外部スタイルシートに配置することです。

于 2013-09-14T16:09:06.260 に答える
0

外部ファイルでは、すべての CSS クラスにベンダー プレフィックスを付ける必要があります。
ディレクティブは外部ファイルを html テンプレートとして使用することがよくあります。外部 CSS にも問題はありません。

于 2013-09-13T12:19:17.800 に答える