Cara mengatur CSS switcher

I'm bekerja pada sebuah situs web yang akan beralih ke gaya baru pada tanggal ditetapkan. Situs's dibangun di semantik HTML dan CSS, sehingga perubahan hanya harus memerlukan CSS referensi berubah. I'm bekerja sama dengan seorang desainer yang akan perlu untuk dapat melihat bagaimana hal itu's mencari, serta klien yang akan harus mampu untuk review update konten dalam tampilan saat ini serta kemajuan pada desain tampilan baru.

I'm berencana untuk menggunakan sihir querystring nilai dan / atau javascript link di footer yang menulis sebuah cookie untuk memilih CSS baru halaman. Kami're kerja di ASP.NET 3.5. Ada rekomendasi?

Saya harus menyebutkan bahwa kita're menggunakan IE Bersyarat Komentar untuk IE8, 7, dan 6 dukungan. Saya dapat membuat sebuah fungsi yang melakukan penggantian:

<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]-->
Larutan

Di Asp.net 3.5, anda harus dapat mengatur tag Link di header sebagai server tag. Kemudian di codebehind anda dapat mengatur href properti untuk link elemen, berdasarkan nilai cookie, querystring, tanggal, dll.

Dalam aspx:



Dan dalam Kode di belakang:

protected void Page_Load(object sender, EventArgs e) {
  string stylesheetAddress = // logic to determine stylesheet
  linkStyles.Href = stylesheetAddress;
}
Komentar (1)

Anda harus melihat ke dalam ASP.NET tema, yang's apa yang mereka're yang digunakan untuk. Mereka juga memungkinkan anda untuk kulit kontrol, yang berarti memberi mereka satu set default atribut.

Komentar (0)

Saya akan menyarankan menyimpan stylesheet seleksi di sesi sehingga anda don't harus bergantung pada querystring kunci yang hadir sepanjang waktu. Anda dapat memeriksa sesi di Page_Load dan menambahkan sesuai stylesheet referensi. Kedengarannya seperti ini adalah sementara/perkembangan situasi, jadi pergi dengan apa pun yang mudah dan bekerja.

if (!String.IsNullOrEmpty(Request.QueryString["css"]))
  Session.Add("CSS",Request.QueryString["css"]);
Komentar (0)

Aku akan melakukan hal-hal berikut:

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

Kemudian pada anda ASP.NET kode:

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

Lalu di mana anda menentukan stylesheet:

if (Request.Cookies["stylesheet"] != null) {
    // New Stylesheet
} else {
    // Default
}
Komentar (1)