Bien le bonsoir.

Je remercie d'avance les personnes qui prendront le temps de me lire et de m'aiguiller dans mes recherches (je ne souhaite pas avoir une réponse toute faite mais plutôt des explications, conseils ou un(des) lien(s)). Ce que je souhaite avoir c'est une feuille de style dans laquelle je peux changer la couleur (afin de ne pas avoir 50 feuilles avec comme seule différence la couleur du texte, par exemple). Après des recherches, je suis tombé sur un truc qui s'appelle handler

J'ai donc une feuille de style theme.css contenant (le |color| sert de repère pour effectuer un replace ultérieure ) :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
.texte{
    font-style: italic;
    font-size: x-large;
    font-weight: bold;
    color: |color|;
}
Je déclare donc mon handler dans le web.config :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
<configuration>
    <system.web>
      <compilation debug="true" targetFramework="4.5" />
      <httpRuntime targetFramework="4.5" />
      <httpHandlers>
        <add path="Style.axd" verb="*" validate="true" type="WebApplication.StyleHandler, WebApplication" />
      </httpHandlers>
    </system.web>
</configuration>
Une page Default.aspx
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="WebApplication.Default" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title></title>
    <link rel="stylesheet" type="text/css" href="Style.axd?css=theme.css&color=333" />
</head>
<body>
    <form id="form1" runat="server">
        <div><span><a href="#"></a></span></div>
        <div><p class="texte">Ceci est mon texte de page avec une couleur modifiée par un handler.</p></div>
    </form>
</body>
</html>
Je continu ma lecture (qui traite surtout d'images mais je me dis qu'on doit bien pouvoir faire quelque chose sur un fichier css avec un handler). Mais c'est là que je sèche
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
public class StyleHandler: IHttpHandler
    {
        public StyleHandler()
        {
 
        }
 
        public bool IsReusable
        {
            get { return true; }
        }
 
        public void ProcessRequest(HttpContext context)
        {
            string path = context.Server.MapPath("~/css/");
            string cssFile = context.Request.QueryString["css"];
 
            if (File.Exists(cssFile) == false)
                return;
 
            string cssFilePath = string.Concat(path, cssFile);
            string color = context.Request.QueryString["color"];
 
            string cssContent = File.ReadAllText(cssFilePath);
            cssContent.Replace("|color|", string.IsNullOrEmpty(color) ? "#ff6a00" : string.Concat("#", color));
 
        }
    }
A ce niveau je suis dans de beau drap car je n'ai aucune idée de comment je peux transmettre au context mon cssContent. Il y a surement quelque chose que j'ai raté, pas compris.

Donc comme je l'ai indiqué, si une personne pouvait me donner une piste pour mieux cibler mes recherches ou une explication, si cela n'est pas trop long. J'en serai ravi. Me dire, peut-être, si je me suis complètement loupé et s'il faut utiliser autre chose pour faire ce que je veux.

J'espère avoir été le plus clair possible dans ma description.

Merci.