Appendix B. Verschillen met CSS1
Deze appendix is informatief, niet normatief.
CSS2 bouwt verder op CSS1 en alle geldige CSS1 stylesheets zijn geldige CSS2 stylesheets. De wijzigingen tussen de CSS1 specificatie (raadpleeg [CSS1]) en deze specificatie vallen uiteen in drie groepen: nieuwe functionaliteit, geupdate omschrijvingen van CSS1 functionaliteit en verschillen met CSS1.
Als aanvulling op de functionaliteit van CSS1, ondersteunt CSS2:
- Het concept van media types.
- De 'inherit' waarde voor alle eigenschappen.
- Paged media
- Aurale stylesheets
- Verschillende internationalisatie mogelijkheden, inclusief lijst nummering stijlen, ondersteuning voor bidirectionele tekst en ondersteuning voor taal-afhankelijke aanhalingstekens.
- Een uitgebreid lettertype selectie mechanisme, inclusief intelligente koppeling, synthese en downloadbare lettertypes. Het concept van systeemlettertypes is ook geïntroduceerd en een nieuwe eigenschap, 'font-size-adjust', werd toegevoegd.
- Tabellen, inclusief nieuwe waarden op 'display' en 'vertical-align'.
- Relatieve en absolute positionering, inclusief vaste positionering.
- Nieuwe box types (samen met blok en inline): compact en run-in.
- De mogelijkheid om inhoud overloop, clipping en zichtbaarheid in het visuele opmaakmodel in te stellen.
- De mogelijkheid om minimum en maximum breedten en hoogten in het visuele opmaakmodel te specificeren.
- Een uitgebreid selectiemechanisme, incluSief kindselectoren, buurselectoren en attribuutselectoren.
- Genereerde inhoud, tellers en automatische nummering en markers.
- Tekstschaduwen, door de nieuwe 'text-shadow' eigenschap.
- Verschillende nieuwe pseudo-classen, :first-child, :hover,
:focus, :lang.
- Systeemkleuren en lettertypes.
- Cursors.
- Dynamische outlines.
De CSS1 specificatie was kort en beknopt. Deze specificatie is volumineuzer en beter leesbaar. Veel van de aanvullende inhoud omschrijft nieuwe functionaliteit, maar de omschrijving van CSS1 eigenschappen is ook uitgebreid. Behalve in een aantal gevallen, die hierna vernoemd worden, geven herschreven omschrijvingen geen wijziging in syntax of semantiek.
Hoewel alle CSS1 stylesheets geldige CSS2 stylesheets zijn, bestaan er een aantal gevallen waar de CSS1 stylesheet een andere betekenis zal hebben wanneer deze geïnterpreteerd wordt als een CSS2 stylesheet. De grootste groep wijzigingen komen voort uit implementatie ervaring die teruggekoppeld wordt in de specificatie, maar er zijn ook enkele verbeteringen van fouten.
- De betekenis van "!important" is gewijzigd. In CSS1 had een "!important" in een stylesheet van een auteur voorrang op de gebruikersstylesheet. Dit is omgekeerd in CSS2.
- In CSS2 worden kleurwaarden geclipped naar het apparaatgamma, niet ten opzichte van het sRGB gamma zoals in CSS1.
- CSS1 zei eenvoudig dat 'margin-right' genegeerd werd als zowel 'margin-left' en 'width' ingesteld werden. In CSS2 hangt de keuze tussen 'margin-right' of 'margin-left' af van de schrijfrichting.
- In CSS1 hadden verschillende eigenschappen (zoals 'padding') had waarden die verwezen naar de breedte van het ouder element. Dit was een fout; de waarde zou altijd moeten verwijzen naar de breedte van een blok-niveau element en deze specificatie reflecteert dit door de introductie van de term "bevattende blok".
- De startwaarde van 'display' is 'inline' in CSS2, niet 'block' zoals in CSS1.
- In CSS1 gold de 'clear' eigenschap op alle elementen. Dit was een fout en de eigenschap geldt enkel op blok-niveau elementen in CSS2.
- In CSS1 sloten ':link', ':visited' en ':active' elkaar uit; in CSS2 kan ':active' samen voorkomen met ':link' of ':visited'.
- De voorgestelde schaalfactor tussen naburige 'font-size' indexen in de tabel van lettergroottes is gereduceerd van 1.5 naar 1.2.
- De berekende waarde, niet de actuele waarde van 'font-size' wordt geërfd.
- De CSS1 omschrijving van 'inside' (voor 'list-style-position') liet de interpretatie toe dat de linker marge van de tekst beïnvloed werd in plaats van de positie van het opsommingsteken. In CSS2 wordt deze interpretatie uitgesloten.
- Raadpleeg ook het normatieve deel over de verschillen met de CSS1 en CSS2 tokenizer.