Как настроить переключатель CSS
Я работаю над веб-сайтом, который переключится на новый стиль в установленную дату. Сайт построен в семантическом HTML и CSS, поэтому для изменения требуется просто изменить ссылку на CSS. Я работаю с дизайнером, которому нужно будет посмотреть, как он выглядит, а также клиенту, который должен будет иметь возможность просматривать обновления контента в текущем виде, а также прорабатывать прогресс в новом образе.
Я планирую использовать значение волшебного значения querystring и/или ссылку javascript в нижнем колонтитуле, которая выписывает cookie для выбора новой страницы CSS. Мы работаем в 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]-->
Ответы
Ответ 1
В Asp.net 3.5 вы должны установить тег Link в заголовке как тег сервера. Затем в коде можно указать свойство href для элемента ссылки, основанное на значении cookie, querystring, date и т.д.
В вашем файле 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;
}
Ответ 2
Вы должны заглянуть в темы ASP.NET
, что именно они используются. Они также позволяют вам управлять контуром, что означает предоставление им набора атрибутов по умолчанию.
Ответ 3
Я бы предложил сохранить выбор стилей в сеансе, чтобы вам не приходилось полагаться на постоянно присутствующий ключ запроса. Вы можете проверить сеанс в Page_Load и добавить соответствующую ссылку на таблицу стилей. Похоже, что это временная ситуация/развитие, поэтому идите с тем, что легко и работает.
if (!String.IsNullOrEmpty(Request.QueryString["css"]))
Session.Add("CSS",Request.QueryString["css"]);
Ответ 4
Я бы сделал следующее:
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
}