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

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

Я планирую использовать магическое значение строки запроса и / или ссылку 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]-->
7.08.2008 18:31:22
4 ОТВЕТА
РЕШЕНИЕ

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

В вашем файле 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;
}
20
8.08.2008 06:32:23
Спасибо, не думал об этом, но .NET не очень хорошо играл с этим: <link rel = "stylesheet" href = "/ style.css <% = VersionQueryString%>" type = "text / css" />
Aaron 22.05.2009 15:54:02

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

if (!String.IsNullOrEmpty(Request.QueryString["css"]))
  Session.Add("CSS",Request.QueryString["css"]);
2
7.08.2008 18:56:47

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

6
23.02.2017 10:28:09

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

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
}
-2
7.08.2008 19:02:00
что вы делаете, когда пользователь переходит на другую страницу? приходит с внешней ссылки?
Jason 3.04.2009 23:17:00