1 Over de CSS2 Specificatie

Inhoud

1.1 Het lezen van de specificatie

Dit document is een, zoveel mogelijk letterlijke, vertaling van de originele specificatie aangaande Cascading Style Sheets (CSS2) zoals opgesteld door het World Wide Web Consortium (http://www.w3c.org). Dit document is niet officieel erkend door het W3C, en mag dus niet worden gezien als een door het W3C ingestelde norm. De originele specificatie, zoals deze te vinden is op http://www.w3.org/TR/REC-CSS2, wordt daarentegen wel gezien als de norm voor CSS2. Dit houdt niet in dat u deze tekst niet kunt gebruiken als naslagwerk bij het leren en gebruiken van CSS2.

Deze specificatie is geschreven met twee soorten lezers als doelgroep: auteurs van documenten die CSS gebruiken voor de opmaak van documenten en CSS implementoren, met impelementoren worden ontwerpers van applicaties bedoeld welke documenten, opgemaakt met CSS2, kunnen uitvoeren, bijvoorbeeld een webbrowser. Zo'n applicatie noemen we een User Agent; een proces dat voor de gebruiker de informatie ophaalt, verwerkt en weergeeft. De informatie wordt volgens de opmaak weergegeven zoals deze in de bijbehorende stijlblad(en) staat beschreven. We hopen dat de specificatie de CSS auteurs te voorzien van het juiste gereedschap om efficiënte, aantrekkelijke en toegankelijke documenten te maken, zonder overweldigd te worden met details aangaande de implementatie. Daarnaast kunnen CSS implementoren alle informatie vinden die ze nodig hebben om user agenten te maken die documenten, opgemaakt met CSS, op de juiste manier weergeven ('conforming user agents'). De specificatie begint met een algemene presentatie van CSS en wordt meer en meer technisch naarmate deze specificatie vordert. Om snel de informatie te vinden die u zoekt vindt u een korte inhoudsopgave aan het begin van iedere sectie en in Appendix H een index.

De specificatie is geschreven met twee soorten van uitvoer in gedachte, namelijk digitaal en op papier. Hoewel de twee presentaties dezelfde informatie bevatten, zullen lezers enkele verschillen vinden. Zo zullen links in de geprinte versie natuurlijk niet werken en zullen pagina nummers niet worden weergegeven in de digitale versie. In geval van eventuele afwijkingen tussen de versies wordt de digitale versie gezien als de gezaghebbende.

1.2 Hoe de specificatie is opgebouwd

De specificatie is opgebouwd uit de volgende delen

Deel 2: Een introductie tot CSS2
De introductie bevat ook een korte CSS2 tutorial en een discussie over de principes van ontwerpen achter CSS2.
Delen 3 - 20: CSS2 Handleiding.
Het grootste gedeelte van de handleiding bestaat uit een naslagwerk. Dit naslagwerk behandelt de verschillende aspecten van het ontwerpen van documenten met style sheets (syntax, eigenschappen, waardes die aan die eigenschappen toegekend kunnen worden) en hoe user agenten deze style sheets moeten interpreteren (conformance).
Appendixes:
De appendixes bevatten onder andere: een standaard syle sheet voor HTML 4.0 (beschikbaar), verschillen met CSS1 (nog niet beschikbaar), noot met betrekking tot invoer en uitvoer van lettertypes (nog niet beschikbaar), de grammatica van CSS2 (nog niet beschikbaar), een lijst met normatieve en informatieve verwijzingen (beschikbaar), en drie indexen: een met een lijst met eigenschappen (beschikbaar), een met een lijst met descriptoren (beschikbaar), en een algemene index (nog niet beschikbaar).

1.3 Conventies

1.3.1 Opmaak elementen en attributen

1.3.2 CSS-eigenschappen definities

Appendix F. bevat een lijst met alle CSS-eigenschappen. Elke definitie van een eigenschap begint met een samenvatting van sleutel informatie zoals het volgende:

'eigenschap-naam'
Waarde:  mogelijke waardes & syntax
Standaard Waarde:  standaard waarde
Is van toepassing op:  de elemtenen waar deze eigenschap invloed op heeft
Overervend:  of de eigenschap overervend is
Percentages:  hoe waardes in percentages worden geïnterpreteerd
Media groepen:  op welke media groepen deze eigenscap van toepassing is.

Waarde

Dit gedeelte bepaalt welke waardes aan een bepaalde eigenschap gegeven mogen worden. Deze specificatie kan volgens verschillende opzetten plaats vinden:

  1. sleutel waardes (bijv.:, auto, disc, enz.)
  2. standaard data types, welke verschijnen tussen "<" en ">" (bijv.:, <length>, <percentage>, enz.). In de digitale versie van dit document, verwijst ieder standaard data type naar zijn definitie.
  3. Data types die hetzelfde bereik hebben aan waardes als een eigenschap die dezelfde naam draagt (bijv.: <'border-width'> <'background-attachment'>, enz.). In dit geval is de naam van het data type gelijk aan de naam van de eigenschap (inclusief aanhalingstekens) tussen "<" en ">" (bijv.:, <'border-width'>). In de elektronische versie van het document, verwijst ieder voorkomen van dit data type naar de definitie van de overeenkomende eigenschap.
  4. non-terminals die niet dezelfde naam hebben als een eigenschap. In dit geval, de naam van de non-terminal verschijnt tussen "<" en ">", zoals in <border-width>. Let hier op het verschil tussen <border-width> en <'border-width'>; De laatste is gedefinieerd in termen van de eerste. De definitie van een non-terminal is gelegen in de buurt van zijn eerste verschijning in de specificatie. In de elektronische versie van het document verwijst elk geval van dit type waarde naar de overeenkomende definitie van de waarde.

Andere woorden waarden die kunnen voorkomen als waarde zijn sleutelwoorden die letterlijk, zonder aanhalingstekens moeten verschijnen, zoals bijvoorbeeld red. Ook de slash (/) en de komma (,) moeten letterlijk verschijnen.

Waardes kunnen in deze specificatie op de volgende wijze gerangschikt worden.

juxtapositie is sterker dan de dubbele balk, en de dubbele balk is op zijn beurt sterker dan de balk. Dus de volgende regels zijn gelijkwaardig:

    a b   |   c || d e
  [ a b ] | [ c || [ d e ]]

Ieder type, sleutelwoord, of groep kan gevolgd worden door een of meer van de volgende modificators:

De volgende voorbeelden illustreren verschillende definities van waardes die horen bij bepaalde eigenschappen:

Waarde: N | NW | NE
Waarde: [ <length> | thick | thin ]{1,4}
Waarde: [<family-name> , ]* <family-name>
Waarde: <uri>? <color> [ / <color> ]?
Waarde: <uri> || <color>

Standaard waarde

Dit gedeelte specificeerd de standaard waarde van de eigenschap. Als de eigenschap overervend is dan is de waarde die is gegeven aan het bovenstaande element uit de hiërarchische stamboom van het betreffende document de standaard waarde. Raadpleeg de sectie over het watervaleffect voor informatie over de interactie tussen door de stijlbladen gespcificeerde, overervende en standaard waardes.

Is van toepassing op

Dit gedeelte geeft een lijst met elementen waarop de eigenschap van toepassing is. Er wordt aangenomen dat alle elementen alle eigenschappen hebben, maar sommige eigenschappen hebben geen effect op sommige elementen. Bijvoorbeeld 'white-space' heeft alleen invloed op block-level elementen.

Overervend?

Dit gedeelte geeft aan of de waarde van de eigenschap overgeërfd wordt van een bovenstaand element. Raadpleeg de sectie over het watervaleffect voor informatie over de interactie tussen door de stijlbladen gespcificeerde, overervende en standaard waardes.

Percentages

Dit gedeelte geeft aan hoe waardes in de vorm van percentages worden geïnterpreteerd. Als in de lijst "niet" wordt aangegeven, betekent dat dat de eigenschap geen waardes in de vorm van percentages accepteert

Media groepen

Dit gedeelte geeft aan op welke media groepen de eigenschap invloed heeft. Voorwaarde voor overeenstemming met CSS2 protocol is dat user agenten de eigenschappen ondersteunen die bij de media types, horende bij de betreffende media groepen, horen.

1.3.3 Shorthand eigenschappen

Sommige eigenschappen zijn verkorte eigenschappen, dit betekend dat het geoorloofd is dat de auteur de waardes van verschillende eigenschappen kan aangeven met één enkele eigenschap.

Zo is de 'font' eigenschap een shorthand eigenschap die de eigenschappen 'font-style', 'font-variant', 'font-weight', 'font-size', 'line-height', en 'font-family' in één keer definiëert.

Als waardes worden weggelaten bij de definitie van een shorthand eigenschap krijgt iedere "ontbrekende" eigenschap de standaard waarde (zie ook de sectie over het watervalmodel).

Voorbeeld:

De uitgebreide style regels van dit voorbeeld:

H1 { 
  font-weight: bold; 
  font-size: 12pt;
  line-height: 14pt; 
  font-family: Helvetica; 
  font-variant: normal;
  font-style: normal;
  font-stretch: normal;
  font-size-adjust: none
}

kunnen ook beschreven worden met één enkele shorthand eigenschap:

H1 { font: bold 12pt/14pt Helvetica }

In dit voorbeeld krijgen, 'font-variant', 'font-stretch', 'font-size-adjust', en 'font-style' hun standaard waardes.

1.3.4 Noten en voorbeelden

Bij alle voorbeelden die ongeldig gebruik aangeven wordt duidelijk "ONGELDIG VOORBEELD" weergegeven.

Alle HTML voorbeelden zijn geschreven volgens de HTML 4.0 regels zoals gedefinieerd in [HTML40], behalve als anders staat aangegeven naar gelang het type document.

Alle opmerkingen zijn enkel informatief.

Voorbeelden en noten zijn gemarkeerd in de HTML-bron van de specificatie en CSS1 user agenten zullen ze speciaal behandelen.

1.3.5 Afbeeldingen en uitgebreide beschrijvingen

De meeste afbeeldingen in de elektronische versie van deze specificatie hebben een "uitgebreide beschrijving" van wat ze voorstellen. Een link ("[D]") aan de rechterkant van de afbeelding verwijst naar de beschrijving

Afbeeldingen en hun uitgebreide beschrijvingen zijn allen informatief.

1.4 Erkenningen

Deze vertaling is tot stand gekomen door Jasper Levink, met de hulp van een van de auteurs van het originele document Bert Bos. Daarnaast hielpen Andy Camps en Angelica Ars bij het vertalen. Ik dank deze personen voor hun hulp. De originele specificatie is een product van de 'W3C werkgroep voor Cascading Style Sheets en de vorming van eigenschappen'. Naast de auteurs van de originele specificatie zijn de leden van de werkgroep: Brad Chase (Bitstream), Chris Wilson (Microsoft), Daniel Glazman (Electricité de France), Dave Raggett (W3C/HP), Ed Tecot (Microsoft), Jared Sorensen (Novell), Lauren Wood (SoftQuad), Laurie Anna Kaplan (Microsoft), Mike Wexler (Adobe), Murray Maloney (Grif), Powell Smith (IBM), Robert Stevahn (HP), Steve Byrne (JavaSoft), Steven Pemberton (CWI), Thom Phillabaum (Netscape), Douglas Rand (Silicon Graphics), Robert Pernett (Lotus), Dwayne Dicks (SoftQuad), en Sho Kuwamoto (Macromedia). We bedanken hun allemaal voor hun continue krachtsinspanningen.

Een aantal van de specialisten die aan de werkgroep hebben bijgedragen: George Kersher, Glenn Rippel (Bitstream), Jeff Veen (HotWired), Markku T. Hakkinen (The Productivity Works), Martin Dürst (W3C, formerly Universität Zürich), Roy Platon (RAL), Todd Fahrner (Verso), Tim Boland (NIST), Eric Meyer (Case Western Reserve University) en Vincent Quint (W3C).

De sectie over Web lettertypes werd grotendeels opgezet door Brad Chase (Bitstream), David Meltzer (Microsoft Typography) en Steve Zilles (Adobe). De volgende mensen hebben ook op verschillende manieren bijgedragen aan het deel over lettertypes: Alex Beamon (Apple), Ashok Saxena (Adobe), Ben Bauermeister (HP), Dave Raggett (W3C/HP), David Opstad (Apple), David Goldsmith (Apple), Ed Tecot (Microsoft), Erik van Blokland (LettError), François Yergeau (Alis), Gavin Nicol (Inso), Herbert van Zijl (Elsevier), Liam Quin, Misha Wolf (Reuters), Paul Haeberli (SGI), en later Phil Karlton (Netscape).

Het deel over in pagina's verdeelde media werd grotendeels gemaakt door Robert Stevahn (HP) en Stephen Waters (Microsoft).

Robert Stevahn (HP), Scott Furman (Netscape), en Scott Isaacs (Microsoft) waren de sleutel medewerkers aan de CSS Positionering.

Mike Wexler (Adobe) was de auteur van de interim working draft, welke veel van de nieuwe features van CSS2 beschreef.

T.V. Raman (Adobe) was onmisbare bijdrage aan de Aural Cascading Style Sheets (ACSS) en het concept van orale presenatie, gebaseerd op zijn werk aan AsTeR (Audio System For Technical Readings). Hij maakte een begin aan de ACSS scpecificatie waarop deze specificatie gebaseerd is. Waardes voor orale eigenschappen in de standaard HTML 4.0 style sheet zijn hand; hij gebruikt ze nu dagelijks in zijn audio desktop waar hij in samenwerking met Emacspeak aan werkt.

Todd Fahrner (Verso) onderzocht de huidige en oudere browsers voor het ontwerp van het stanaard stijlblad in de appendix

Dank aan Jan Kärrman, auteur van html2ps voor de hulp bij het maken van de PostScript versie van de specificatie.

De volgende mensen hebben bijgedragen aan de ontwikkeling van CSS2: Alan Borning, Robert Cailliau, Liz Castro, James Clark, Dan Connolly, Donna Converse, Daniel Dardailler, Al Gilman, Daniel Greene, Scott Isaacs, Geir Ivarsøy, Vincent Mallet, Kim Marriott, Brian Michalowski, Lou Montulli, Henrik Frystyk Nielsen, Jacob Nielsen, Eva von Pepel, William Perry, David Siegel, Peter Stuckey, en Jason White.

De discussies op www-style@w3.org waren van grote invloed in de grondprincipes van CSS2. Speciale dank gaat uit naar Bjorn Backlund, Todd Fahrner, Lars Marius Garshol, Sue Jordan, Ian Hickson, Susan Lesch, Andrew Marshall, MegaZone, Eric Meyer, Russell O'Connor, David Perrell, Liam Quinn, Jon Seymour, Neil St. Laurent, Taylor, Brian Wilson en Chris Wilson voor hun deelname.

Veel dank aan de Web Accessibility Initiative Protocols and Formats Technical Review Working Group (WAI PF) voor de hulp bij het verbeteren van de toegankelijkheid van CSS2.

Veel dank gaat uit naar Philippe Le Hégaret, wiens CSS validator hielp bij het verzekeren van correcte voorbeelden en een begrijpbare grammatica.

Speciale dank voor Arnaud Le Hors, wiens bijdrage zorgde voor de werking van het originele document.

Adam Costello verbeterde deze specificatie door het maken van een gedetailleerde review.

En last but not least dank aan Tim Berners-Lee zonder wie niks van dit alles mogelijk was geweest.

1.5 Copyright kennisgeving

Copyright © 2001-2002 Jasper Levink, alle rechten voorbehouden.
De schrijver van deze vertaling respecteert de voorwaarde zoals opgesteld door het World Wide Web Consortium (http://www.w3c.org). Voor deze vertaling gelden dezelfde voorwaarden als voor het origineel.

Copyright van het originele document:

Copyright © 1997 World Wide Web Consortium, (Massachusetts Institute of Technology, Institut National de Recherche en Informatique et en Automatique, Keio University). All Rights Reserved.

Documents on the W3C site are provided by the copyright holders under the following license. By obtaining, using and/or copying this document, or the W3C document from which this statement is linked, you agree that you have read, understood, and will comply with the following terms and conditions:

Permission to use, copy, and distribute the contents of this document, or the W3C document from which this statement is linked, in any medium for any purpose and without fee or royalty is hereby granted, provided that you include the following on ALL copies of the document, or portions thereof, that you use:

  1. A link or URI to the original W3C document.
  2. The pre-existing copyright notice of the original author, if it doesn't exist, a notice of the form: "Copyright © World Wide Web Consortium, (Massachusetts Institute of Technology, Institut National de Recherche en Informatique et en Automatique, Keio University). All Rights Reserved."
  3. If it exists, the STATUS of the W3C document.

When space permits, inclusion of the full text of this NOTICE should be provided. In addition, credit shall be attributed to the copyright holders for any software, documents, or other items or products that you create pursuant to the implementation of the contents of this document, or any portion thereof.

No right to create modifications or derivatives is granted pursuant to this license.

THIS DOCUMENT IS PROVIDED "AS IS," AND COPYRIGHT HOLDERS MAKE NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT, OR TITLE; THAT THE CONTENTS OF THE DOCUMENT ARE SUITABLE FOR ANY PURPOSE; NOR THAT THE IMPLEMENTATION OF SUCH CONTENTS WILL NOT INFRINGE ANY THIRD PARTY PATENTS, COPYRIGHTS, TRADEMARKS OR OTHER RIGHTS.

COPYRIGHT HOLDERS WILL NOT BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF ANY USE OF THE DOCUMENT OR THE PERFORMANCE OR IMPLEMENTATION OF THE CONTENTS THEREOF.

The name and trademarks of copyright holders may NOT be used in advertising or publicity pertaining to this document or its contents without specific, written prior permission. Title to copyright in this document will at all times remain with copyright holders.