-3

「A」が CSS ファイルを動的に生成できるようにしたい、または「B」が css ファイルを読み取って C# の CSS クラスの特定の属性を変更できるようにしたい。

理由は、色、ロゴ、テキストサイズなどを利用して、ユーザーの会社に合わせて構成する予定のサイトがあります...

最初に考えたのは CSS ファイルを動的に作成することでしたが、ネット上で例などを示している場所を見つけることができませんでした。2 番目の考えは、css ファイルを読み取り、ユーザーのログインに基づいて CSS クラスを変更することでした。

どちらかを行う簡単な方法はありますか?

4

1 に答える 1

2

通常、これはいくつかの異なる方法で処理されます。リクエストのプロパティ (現在のサイトなど) に基づいて、追加または異なる CSS ファイルを含めることができます。リクエストのプロパティに基づいて、さまざまなクラスを含む HTML を出力することもできます。一般的な手法は、特定の条件が満たされた場合などのルート要素にクラスを追加し、CSS を記述してそれらのクラスを利用することです。

たとえば、複数のサイトで同じコード ベースを使用している場合、サイト A では を使用し、<html class="site-a">サイト B では<html class="site-b">. 次に、サイトに基づいてスタイルを簡単にオーバーライドできます。

/* Default to white background */
body {
    background: white;
}

/* Use a black background for Site A */
.site-a body {
    background: black;
}

/* Use a blue background for Site B */
.site-b body {
    background: blue;
}

もちろん、これは非常に単純な例です。サイト全体の場合、個別の CSS ファイルは、他のサイト固有のファイルと一緒に保存するため、より構造的に意味があります。

アプリケーションがフロント エンドのプレゼンテーション レイヤーとファイルを通常どのように編成するかについて、さらに学習することをお勧めします。たとえば、MVC はアプリケーションの一部を分離する方法です。プレゼンテーションのコンテキスト内では、UI の一部をカプセル化し、再利用可能な部分に変換するためのテンプレートやテーマなどの概念があります。

編集:私の答えで失われたのは、実際にCSSファイルを動的に生成することについて話さなかったということです。これは、CSS ファイルを動的に生成することは一般的ではなく、一般的に問題に対する適切な解決策ではないためです。コメンテーターが指摘したように、LESS や SASS などの CSS プリプロセッサがあり、これらは一般に CSS の内部問題 (主に冗長性) のいくつかを解決することを目的としています。プリプロセッサは CSS の問題を修正し、非常に便利ですが、あなたが尋ねたように聞こえる方法では使用されません。別の CSS ファイルまたは異なるクラスと ID をキーオフする CSS ファイルが解決策であり、異なるプロパティ値を持つ CSS ファイルまたはブロックを動的に作成するのではありません。

于 2013-02-25T19:48:44.850 に答える