36

決まった日に新しいスタイルに切り替わるウェブサイトを制作中です。サイトの組み込みセマンティック HTML および CSS であるため、変更には CSS 参照の変更のみが必要です。どのように見えるかを確認できる必要があるデザイナーと、現在の外観のコンテンツの更新と新しい外観のデザインの進行状況を確認できる必要があるクライアントと一緒に作業しています。

新しい CSS ページを選択するために Cookie を書き出すフッターで、魔法のクエリ文字列値および/または JavaScript リンクを使用する予定です。ASP.NET 3.5 で作業しています。推奨事項はありますか?

IE8、7、および 6 のサポートのために IE 条件付きコメントを使用していることに言及しておく必要があります。置換を行う関数を作成する場合があります。

<link href="Style/<% GetCssRoot() %>.css" rel="stylesheet" type="text/css" />
<!--[if lte IE 8]>
    <link type="text/css" href="Style/<% GetCssRoot() %>-ie8.css" rel="stylesheet" />
<![endif]-->
<!--[if lte IE 7]>
    <link type="text/css" href="Style/<% GetCssRoot() %>-ie7.css" rel="stylesheet" />
<![endif]-->
<!--[if lte IE 6]>
    <link type="text/css" href="Style/<% GetCssRoot() %>-ie6.css" rel="stylesheet" />
<![endif]-->
4

4 に答える 4

22

Asp.net 3.5では、ヘッダーのLinkタグをサーバータグとして設定できるはずです。次に、コードビハインドで、Cookie値、クエリ文字列、日付などに基づいて、リンク要素のhrefプロパティを設定できます。

aspxファイルの場合:

<head>
  <link id="linkStyles" rel="stylesheet" type="text/css" runat="server" />
</head>

そして背後にあるコードで:

protected void Page_Load(object sender, EventArgs e) {
  string stylesheetAddress = // logic to determine stylesheet
  linkStyles.Href = stylesheetAddress;
}
于 2008-08-07T19:00:58.757 に答える
6

あなたはテーマを調べる必要がありますASP.NET、それはまさにそれらが使用されているものです。また、スキンコントロールを使用することもできます。つまり、一連のデフォルト属性を指定できます。

于 2008-08-07T19:01:05.060 に答える
2

クエリ文字列キーが常に存在することに依存する必要がないように、スタイルシートの選択をセッションに保存することをお勧めします。Page_Loadでセッションを確認し、適切なスタイルシート参照を追加できます。これは一時的/開発中の状況のように思われるので、簡単で機能するものなら何でも使用してください。

if (!String.IsNullOrEmpty(Request.QueryString["css"]))
  Session.Add("CSS",Request.QueryString["css"]);
于 2008-08-07T18:56:47.707 に答える
-2

私は次のことをします:

www.website.com/?stylesheet=new.css

次に、ASP.NETコードで:

if (Request.Querystring["stylesheet"] != null) {
    Response.Cookies["stylesheet"].Value = Request.QueryString["stylesheet"];
    Response.Redirect(<Current Page>);
}

次に、スタイルシートを定義する場所:

if (Request.Cookies["stylesheet"] != null) {
    // New Stylesheet
} else {
    // Default
}
于 2008-08-07T19:02:00.800 に答える