2

私はかなり長い間、ASP.NET を使用して Web サイトを開発してきました。ASP.NET でテーマとスキンがどのように機能するかを初めて学んだとき、それが素晴らしく簡単であることがわかりました。

しかし、後になって、App_Themes のアプローチが非常に煩わしいことに気付き始めました。また、そこに挿入した CSS は、まったく柔軟ではありません。何か不足していますか?

  1. CSS ファイルは、テーマを使用して aspx ページに自動的に追加されます。

    私が最初に Web 開発を始めたとき、これは役に立ちました。しかし、後になって CSS のことをどんどん学んでいくうちに、これが本当に厄介だと思うようになりました。場合によっては、特定の CSS ファイルを追加しても役に立たないページがいくつかあります。

    そして最悪の部分は、常にアルファベット順に追加されるため、どのファイルが最初かを制御できません. これは、何らかの「リセット」CSS ファイルを実行した場合に特に重要です。したがって、リセットされたCSSファイルをアルファベット順で一番上にランク付けしたいので、ファイルの命名は常にあなたが望むものになるとは限りません.

    これに対する解決策は、すべての CSS コードを 1 つのファイルに入れることであると認識しています (これは、実際には運用環境に適しています)。しかし、これは非常に柔軟性がなく、CSS コードの管理が非常に難しくなります。

  2. URL 書き換え

    Web サイトに追加される CSS ファイルは、書き換え後の URL ではなく、実際の aspx ページへの相対パスであるため、これは大きな問題です。

    たとえば、この URL: http://www.example.com/date/category/item.aspxがhttp://www.example.com/items.aspx?id=itemから書き換えられた場合。そのページ内の CSS ファイルへのリンクは次のようになります。

    <link href="App_Themes/ThemeName/style.css" type="text/css" rel="stylesheet" />

    あるべき場所:<link href="../../App_Themes/ThemeName/style.css" type="text/css" rel="stylesheet" />

    または単に: <link href="http://www.example.com/App_Themes/ThemeName/style.css" type="text/css" rel="stylesheet" />

    したがって、ブラウザーが CSS ファイルを見つけられないため、Web ページのデザインが壊れます。

これらは、テーマに関して私が抱えている 2 つの主要な問題です。したがって、App_Themes アプローチを捨てて、「古い学校」の CSS デザイン (つまり、通常のフォルダーを作成し、CSS ファイルを入れて、それらの CSS へのリンクを手動でページ)?ここに欠けている機能はありますか?

4

3 に答える 3

2

2 つのアプローチの違いについては、 MSDNを参照してください。基本的に、テーマを使用すると、スタイルのみを制御するのではなく、コントロールの任意のプロパティを設定できます。スタイリング目的でのみテーマを使用している場合は、CSS の方法を失うことはありません。個人的には、CSS を使用すると、組み込みのテーマを使用するよりもはるかに優れた制御が提供されることがわかりました。

于 2011-04-20T12:47:52.920 に答える
1

両方のアプローチを組み合わせることが最も効果的であることがわかりました。テーマの使用を考えるときは、異なるテーマ間でサイトのルック アンド フィールを制御する (色やロゴの変更など) css ファイル、画像、スキン ファイルのみを作成する必要があります。

サイトが適切に構成されていることを確認するために、サイトのメイン部分 (/includes/たとえば、css/、私の JavaScript の場合は /includes/js/ です)。

このようにして、構造的にサイトの一貫性を保つことができ、それらの css ファイルを常にマスター ページに含めることができ、テーマを適用してルック アンド フィールだけを変更することができます。

URL の書き換えに関しては、私のリンク参照は常に / で始まります。これは、必要なファイルを見つけるために常にサーバーのルートから開始することをサーバーが認識していることを確認するためです。したがって、私の構造 css ファイルへのリンクは常に次のようになります。

<link href="/includes/css/base.css" type="text/css" rel="stylesheet" />

HTH。

于 2011-04-20T12:56:04.257 に答える
0

メンテナンスと再帰性のためだけに、別のスタイルシートを用意したほうがよいと思います。スタイルを繰り返したい場合は、スタイルが設定されたオブジェクトごとにコードを繰り返すのではなく、必要なときにいつでも簡単にアクセスできます。複数のオブジェクトのスタイルを変更したい場合は、スタイルシートで変更するだけで、すべてのオブジェクトに影響します!

これが役立つことを願っています。

于 2011-04-20T12:29:51.397 に答える