3

イントラネット Web サイトのプロトタイプを作成する必要があり、使いやすさ (レイアウト、ナビゲーションのしやすさなど) に重点を置き、テーマについては後回しにしたいと考えています (私は非常に趣味が悪いので、これはおそらく他の人が行うことになるでしょう)。

テーマを即座に切り替える ASP.NET の機能については知っていますが、後で簡単に切り替えられるように Web フォームを設計するにはどうすればよいですか?

  • 将来の css に存在するものを指すクラス属性を持つコントロールを作成する必要がありますか?
  • それとも、これを気にせずにコントロールを作成するだけで、テーマを作成するときに簡単に処理できますか?
4

4 に答える 4

2

ASP.NET Themesの使用を計画している場合は、すべてのコントロールを一般的に設計し、後でスキンを追加できます。デザインの複雑さ (テキストボックスやグリッドビューなどにいくつの異なるスタイルがあるかなど) によっては、これで多くの作業を節約できるわけではありませんが、組み込みの .Net サポートをテーマに使用する方法の 1 つです。

すべてのサブページが共通のベースを持つように MasterPage を使用し、すべての要素に適切な ID を与えるようにしてください。これは、すべてをまとめるには CSS をいじる必要があるためです。

これは、適切なテーマとスキンのチュートリアルへのリンクです。これを追加するために将来何をしなければならないかを知っておくと、現在の設計が容易になります。

于 2008-09-25T19:52:01.023 に答える
2

テーマを完全に無視し、CSS だけを使用するという議論をしたいと思います。テーマがどのような価値をもたらすのか、私にははっきりとはわかりませんでした。これは非常に Microsoft 固有のアプローチであり、その出力は常に標準に準拠しているわけではありません。CSS を使用することで、プロジェクトで作業できる潜在的なデザイナーのプールが広がり、クロスブラウザーで標準に準拠したサイトを持つ可能性が高くなります。

他の誰かが後でこれをスタイリングする場合は、彼らがこれをデザインできるように十分な「フック」を提供するようにしてください. これは、同様にスタイルが設定されるほぼすべての作業に CSS クラスを追加し、必要に応じて CSS クラスを使用して div または span でラップすることを意味します。たとえば、

     <div class="ButtonContainer">
       <asp:linkbutton runat="Server" cssclass="Button Cancel" command="Save" text="Save" />
       <asp:linkbutton runat="Server" cssclass="Button Save" command="Cancel" text="Cancel" />
     </div>

ただし、CSS を十分に理解しておらず、社内の命名規則や標準スタイル シートを持っていない場合は、div とクラスを構造化する方法を本当に理解することはできません。私たちのショップでは、プログラマーが標準の ASP.NET マークアップを作成するだけで、デザイナーが開発するスタイル シートで動作する div、span、およびクラス名を追加します。

于 2008-09-25T21:23:18.837 に答える
1

スキンはおそらく答えですが、それについて何かが私を苛立たせます(おそらく、私はそのベンダー固有であることが好きではなく、自分のスキルを.NET以外の他のWeb言語やプラットフォームに適用したいからです)。私は、すべてのASP.NetコントロールでCssClass属性を使用し、他のすべてを慎重に分類し、可能な限り多くのセマンティックマークアップを使用することを好みます。次に、コントロールを設定して機能させるときに、CSSを使用してすべてのスタイルを設定します(ただし、通常、この時点でHTMLとJavaScriptを微調整する必要があります)。

私が一緒に仕事をしている別の開発者は、スキンやページディレクティブなどを使ってMicrosoftのやり方ですべてを行うことを好みます。それはおそらくそれを行うための最良の方法ですが、アプリケーションのミドルエンドとバックエンドにプレゼンテーションの多くを混ぜすぎているように私には感じます。

于 2008-09-25T20:04:19.870 に答える
-1

コントロールをdivでラップするだけです。最終的にレイアウト/スタイルがはるかに簡単になります

于 2008-09-25T19:44:22.023 に答える