Voortgezet onderwijs  
ThinkQuest Jr Webplek
Hoe maak je een... Instelbare website

Gepubliceerd op 6 december 2006

webplektq_instelbaar Toepassing
Door je website te laten aanpassen door de bezoekers naargelang hun wensen, kun je hen persoonlijker ontvangen. Aanpassingen die je website beter geschikt maken voor uiteenlopende computers kun je beter automatisch doen want veel bezoekers hebben geen zin om dit zelf in te stellen. Maar soms valt over smaak niet te twisten..

Gerelateerde kennis:

Opmaak met CSS (Hoe maak je een..)
Lay-out met CSS (Hoe maak je een..)
Opslag van gegevens met cookies (Hoe maak je een..)

Aanpasbare onderdelen van je website kunnen zijn:
  • Lettergrootte (denk bijvoorbeeld aan mensen die slecht kunnen lezen)
  • Contrast (voor slechtzienden)
  • Achtergrondkleuren, titelplaatjes etc. (de bezoeker de website naar smaak kunnen inrichten)
  • De gehele lay-out (vaak worden dit thema’s genoemd. Bezoekers kiezen een uiterlijk die bij hen past)
Merk op dat al deze voorbeelden grafische aanpassingen zijn. Het betreft dus steeds de opmaak of lay-out van een webpagina ofwel de CSS code (zie bovengenoemde artikelen). Je website laten aanpassen betekent dus vaak de CSS-opmaak aan laten passen.

Er zijn globaal drie manieren om de bezoeker de macht (gedeeltelijk) in handen te geven:
  1. Met PHP
  2. Met Javascript, diverse voorbereide CSS bestanden en cookies  (de  <link rel=”alternate stylesheet”> methode)
  3. Met Javascript,diverse voorbereide CSS ‘classes’ in één CSS bestand en cookies
De laatste methode is technisch het meest geävanceerd maar ook het beste. De tweede is het simpelste, vereist geen PHP mogelijkheden en is het overzichtelijkst. De methode met PHP is niet al te overzichtelijk en is meestal niet aan te raden.

1. Aanpassingen door gebruikers via serverside scripts als PHP
De ThinkQuest website Workweb maakt gebruikt van deze methode om rechtsonder de achtergrond in te stellen.

Deze methode werkt vrij simpel: aan een (PHP) script wordt een variabele meegegeven die een bepaalde instelling vertegenwoordigt. In het voorbeeld bijvoorbeeld ‘maincolor=kleurcode’. Tijdens het genereren van de webpagina plaatst het PHP script deze variabele op de juiste plaats. In het voorbeeld: .

Voordelen:  

  • Geen ingewikkelde client-side Javascripts vereist
Nadelen:

  • Onoverzichtelijke menging tussen structuur en opmaak
  • Problematische onthouding van instellingen (deze moeten steeds als variabelen worden doorgegeven aan pagina’s of scripts – let op ‘?maincolor=88888888’ in het voorbeeld)

Bekijk hier Workweb

2. Aanpassingen door gebruikers met Javascript, diverse voorbereide CSS bestanden en cookies
Deze methode maakt gebruik van de mogelijkheid alternatieve (CSS) stylesheets te bieden. Deze worden dan geselecteerd met behulp van een Javascriptfunctie.
Bekijk hier een voorbeeld van deze methode
Download hier de broncode [HTML 2 Kb ]

Standaardopmaak
De altervatieve CSS bestanden staan in het HTML bestand (‘methode2.html’) vernoemd naast de standaard opmaak:


In het Javascript-bestand ‘verander_opmaak.js’ selecteert de functie ‘activeerStyleSheet(‘naam’)’ een van deze alternatieve stylesheets door met enkele DOM methoden (zie Basiscursus Javascript en D.O.M.) langs de tags te gaan en de stylesheet met de opgegeven ‘naam’ aan te zetten (disable = false) en de rest uit te schakelen (disable = true):


Voorbeeld
In het voorbeeld worden de instellingen ook opgeslagen in een cookie (zie Opslag van gegevens met cookies )

LET OP: opmaak die niet geherdefininiëerd wordt in een van de altervatieve stylesheets blijft zoals gedefiniëerd in de standaard opmaak (‘standaardopmaak.css’).

De code van dit voorbeeld is grotendeels afkomstig uit het artikel: Power to the people: Relative font sizes door Bojan Mihelac waaruit de geneste Javascript functies “onclick=’functie’” zijn vervangen door unobstrusive event-handlers (zie Basiscursus Javascript en D.O.M.).
Power to the people: Relative font sizes door Bojan Mihelac

Voordelen
  • Geheel ‘client-side’, geen serverscripts vereist
  • ‘Alternate Stylesheet’ is volgens W3C aanbevelingen – zie

http://www.w3.org/TR/html4/present/styles.html

Nadelen
  • Per style is een apart CSS bestand vereist


3. Met Javascript, diverse voorbereide CSS ‘classes’ in één CSS bestand en cookies
Deze methode is geïntroduceerd door Andy Clarke en James Edwards in het artikel ‘Invasion of the Body Switchers’.
‘Invasion of the Body Switchers’
Bekijk hier een simpele toepassing
Download de bronbestanden [HTML 3 Kb ]

Je kunt hun methode makkelijk inzetten voor je eigen website:
1. Introduceer in het ‘iobts.js’ bestand je verschillende stijlen. Bijvoorbeeld:

screenSwitcher.defineClass(groteletters, Grote letters);

2. Definieer in het CSS opmaakbestand ‘iotbs.css’ de verschillende stijl ‘classes’. Bijvoorbeeld:

body.groteletters  { color : #000; font-size : 110%; }

Voor meer uitleg kun je het originele artikel bezoeken:
http://alistapart.com/articles/bodyswitchers

Meer toepassingen:
In het artikel ‘Switchy McLayout: An Adaptive Layout Technique’ wordt de Bodyswitchers methode gebruikt om het probleem van verschillende beeldschermresoluties op te lossen:
Switchy McLayout: An Adaptive Layout Technique