Como configurar um CSS switcher
-
08-06-2019 - |
Pergunta
Eu estou trabalhando em um site que irá mudar para um novo estilo em uma data definida.O site é construído em semântica de HTML e CSS, para que a alteração deve apenas exigir uma referência de CSS a mudança.Estou a trabalhar com um designer que vai precisa para ser capaz de ver como ele procura, bem como um cliente que terá de ser capaz de rever as atualizações de conteúdo no atual aparência, bem como a concepção de progresso sobre a nova aparência.
Eu estou planejando usar uma magia valor de querystring e / ou javascript link no rodapé que grava um cookie para selecionar a nova página CSS.Estamos trabalhando em ASP.NET 3.5.Alguma recomendação?
Devo mencionar que estamos usando o IE Comentários Condicionais para o IE8, 7 e 6 de suporte.Eu posso criar uma função que faz uma substituição:
<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]-->
Solução
No Asp.net 3.5, você deve ser capaz de definir a tag Link no cabeçalho como um servidor de marca.Em seguida, no code-behind você pode definir a href propriedade para o elemento link, com base em um valor de cookie, querystring, data, etc.
Em seu arquivo aspx:
<head>
<link id="linkStyles" rel="stylesheet" type="text/css" runat="server" />
</head>
E no Code-behind:
protected void Page_Load(object sender, EventArgs e) {
string stylesheetAddress = // logic to determine stylesheet
linkStyles.Href = stylesheetAddress;
}
Outras dicas
Você deve olhar para ASP.NET
temas, que é exatamente o que eles são usados.Eles também permitem que você para pele controles, o que significa dar-lhes um conjunto de atributos padrão.
Gostaria de sugerir armazenar a folha de estilos seleção na sessão, de modo que você não tem que confiar na querystring chave de estar presente o tempo todo.Você pode verificar a sessão no Page_Load e adicione o adequado folha de referência.Parece que este é um temporária/situação de desenvolvimento, então, vá com tudo o que é fácil e funciona.
if (!String.IsNullOrEmpty(Request.QueryString["css"]))
Session.Add("CSS",Request.QueryString["css"]);
Eu faria o seguinte:
www.website.com/?stylesheet=new.css
Em seguida, no seu ASP.NET código:
if (Request.Querystring["stylesheet"] != null) {
Response.Cookies["stylesheet"].Value = Request.QueryString["stylesheet"];
Response.Redirect(<Current Page>);
}
Então, onde você define suas folhas de estilo:
if (Request.Cookies["stylesheet"] != null) {
// New Stylesheet
} else {
// Default
}