Tweakers.net remake
Vorige maand kwam ik op het idee om de site van Tweakers.net te herschrijven in XHTML en CSS, om verschillende redenenen, waaronder het testen van mijn vaardigheden, een opvallende status van Tweakers.net binnen de mark-up-weblog-community, en vanwege het nut dat zo'n grote site als voorbeeldfunctie heeft.
Hierop ben ik meteen begonnen met de code bestuderen, waarbij ik flink werd belemmerd door de JavaScript-code: er was nauwelijks HTML-code... Na de site allereerst HTML 4.01-valid te maken ben ik from scratch herbegonnen, om vervolgens zelf de mark-up samen te stellen. Dat ging véél vlotter dan het herschrijven, en als spoedig kon ik alle data verwerken in het ontwerp van HTML-code.
Toen ik een correcte samenstelling had van HTML-code kon ik aan de slag met CSS. Eerst de site ingedeeld in vakken, om de positionering te verzorgen. Vervolgens per sectie aan de slag gegaan met de layout, waarbij ik alle andere div
's op display: hidden;
instelde. Het algemene beeld terugkrijgen ging redelijk vlot, waardoor in de perfectionering het meeste tijd ging steken.
Een aantal punten die belangrijke aandacht hebben gekregen waren de koppen van de Update-tracker, waarvoor ik de zogenaamde Fahrner Image Replacement heb gebruikt. Een tweede punt waren de spacers die werden gebruikt tussen de inleidende paragrafen van artikelen, waar een plaatje werd gebruikt. Het is me gelukt om dat met de hiervoor bedoelde <hr />
-tag eenzelfde effect te bereiken. De uitklapbare menuutjes zijn de derde: in Mozilla werken ze op puur CSS, maar in Internet Explorer moest er ook nog DHTML/JavaScript aan te pas komen. Toch is het bij slechts enkele regels JavaScript gebleven (twéé, om precies te zijn).
Al met al is het erg leerzaam geweest voor mij, en ik hoop dat het voor anderen zo mogelijk nog leerzamer kan zijn.
XHTML
De elementen zijn op basis van betekenis gekozen, waardoor bijvoorbeeld <h2>Nieuws</h2>
werd verkozen boven <div class='b2'>Nieuws</div>
.
Er zijn ordered lists gebruikt voor lijsten (update-, meuktracker) waar de volgorde op basis van tijd was.
Omdat Mozilla nog geen onderstueening voor <colgroup> biedt, heb ik bij twee van de drie kolommen van de headlines-tabel voor td
-elementen class="tijd"
en class="reacties"
gebruikt.
div
-elementen zijn alleen gebruikt voor 'sections' binnen dit document, nergens ter vervanging van bestaande elementen, of als loos element om een bepaald effect te bereiken.
Ben je het niet eens met gebruik van elementen? Laat het weten!
JavaScript
Waar eerst JavaScript werd gebruikt om HTML te genereren (mogelijk om bandbreedte te besparen, maar als soortement van template kan het ook gezien worden) wordt met PHP direct de mark-up gegenereerd. Hierdoor zijn de externe JavaScripts x/misc.js.dsp
(24Kb) en x/j.js.dsp
(33Kb) overbodig.
Het enige effect waarvoor JavaScript is gebruikt wordt via de officeuze CSS-property behavior
aangeroepen bij listitems van de menu's, omdat Internet Explorer het :hover
-pseudo-element zéér gebrekkig ondersteunt.
CSS
Plaatjes om border-effecten te creëeren, worden uiteraard omgezet naar de CSS-property border
. Verder valt er weinig over te zeggen, omdat het gebruik van CSS voor layout volledig is, maar da's logisch
. Op speciale elementen en gebruik van CSS zal ik later in dit topic ingaan.
Er zijn natuurlijk veel effecten bereikt met CSS, maar die kan ik natuurlijk onmogelijk allemaal behandelen. Bekijk de code, en als je over een specifiek onderdeel vragen hebt: stel ze.
doel van dit topic
- uitleggen wat, waarom en hoe ik dit heb gedaan met XHTML en CSS.
- evangeliseren van XHTML 1.1 strict, CSS 2.1 en Mozilla
- reacties op het pagina zelf (waaronder debuggen)
- eye-opener voor mensen die nog niet met CSS werken (zie 2)
Omdat ik dit niet allemaal in de start-post kwijt wil: bekijk de site (code, voornamelijk), als je vragen hebt: stel ze, daar is dit topic voor. Als er interesse voor is zal ik enkele onderdelen uitlichten, en vertellen hoe ik dat met CSS heb bereikt.
Als op-één-na-laatste: dit ontwerp is alleen een losse pagina, het is heel realistisch dat dergelijke code gebruikt zal worden: let alleen maar eens op de besparing van (24 + 33 = ) 57Kb op JavaScripts scheelt heel wat. Bovendien is deze cleane en overzichtelijke code makkelijk in onderhoud.
Remember: dit is allemaal XHTML 1.1 strict valid, er zijn geen tabellen gebruikt, het werkt goed in IE5.01, IE5.5, IE6.0, Mozilla Firebird, etcetera. Met goed gebruik van HTML, CSS, JavaScript en gezond verstand kun je óók sites van dit formaat bouwen. Of: juist zulke sites.
De Link
Niet geheel onbelangrijk: hier staat hij dus
http://www.letselplein.nl/~exemplarisch/tweakers/frontpage.html
[ Voor 104% gewijzigd door crisp op 24-11-2003 22:02 ]