Tarttisin sellaisen koodin, jonka kanssa voisi vaihtaa sivun ulkoasu.
Vastaavan kuin http://habbotaivas.co.cc
Tietääkös kukaan miten tälläinen tehdään?
PHP:lla vaikkapa näin:
Mieluummin evästeillä.
Jos haluaa tehdä sellaisen systeemin, jossa ulkoasu vaihtuu saman tien lataamatta sivua uudelleen, niin yksi helpoimmista on tehdä yksi CSS-tiedosto ja vaihdella JavaScriptin voimin body-elementin ID-arvoa. CSS-tiedostossa on sitten juuri-ID:n kautta määritelty eriväriset tai -muotoiset teemat. Toki PHP:n avuin kannattaa tarjota toimivuus myös JS-tuen puuttumisen varalta, ja PHP:n kautta saa paremmin hoidettua oikean tyylin valinnan per sivunlataus.
Headeriin määritykset:
<link rel="stylesheet" ... />
<link rel="alternate stylesheet" ... />
Painikkseeseen:
onClick="setActiveStyleSheet('nimitys');
Alternate stylesheet -linkkitagi mahdollistaa myös tyylin vaihtamisen selaimen Näytä -valikosta (paitsi IE:llä muistaakseni). En tosin ole ihan varma, kuinka tämä asetus säilyy, eli vaihtuuko tyyli takaisin heti seuraavalla sivunlatauksella. Kellään infoa tästä?
GimPeltzi kirjoitti:
En tosin ole ihan varma, kuinka tämä asetus säilyy, eli vaihtuuko tyyli takaisin heti seuraavalla sivunlatauksella. Kellään infoa tästä?
Loogisesti ajateltuna tyylit eivät säilyisi sivulatausten välillä.
Lebe80 kirjoitti:
GimPeltzi kirjoitti:
En tosin ole ihan varma, kuinka tämä asetus säilyy, eli vaihtuuko tyyli takaisin heti seuraavalla sivunlatauksella. Kellään infoa tästä?
Loogisesti ajateltuna tyylit eivät säilyisi sivulatausten välillä.
Mjoo mut oon nähnyt sivuja, joissa se asetus säilyy. Näköjään tuo aloitusviestissä mainittu sivu edustaa juuri tätä sarjaa. Mitenköhän tämä on käytännössä toteutettu?
olikohan toteutettu evästeillä ja palvelinpään ohjelmoinnilla.
Jos pelkällä javascriptillä haluaa ton keksitallennuksen tehdä, niin onnistuu vaikka näillä funktioilla:
function changeStyle(name) { var tmp = document.getElementsByTagName('link')[0].href = name+".css"; document.cookie = "style="+name; } function getCookie() { var tmp = document.cookie.split('='); var tmp = document.getElementsByTagName('link')[0].href = tmp[1]+".css"; }
Sitten vielä lisäksi linkkeihin
<a href="#" onclick="changeStyle('tyyli1')">tyyli1</a>
ja bodyyn
<body onload="getCookie()">
Aihe on jo aika vanha, joten et voi enää vastata siihen.