Avatar billede curriculum Nybegynder
20. januar 2007 - 05:18 Der er 6 kommentarer

Vælge dynamisk stylesheet file i et theme

Jeg vil gerne min side at vælge en css fil efter klient browseren.
F.eks. har brugeren en Firefox browser, så skal hjemmesiden vælge App_Themes/Default/Firefox.css filen, og App_Themes/Default/IE.css og bruger kører Internet Explorer.

Som er, så får jeg ikke valgt en specifik css fil ud af sidens theme. Er f.eks. 5 css filer i Default theme'et, så kommer alle 5 filer med i source koden.

Har nogen en løsning på dette problem ?
Avatar billede amite Mester
20. januar 2007 - 06:04 #1
<?

    // #### Udskift din <head>... <link type="text/css"... med dette kode ####


    if (strstr($_SERVER["HTTP_USER_AGENT"], "MSIE"))
    {
        echo ('<link type="text/css" rel="stylesheet" href="/App_Themes/Default/IE.css" title="ie stylesheet"/>');
    }
    else if (strstr($_SERVER["HTTP_USER_AGENT"], "Netscape"))
    {
        echo ('<link type="text/css" rel="stylesheet" href="/App_Themes/Default/Netscape.css" title="netscape stylesheet"/>');
    }
    else if (strstr($_SERVER["HTTP_USER_AGENT"], "Opera"))
    {
        echo ('<link type="text/css" rel="stylesheet" href="/App_Themes/Default/Opera.css" title="opera stylesheet"/>');
    }
    else if (strstr($_SERVER["HTTP_USER_AGENT"], "Firefox"))
    {
        echo ('<link type="text/css" rel="stylesheet" href="/App_Themes/Default/Firefox.css" title="firefox stylesheet"/>');
    }
    else
    {
        echo ('<link type="text/css" rel="stylesheet" href="/App_Themes/Default/standard.css" title="standard stylesheet"/>');
    }
?>
Avatar billede amite Mester
20. januar 2007 - 06:04 #2
Det er i øvrigt PHP (hvis du skulle være i tvivl :p
Avatar billede amite Mester
20. januar 2007 - 06:41 #3
Hov, ser lige at dette spørgsmål var under .NET, doh!

...nåh....2 sekunder....
Avatar billede amite Mester
20. januar 2007 - 06:52 #4
Ok....så får du den i .NET (og array baseret, bare for at lave det anderledes)


<%@ Language=C# %>

<%
  string StyleSheetPath1 = "<link type=\"text/css\" rel=\"stylesheet\" href=\"/App_Themes/Default/";
  string StyleSheetPath3 = ".css\" title=\"";
  string StyleSheetPath5 = "\"/>";
 
  string[] AllBrowsers = new string[4];
 
  AllBrowsers[0] = "Firefox";
  AllBrowsers[1] = "MSIE";
  AllBrowsers[2] = "Opera";
  AllBrowsers[3] = "Netscape";
 
  string browseragent = Request.UserAgent;
 
    foreach (string currentbrowser in AllBrowsers)
    {
      if (browseragent.IndexOf(currentbrowser) > -1)
      {
        Response.Write(StyleSheetPath1 + currentbrowser + StyleSheetPath3 + currentbrowser + StyleSheetPath5);
      }
    }
%>
Avatar billede amite Mester
20. januar 2007 - 06:58 #5
Bør nok lige tilføje:

+ "\r\n"

til outputet, så den linebreaker, blot for god ordens skyld, som følger:

Response.Write(StyleSheetPath1 + currentbrowser + StyleSheetPath3 + currentbrowser + StyleSheetPath5 + "\r\n");
Avatar billede curriculum Nybegynder
20. januar 2007 - 19:13 #6
Den fungerer ikke når man bruger Themes. Den skriver kun en ny linie til source koden..
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester