Vervolg!
@A Search en Skipito: dank voor de loftrompetten. Ik vind het heel leuk (als ik tijd ervoor heb: nu even wel) om html/css-mogelijkheden te laten zien aan de hand van een voorbeeld uit de levende praktijk. Wat ik ontdekt heb, komt ook voor 75% van internet (de rest is experimenteren) - zo doe ik weer eens wat terug.
Ik was nog even bezig met wat finishing touch, want ik zag nog wat dingetjes die verbeterd kunnen worden.
In m'n testpagina werden voor de css-hovers
5 plaatjes gebruikt. Met de zogenaamde "css-sprite" techniek (
artikeltje en
voorbeeld in de praktijk) kan het er ook
één zijn. Dit werkt als volgt:
- Je maakt één plaatje waar alle hovers tegelijk in zitten. Wat niet afwijkt van de normale kleuren, wordt transparant gemaakt (dat scheelt weer een aantal kB's). Daarvoor is een transparante gif gebruikt. Deze.
- Met css rangeer je de verschillende onderdelen naar hun positie. Het hover-plaatje wordt als achtergrond-img van de links in het plaatje gebruikt, dan valt bij een bepaalde link alles weg wat buiten het link-oppervlak zit. Het link-oppervlak werkt hier als een patrijspoort, waardoor je naar (een deel van) de achtergrond-img kijkt. Zie ook artikeltje: De patrijspoort-theorie.
- Overigens heb ik het link-oppervlak steeds wat groter dan het hover-plaatje gemaakt, dan is het voor de bezoeker makkelijker om bij een link te komen. Screenshotje met de hover-oppervlakken. Daarbinnen dus het rangeren met de background-posities (makkelijkste methode: proefondervindelijk in de browser bepalen, dan op de pixel precies uit te mikken).
Nu hebben we dus nog maar 4 bestandjes: de html, het css-stylesheet, en de twee images (normaal/hover).
- Om geen wachttijd te hebben als je de eerste keer over iets hovert (bij de volgende hovers is het ene hoverplaatje al gedownload!), is het hover-img al meteen bij het laden van de pagina onzichtbaar binnengehaald. D.w.z. een "css-preload", door het hover-plaatje als "buiten beeld vallend achtergond-img" in te monteren in de <ul> van het rijtje links in de #content; zie stylesheet.
Al met al is de pagina enorm veel sneller geworden! Dit was 'm:
(Daar zitten de javascript mouseover-images nog niet bij, want die kan dit tooltje niet zien.)
En dit is 'm geworden:
Verder met
a:focus en
a:active in het stylesheet nog even in orde gemaakt dat je ook met alleen de tab-toets (gevolgd door Enter) de links in het plaatje kan bedienen. Zo is de pagina ook mooi toegankelijk voor mensen die geen muis kunnen hanteren. Test een willekeurige internet-pagina: leg de muis op z'n kop, en druk steeds de tab-toets in. See what happens! Als je geen verspringende links op het scherm ziet, is de pagina zonder muis niet te bedienen. Terwijl dat toch zo makkelijk zo te maken is...
Kortom:
Nu de vragen!
Is dit gewoon uit het hoofd gemaakt of met een programma?
Ik ben al een jaar of 6/7 met css aan het pielen, en kwam tot de conclusie: tegen zelf coderen kan geen programma op. Daarom rechtstreeks in de broncode gemaakt. Vroeger wel eens FrontPage gebruikt, maar met een grote boog weggegooid; nooit een html-editor gekocht: lekker goedkoop ook.
Mijn programma heet: Kladblok! :d
D.w.z. de betere versie
Notepad++.
www.am-plaza.com/alleswerkend Als u hier bijvoorbeeld over ''contact'' heen gaat in het menu ziet u dat het plaatje in de kamer gaat gloeien. Dit is een verbetering ten opzichte van ''or move your mouse over'' etc.
Ik neem aan dat dit mogelijk is in CSS toch? Daarvoor heb je wel Javascript nodig? Ach anders skip ik dit idee gewoon.
Ja, dat kan met javascript, maar het kan ook met css.

Dat is dan een andere css-hover techniek, waarmee je iets op een willekeurig plek kunt laten verschijnen als je over een link gaat. Dit is bedacht door
Eric Meyer, één van de oer-guru's van css:
In het tweede voorbeeld zijn het geen aanklikbare links, maar die zijn er gauw van gemaakt (zie broncode). Bij beide voorbeelden staan de plaatjes steeds op dezelfde plaats, maar ook dat is te verhelpen: alweer met css-positionering (in dit geval: van de <span>).
Zo zie je maar weer: met css kan (bijna) alles! :love:
Met vriendelijke groet,
CSShunter
O ja, nog een tip uit de fotografie/schilderswereld: op het platte vlak lijken dingen dichterbij als ze lichter zijn. Bij hovers moet het voorwerp er uit springen, dus maak je het lichter, dan komt het naar voren. Met een donkere hover druk je iets naar achteren.