Siden er opdateret 29. 11. 2009
Denne side koden, hvormed man med et asp-script og en håndfuld links kan ændre en sides design. Da css-skiftet sker fra serveren, virker det selvfølgelig i alle browsere.
Da serveren, hvorpå hjemmesideskolen ligger, ikke understøtter asp, kan jeg desværre ikke vise skiftet i praksis. Men jeg kan garantere for, at det er gennemtestet. Du vil ganske vist kunne se et designskifte ved at klikke i menuen, men det er altså lavet i php!
Først skal der i dokumentet - over linket til css - indsættes dette asp-script:
<%
' Hent brugervalgt style-info hvis defineret
strStyle = Trim("" & Request.QueryString("style"))
' Hvis intet brugervalgt style-info defineret
If strStyle = "" Then
' Hent style-info fra cookie
strStyle = Trim("" & Request.Cookies("aspdesignskifte")("style"))
End If
Select Case strStyle
Case "main.css", "ds2.css", "ds3.css"
' Ingen ændring
Case Else
' Hvis style ikke er brugerdefineret eller fundet i cookie, indsæt default css
strStyle = "main.css"
End Select
' style-info lagres i cookie
Response.Cookies("aspdesignskifte")("style") = strStyle
Response.Cookies("aspdesignskifte").Expires = Date+30
%>
I næstsidste kodelinje i select-delen definererer du den css, som skal benyttes, hvis der ikke i linket til siden eller i cookie er specifiseret noget andet.
Derefter skal du lave en modifikation af sidens kald til eksternt stylesheet - brug af indlejret stylesheet eller inline-css kan ikke anbefales, da det vil modvirke forsøg på at ændre sidens design:
<link href="<%= Server.HTMLencode(strStyle)%>" rel="stylesheet" type="text/css">
Nu mangler du bare at lave en håndfuld links den samme side, men med forskellige styles indlæst:
<a href="?style=ds2.css">Alternativt design 2</a>
I linket i kodeboksen her over indsætter du det ønskede css-ark på pladsen, hvor teksten er sort. Samtidig skriver du den ønskede linktekst inden linkets sluttag. Husk også at sørge for, at det angivne css er nævnt i case-sætningen - anden linje i select-delen.
Se den side, hvor skiftet er lavet med javascript.
Se den side, hvor skiftet er lavet med php-kode.
Se den side, som kun virker i Firefox, Mozilla, Netscape og Opera.
Bemærk, at de to teknikker (serverside-styret css-skift og css-skift via en browserfunktion) ikke er glade for at arbejde sammen.