Как настроить переключатель в CSS

Я'м работает на сайт, который перейдет на новый стиль в установленную дату. На сайте'ы построенные в семантический HTML и CSS, так что изменения просто требуют ссылку Изменить в CSS. Я'm работая с дизайнером, который должен быть в состоянии, чтобы увидеть, как это'ы, глядя, как клиент, должны быть в состоянии рассмотреть содержание обновления в текущей внешний вид, а также ход проектирования на новый взгляд.

Я'м планирую использовать магические страницы querystring значение и / или JavaScript в ссылку в нижнем колонтитуле, который записывает файл cookie, чтобы выбрать новые страницы в CSS. Мы're работая в ASP.NET 3.5. Какие-либо рекомендации?

Я должен упомянуть, что мы'повторно используя IE условные комментарии для IE8, 7, 6 и поддержку. Я могу создать функцию, которая делает замену:

<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]-->
Решение

В Asp.net 3.5, вы должны быть в состоянии создать тег link в заголовке в теге сервера. Затем в коде программной части можно установить свойство href для элемента link, на основе значения cookie, строки запроса, дата и т. д.

В файле aspx:



И в код позади:

protected void Page_Load(object sender, EventArgs e) {
  string stylesheetAddress = // logic to determine stylesheet
  linkStyles.Href = stylesheetAddress;
}
Комментарии (1)

Вы должны смотреть на `ASP.NET тем, что's в точности то, что они'вновь используется для. Они также позволяют контролирует работу сальных желез, что означает дать им набор атрибутов по умолчанию.

Комментарии (0)

Я бы предложил хранить выбор стилей в сессии, так что вы Дон'т придется полагаться на ключевые строки запроса присутствует все время. Вы можете проверить сессию в page_load и добавить соответствующую ссылку стилей. Похоже, это временное/ситуации развития, так что идти с тем, что это просто и работает.

if (!String.IsNullOrEmpty(Request.QueryString["css"]))
  Session.Add("CSS",Request.QueryString["css"]);
Комментарии (0)

Я бы сделал следующее:

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

Затем в коде ASP.NET :

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

Затем, когда вы определите свои стили:

if (Request.Cookies["stylesheet"] != null) {
    // New Stylesheet
} else {
    // Default
}
Комментарии (1)