Frågan 14 mars 2006 17:16 #1 Hej! Jag har byggt min hemsida genom en css mall och undrar om man kan göra flera mallar och så låta användarna själv välja färgtema på hemsidan?
Hur ser i så fall koden ut för att "anropa" rätt mall när man vill ändra temat?
Jag använder mig av asp sidor.
Visste inte vart jag skulle lägga denna posten (css eller asp), så jag ber om ursäkt om detta är fel ställe!
W wborg Medlem sedan dec. 2003 209 inlägg Skapa en sida default.asp med koden nedan:
<html>
<head>
<title></title>
<link rel="stylesheet" href="css/<%=Request.Cookies("farg") %>.css" type="text/css">
</head>
<% If Request.Cookies("farg") = "" Then
Response.Cookies("farg")= "bla"
Else
If Request.Querystring("val") = "bla" Then
Response.Cookies("farg")= "bla"
ElseIf Request.Querystring("val") = "gron" Then
Response.Cookies("farg")= "gron"
End If
Response.Cookies("farg").Expires = DateAdd("yyyy",1,Date)
End If%>
<body>
<a href="default.asp?val=bla">BLÅ</a>
<a href="default.asp?val=gron">GRÖN</a>
</body>
</html>
sen skapar du sidan bla.css med följande kod:
BODY {
background-color: #4210C6;
}
och sidan gron.css med följande kod:
BODY {
background-color: #146C8A;
}
css filerna lägger du i en mapp som du döper till css om du vill följa mitt exempel.
Hoppas det hjälpte
/S
Takk! Men det funkar sådär.. När man kommer in första gången på sidan så anropas ingen cookie så hela sidan ser konstig ut (eftersom hela designet är uppbyggd i css). Sen när jag väljer "Blå" eller "Grön" kommer designet fram. Om jag vill ändra till den andra färgen som inte är vald, måste jag trycka två gånger på länken för att det skall byta färg.. "blå" tema kommer fram vid första besök, om man trycker uppdatera sidan en gång, så det är samma problem som med länkarna.
Du måste lägga If Request.Cookies("farg") = "" Then
Response.Cookies("farg")= "bla" före själva css filen:
<html>
<head>
<title></title>
<% If Request.Cookies("farg") = "" Then
Response.Cookies("farg")= "bla"
Else
If Request.Querystring("val") = "bla" Then
Response.Cookies("farg")= "bla"
ElseIf Request.Querystring("val") = "gron" Then
Response.Cookies("farg")= "gron"
End If
Response.Cookies("farg").Expires = DateAdd("yyyy",1,Date)
End If%>
<link rel="stylesheet" href="css/<%=Request.Cookies("farg") %>.css" type="text/css">
</head>
<body>
<a href="default.asp?val=bla">BLÅ</a>
<a href="default.asp?val=gron">GRÖN</a>
</body>
</html>
Great! Det fungade!
Nu en liten följdfråga: Hur ser koden ut om jag vill länka till en css fil til? Jag har en css fil med textformateringar i en sep. fil nämligen.
lägg bara till en elseif sats till... eller ännu bättre en Case sats.
Hmm... Elseif? men det skal anropas två st. css filer samtidigt (en för layouten och en för texten), funkar det då med elseif sats? Är inte helt hundra på vad som menas med case sats?
W wborg Medlem sedan dec. 2003 209 inlägg Haha sorry missade att jag skrev ASP kodenpå fel ställe, det var riktigt klantigt av mig men det löste sig ju i alla fall ;)
/S
W wborg Medlem sedan dec. 2003 209 inlägg Så här kanske??
<html>
<head>
<title></title>
<% If Request.Cookies("farg") = "" Then
Response.Cookies("farg")= "bla"
Response.Cookies("text")= "blatext"
Else
If Request.Querystring("val") = "bla" Then
Response.Cookies("farg")= "bla"
Response.Cookies("text")= "blatext"
ElseIf Request.Querystring("val") = "gron" Then
Response.Cookies("farg")= "gron"
Response.Cookies("text")= "grontext"
End If
Response.Cookies("farg").Expires = DateAdd("yyyy",1,Date)
End If%>
<link rel="stylesheet" href="css/<%=Request.Cookies("farg") %>.css" type="text/css">
<link rel="stylesheet" href="css/<%=Request.Cookies("text") %>.css" type="text/css">
</head>
<body>
<a href="default.asp?val=bla">BLÅ</a>
<a href="default.asp?val=gron">GRÖN</a>
</body>
</html>
/S
GÖTT mos!! Vad kul, tack så jättemycket för er hjälp! :D