私はasp.net4.0でWebサイトを開発しています。デザイン中に質問があります
- Webページごとに個別のCSSを用意するのは良いことですか?
また
- 1つのCSSにすべてのスタイルがありますか?
最善の解決策を教えてください。
コードベースのサイズによって異なります。
通常、グローバルルールはすべて1つのファイルにまとめる必要があります。ただし、それらを個別のファイルに編成することが理にかなっている大規模なコードベースを扱っている場合を除きます(ただし、すべてのリクエストにグローバルに含まれます)。
通常、ページ固有のCSSは独自のファイルに配置し、それを必要とするページにのみ含める必要があります。
一般に、大規模なコードベースでは、すべてのグローバルcssを1つのファイルに連結し、それを本番環境に含めるミニファイアとビルドプロセスがあります。これはデバッグが難しい場合があるため、開発では、それらを別々のファイルとして保持することをお勧めします。
このファイルは後続のすべてのリクエストのためにキャッシュされるため、すべてのルールを1つのCSSファイルに保持することをお勧めします。
大量のCSS(つまり、数百kBを超える)がない限り、CSSエンジンのパフォーマンスに影響はありませんが、読み込まれるページごとにリクエストを繰り返す必要がないため、ページの読み込みが大幅に高速化されます。生成されるHTMLページを除けば、ロード時間の最大の増加になります。
編集:コンパイル時(またはオンデマンド)の連結の実装について考える必要があります。そうすれば、クライアントに単一のファイルとして提供される複数のCSSファイルを持つことができます。
他の回答で概説されているキャッシュと最小化の利点は別として、CSSは基本的にWebサイトまたはWebアプリケーションにテーマを割り当てていると考えてください。お気に入りのメディアプレーヤーやWebブラウザーでテーマがどのように機能するかを考えると、そのテーマを適用すると、通常、アプリケーションの一部だけでなく、アプリケーション全体に影響します。
したがって、CSSをテーマと考えると、デザイナーはHTMLの1行に触れることなく、サイトのルックアンドフィールを簡単に変更できるようになります。HTML、JavaScript、CSSを完全に分離しておくことをお勧めします。これにより、他の変更を気にすることなく、1つの変更を簡単に行うことができます。これにより、変更されないものが安定したままになるため、バグの可能性が低くなります。
さらに、デザイナーは新しいテーマを作成するために1つのファイルに変更を加えるだけで済み、作業が簡単になります。CSSの専門家は自分の専門分野ではない可能性のあるコードに変更を加える必要があったため、壊れたHTMLやJavaScriptを調べて修正する必要がないため、作業が簡単になります。
この方法の良い例は、StackExchangeです。Stack Overflow、Server Fault、Super User、Stack Appsはすべて同じQ&Aエンジンで実行されますが、それぞれテーマが少し異なります。まったく新しいQ&Aサイトを作成するために、フロントエンドの変更にはCSSの変更のみが含まれます。これが、Stack Exchangeが、ネットワーク上のすべてのQ&Aサイトの設計を管理する1人の設計者であるJinだけで解決できる方法です。彼の仕事を容易にするのは、標準化と単純さ、そして「自分を繰り返さない」という経験則に従うことです。
ブラウザのソースを見ると、CSSファイルが1つしかないことがわかります。
<link rel="stylesheet" type="text/css"
href="http://cdn.sstatic.net/stackoverflow/all.css?v=52aab16f8140">
いいえ、Webページごとに個別のCSSを保持するのは良くありません。専門家は決してこれをしません。しかし、uは異なるブラウザ用に2つまたは3つの別々のcssを使用できます。