Avatar billede jensrrasmussen Juniormester
26. marts 2014 - 14:47 Der er 5 kommentarer og
1 løsning

Dynamisk ændring af CSS

Hej eksperter/

Jeg skriver i Classic ASP og bruger Access-databaser.

Jeg har en css-fil, kaldet cultwineformatering.css, som bl.a. indeholder besked om hvilket baggrundbillede mine hjemmesider skal bruge:
body {background-image:url("cultwinebilleder/foraarsvinmark.jpg"); color:black;  }

I mine asp-dokumenter linker jeg til css-filen i headeren med: <link rel="stylesheet" type="text/css" href="cultwineformatering.css" />

Nu skal (et fåtal af) personer have lov til at ændre baggrundbilledet, og da de ikke er edb-kyndige, vil jeg godt lave en asp-side, hvor de kan uploade et nyt billede og skrive dets navn i min access-database.

Jeg kan godt finde ud af (tror jeg) at lave en sådan asp-side - men hvordan får jeg ændringen indført i mit css-dokument? For jeg kan da vist ikke fra css-dokumentet slå op i databasen og hente det nye navn, som skal erstatte foraarsvinmark.asp vel?

Altså er mit spørgsmål: Hvordan kan jeg sætte dette op så CSS-dokumentet automatisk henter linjen om baggrundsbillede fra access-databasen?

mvh.

  /jens
Avatar billede keysersoze Guru
26. marts 2014 - 15:13 #1
lav din css-fil om til en asp-fil og indsæt dit database-opslag, sæt content-type til text/css og ændre linket i dit link-tag fra .css til .asp.
Avatar billede keysersoze Guru
26. marts 2014 - 15:14 #2
Er der i øvrigt nogen grund til at vælge et så gammel sprog som ASP fremfor noget mere nutidigt, fx ASP.NET?
Avatar billede jensrrasmussen Juniormester
26. marts 2014 - 17:11 #3
Tak for det gode råd, det lyder helt rigtigt. Jeg må dog have lidt mere hjælp, for min formatering er røget, med det jeg har gjort. Og hvad gjorde jeg så?

1) omdøbte formatering.css til formatering.asp

2) Erstattede alle css-kommentartegn med html-kommentartegn (altså /* erstattet med <!-- og */ med -->)

3) Tilføjede i starten:
<%@ LANGUAGE=VBScript %>
<% Option Explicit %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="da">

<head>
    <meta http-equiv="Content-Type" content="text/css; charset=ISO-8859-1" />
    <title>datamodtagelse28</title>
</head>

<body>

4) tilføjede til slut
</body>
</html>

5) Og satte databaseopslaget i starten af body for at fange baggrundbilledet (hvilket dokumentet også gør ved en kontroludskrift.)

Så tog jeg et af de gamle dokumenter og ændrede alene i headeren
fra
<link rel="stylesheet" type="text/css" href="cultwineformatering.css" />

til
<link rel="stylesheet" type="text/css" href="cultwineformatering.asp" />

Og som sagt er al min formatering forsvundet: Indholdet er der, men skrevet under hinanden uden det normale layout, som det gamle css-dokument sørgede for.

Så jeg må have gjort et eller andet forkert.

kan du se hvad?

mvh.
  /Jens
Avatar billede keysersoze Guru
26. marts 2014 - 18:24 #4
3 og 4 har kun noget med HTML at gøre, det har ikke noget med din CSS at gøre så det skal du fjerne igen. Resultatet på klienten skulle gerne være præcis det samme som tidligere bortset fra at filendelsen er noget andet. Det kan du validere ved at skrive stien til din fil direkte i browseren eller med din developer toolbar - http://www.web-dev.dk/post/2012/06/17/Bliv-en-hurtigere-webudvikler-med-browservc3a6rktc3b8jer.aspx

Du mangler også stadig at sætte content-type; Response.Contenttype = "text/css"
Avatar billede jensrrasmussen Juniormester
27. marts 2014 - 00:40 #5
Tusind tak. Nu virker det. Du har været en stor hjælp, og er dine point værd.

Jeg forstår ikke rigtigt det med
Response.Contenttype = "text/css"

men det virker :-)

mvh.
  /jens
Avatar billede keysersoze Guru
27. marts 2014 - 08:02 #6
hvis du ikke sætter en contenttype på er det et asp og ikke css dokument der serveres til klienten og så er det ikke alle browsere der forstår dokumentet.
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

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