Webprogrammør

Simon Jensen

Bloggen med evigt skiftende tema!


 2

Variabler i CSS

2. Februar 2007, Kl. 18:15:27 af Simon Jensen

CSS (Cascading Style Sheets) blev i sin tid introduceret af W3C for at forbedre tilgængelighed på webben, ligesom det skulle være med til at gøre HTML mere semantisk, ved at separerer styling fra resten af HTML-koden.
I "moderne" web-design/-programmering, kommer man ikke udenom brugen af CSS - tilføj dertil et sprog til dynamisk generering af indhold og du kan komme rigtig langt. Men CSS har en mangel - variabler!

Som det er nu kan du ikke benytte variabler i CSS, hvilket efter min mening virker til at være et kæmpe hængeparti. CSS findes idag i sin 2. revision, med en 3. på tegnebordet, og med tidens trends og tendenser, som f.eks. table-less designs, kunne det virke naturligt at introducerer variabler ifm. styling, men synes det ikke at være tilfældet, hvis man læse følgende skrivelse om CSS3 Under Construction.

En Simon Willison er sågar kommet med et løsningsforslag til hvordan man, rent syntax-mæssigt, kunne få dette variabel-ønsket ind i CSS, og det virker faktisk meget fornuftigt - læs mere her.

Heldigvis findes der en løsning. Den jeg har fundet frem til, og benyttet, er i forbindelse med PHP.

Variabler i CSS vha. PHP:

<?php
    header("Content-type: text/css");
    $bgCol = "#BDE469";
   
    echo <<<EOD
   
    body {
        background-color: $bgCol;
    }
   
    EOD;
?>


Ovenstående skal selvfølgelig skrives i en .php-fil, men kan inkluderes i din <head>-sektion som en almindelig .css-fil.

<link rel="stylesheet" type="text/css" href="style.php" />


Uden selv at have prøvet det, postulerer denne side, at have en løsning for brugen af variabler i CSS i forbindelse med ASP.net.


Når man nu alligevel har sin CSS i en PHP fil, kan man også lige gå skridtet videre og enable kompression så det fylder 90% mindre :)

Starten af mit stylesheet ser således ud:

if (strpos($_SERVER['HTTP_ACCEPT_ENCODING'], 'gzip')) {
	ob_start("ob_gzhandler");
}
header("content-type: text/css; charset=iso-8859-1");

Jeg ved at Firefox henter stylesheetet hver gang, ingen caching, så det er jo rart at kompresse det.


Hmmm - det kunne der være noget om, men her kommer spørgsmålet så.

Jeg starter faktisk allerede med at komprimere, når en hvilket som helst side bliver genereret, men jeg har aldrig tænkt over, om dette også vil tage mit "PHP-extended" stylesheet med?


Skriv en kommentar






AddThis Social Bookmark Button


aalborg add on ajax akismet algoritme analyse apache arbejde automatix backup bad gastein beryl billeder blog bot brows browser business buzz cache chat cloaking cms color schemer colorpix compiz fusion crazy eggs css css zengarden design desktop applet deviantart editor error facebook falken productions farver fckeditor feed feedburner ferie firebug firefox flash flickr fokus foto gadget galleri gettext gnome gnu goat google google maps gps gracefull degredation graffiti grafik gravatar hijax hotel htaccess html ie IM install instereo intaller internet explorer internet explorer 6.0 investering ipod it itunes java javascript karneval kunst linux live search livecd meta microsoft mobil mod_rewrite mootools mozbackup mozilla msn musik mysql news omgivelser one.com ooxml opera os pear php pidgin ping pipes png podcast printer programmering projekt prototype proxy qfilm reklame reklamebureau rss screenshot script script.aculo.us seo sjov og spas skole songbird spam sponser standard standarder statistik strand svn test thunderbird tillykke tivoli top 10 twitter ubuntu udvikling validering video vinter vista w3c wallpaper web 2.0 web design web programmering webcrawler webserver windows wordpress xhtml xml xmlrpc xp yahoo youtube