Сведения о вопросе

Drake

16:03, 1st July, 2020

Теги

javascript   html   asp.net   css    

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

Просмотров: 503   Ответов: 4

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

Я планирую использовать значение magic 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]-->



  Сведения об ответе

prince

18:03, 1st July, 2020

В Asp.net 3.5 вы должны иметь возможность настроить тег ссылки в заголовке в качестве тега сервера. Затем в 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;
}


  Сведения об ответе

JUST___

18:03, 1st July, 2020

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


  Сведения об ответе

9090

18:03, 1st July, 2020

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

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


  Сведения об ответе

padenie

18:03, 1st July, 2020

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

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
}


Ответить на вопрос

Чтобы ответить на вопрос вам нужно войти в систему или зарегистрироваться