Dynaaminen CSS PHP:n avulla
JavaScript:n kankeuden ja selainten välisten koodin tulkinnan erojen seurauksena päätin hakea vaihtoehtoisia ratkaisuja CSS-tyylien muuntamiseen dynaamisesti (dynaaminen=muuntaminen sivuston käyttämisen yhteydessä). Oma mielipiteeni on, että JavaScript-koodia tulisi välttää ainakin tämän asian kohdalla mahdollisimman pitkälle, sillä eri selaimet tulkitsevat sitä erilailla ja näin virheiden mahdollisuus kasvaa.
Ajatus PHP:n käytöstä CSS:n muuntamiseen löytyi seuraavasta dokumentista. Loppujen lopuksi dokumentista tulee huomata vain pari seikkaa ja PHP:n hyödyntäminen tyylien muokkaamiseen on mahdollista. Ensimmäiseksi käsiteltävän css-tiedoston pääte tulee muuntaa “.php” päätteiseksi (tyylit.css -> tyylit.php) ja myös HTML-koodiin tulee muistaa muuntaa tyylisivun linkitys oikeaksi:
<link rel=”stylesheet” type=”text/css” href=”tyylit.php” />
Toiseksi PHP-tyylitiedoston alkuun tulle kirjoittaa seuraava lause:
<?php header(”Content-type: text/css”); ?>
Näiden pienien muutosten jälkeen muokkaaminen on mahdollista – vain taivas on rajana. PHP-tyylitiedostolle voi siis välittää parametreja URL-muuttujan kautta (tyylit.php?tyyliId=1) ja siten saada aikaan muutoksia tyyleissä. Näin vältytään JavaScript:in kirjoittamiselta ja omat sivut toimivat varmemmin.
Kyseisen tekniikan avulla voidaan siis myös hallita selainten välisiä HTML-koodin tulkintaeroja. PHP-tyylitiedostossa voidaan nimittäin tehdä tutkimus siitä, millä selaimella sivuja luetaan ja sen mukaan muokata tyylejä sopivammaksi. Selaintunnistus tehdään PHP:lla esimerkiksi funktion “$_SERVER['HTTP_USER_AGENT']” -avulla.
Seuraavana vielä pieni koodiesimerkki kuvitellusta “tyyli.php” -tiedostosta asian selventämiseksi:
aihe: WEB-ohjelmointi
