Question

Je travaille sur un site Web qui passera à un nouveau style à une date fixée.Le site est construit en HTML et CSS sémantiques, le changement ne devrait donc nécessiter qu'un changement de référence CSS.Je travaille avec un concepteur qui devra être en mesure de voir à quoi il ressemble, ainsi qu'un client qui devra pouvoir examiner les mises à jour du contenu dans l'apparence actuelle ainsi que les progrès de conception sur la nouvelle apparence.

Je prévois d'utiliser une valeur de chaîne de requête magique et/ou un lien javascript dans le pied de page qui écrit un cookie pour sélectionner la nouvelle page CSS.Nous travaillons dans ASP.NET 3.5.Des recommandations ?

Je dois mentionner que nous utilisons les commentaires conditionnels IE pour la prise en charge d'IE8, 7 et 6.Je peux créer une fonction qui effectue un remplacement :

<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]-->
Était-ce utile?

La solution

Dans Asp.net 3.5, vous devriez pouvoir configurer la balise Link dans l'en-tête en tant que balise de serveur.Ensuite, dans le code-behind, vous pouvez définir la propriété href pour l'élément de lien, en fonction d'une valeur de cookie, d'une chaîne de requête, d'une date, etc.

Dans votre fichier aspx :

<head>
  <link id="linkStyles" rel="stylesheet" type="text/css" runat="server" />
</head>

Et dans le code derrière :

protected void Page_Load(object sender, EventArgs e) {
  string stylesheetAddress = // logic to determine stylesheet
  linkStyles.Href = stylesheetAddress;
}

Autres conseils

Tu devrais examiner ASP.NET thèmes, c’est exactement à cela qu’ils servent.Ils vous permettent également de personnaliser les contrôles, ce qui signifie leur attribuer un ensemble d'attributs par défaut.

Je suggérerais de stocker la sélection de feuille de style dans la session afin que vous n'ayez pas à compter sur la clé de chaîne de requête présente à tout moment.Vous pouvez vérifier la session dans Page_Load et ajouter la référence de feuille de style appropriée.Il semble qu'il s'agisse d'une situation temporaire/de développement, alors optez pour ce qui est facile et qui fonctionne.

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

Je ferais ce qui suit :

www.website.com/?stylesheet=new.css

Puis dans votre code ASP.NET :

if (Request.Querystring["stylesheet"] != null) {
    Response.Cookies["stylesheet"].Value = Request.QueryString["stylesheet"];
    Response.Redirect(<Current Page>);
}

Ensuite, où vous définissez vos feuilles de style :

if (Request.Cookies["stylesheet"] != null) {
    // New Stylesheet
} else {
    // Default
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top