Appendice B : Les changements depuis CSS1
Cet appendice est informatif, et non normatif.
CSS2 s'appuyant sur CSS1, toute feuille de style valide pour CSS1 l'est aussi pour CSS2.
Les changements entre la spécification CSS1 (voir [CSS1])
et la présente spécification sont de trois types : nouvelles fonctionnalités, mises à jour de descriptions de fonctionnalités
CSS1 et changements à CSS1.
CSS2 ajoute à celles de CSS1 les fonctionnalités suivantes :
- Le concept des types de médias ;
- La valeur 'inherit' à toutes les propriétés ;
- Les médias paginés ;
- Les feuilles de style auditives ;
- Plusieurs fonctions pour l'internationalisation, dont les styles de numérotage des listes,
la prise en compte des textes bidirectionnels et celle
des marques de citation en fonction de la langue utilisée ;
- Un mécanisme de sélection de police enrichi, incluant
la correspondance intelligente des polices, leur synthèse et celles téléchargeables. Également,
le concept des polices système a été introduit et une nouvelle propriété a été
ajoutée, 'font-size-adjust' ;
- Les tables, ainsi que de nouvelles valeurs pour les propriétés
'display' et
'vertical-align' ;
- Les positionnements relatif et absolu,
avec aussi le positionnement fixe ;
- De nouveaux types de boîtes (en plus de bloc et en-ligne), compact et
run-in ;
- La possibilité de contrôler le débordement,
le rognage et la visibilité
du contenu dans le modèle de mise en forme visuel ;
- La possibilité de spécifier des largeurs et
hauteurs, minimales et maximales, dans le modèle de mise en forme visuel ;
- Une extension du mécanisme des sélecteurs, avec les sélecteurs
d' enfants, ceux adjacents et ceux d'attribut ;
- Le contenu généré, les
compteurs et le numérotage automatique et les
marqueurs ;
- Les ombrages de texte, au travers de la nouvelle propriété 'text-shadow' ;
- Plusieurs nouvelles pseudo-classes, :first-child, :hover,
:focus, :lang ;
- Les couleurs et les polices système ;
- Les curseurs ;
- Les contours dynamiques.
La spécification CSS1 était courte et concise, celle-ci est beaucoup plus volumineuse et plus claire.
Une grande part du contenu supplémentaire est consacré aux descriptions des nouvelles fonctionnalités,
sans pour autant délaisser celles des fonctions de CSS1 qui ont été complétées.
Sauf dans de rares cas, les descriptions refondues n'introduisent pas de changements syntaxiques ni sémantiques.
Bien qu'une feuille de style CSS1 soit valide pour CSS2, il existe certains cas où l'interprétation de celle-ci
prendra un sens différent en CSS2. La plupart de ces changements résulte de la prise en considération
de l'expérience accumulée dans les implémentations, mais certains d'entre eux sont aussi des corrections d'erreurs.
-
La signification de "!important" a changé. En CSS1, la mention de "!important" dans la feuille de style de
l'auteur avait priorité sur celle de l'utilisateur. Ceci est inversé en CSS2 ;
- En CSS2, les valeurs de couleur sont rognées en fonction du
gamut de l'appareil, et non plus en fonction du gamut de sRGB comme en CSS1 ;
- En CSS1, la propriété 'margin-right' était ignorée quand on spécifiait
à la fois une valeur pour 'margin-left' et pour 'width'. En CSS2, la relaxe de 'margin-left', ou de 'margin-right'
dépend du sens d'écriture ;
-
En CSS1, les valeurs de plusieurs propriétés (ex. 'padding') se référaient à la
largeur de leur élément parent. C'était une erreur, cette valeur devrait toujours se rapporter
à la largeur d'un élément de type bloc, ce qui est reflété par l'introduction de
l'expression "bloc conteneur" en CSS2 ;
-
En CSS2, la valeur initiale de la propriété 'display' est 'inline', et non 'block' comme en CSS1 ;
- En CSS1, la propriété 'clear' s'appliquait à tous les éléments.
C'était une erreur, la propriété ne s'applique qu'à ceux de type bloc en CSS2 ;
- En CSS1, les pseudo-classes ':link',
':visited' et
':active'
s'excluaient mutuellement. En CSS2, la pseudo-classe ':active'
peut survenir en réunion avec ':link' ou ':visited' ;
- Le facteur d'échelle recommandé, entre deux index adjacents dans la table des tailles des polices,
pour la propriété 'font-size',
a été réduit de 1.5 à 1.2 ;
-
La valeur calculée, et non pas la valeur réelle, de la propriété 'font-size' s'hérite ;
- La description CSS1 de la valeur 'inside' (pour la propriété 'list-style-position')
laissait entendre que la marge gauche du texte pouvait être affectée, plutôt que la position de la
marque de liste. En CSS2, ce n'est plus le cas ;
- Consulter également le chapitre normatif traitant des
différences entre l'atomiseur de CSS1 et celui de CSS2.