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

голоса
23

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

Я планирую использовать магическое значение строки запроса и / или яваскрипт ссылку в сноске, который выписывает печенье, чтобы выбрать новую страницу 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]-->
Задан 07/08/2008 в 19:31
источник пользователем
На других языках...                            


4 ответов

голоса
14

В ASP.NET 3.5, вы должны быть в состоянии установить тег Link в заголовке в качестве тега сервера. Затем в коде вы можете установить 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;
}
Ответил 07/08/2008 в 20:00
источник пользователем

голоса
5

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

Ответил 07/08/2008 в 20:01
источник пользователем

голоса
1

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

if (!String.IsNullOrEmpty(Request.QueryString["css"]))
  Session.Add("CSS",Request.QueryString["css"]);
Ответил 07/08/2008 в 19:56
источник пользователем

голоса
-3

Я хотел бы сделать следующее:

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
}
Ответил 07/08/2008 в 20:02
источник пользователем

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more