W3C

Errata de CSS2

Ce document :
http://www.w3.org/Style/css2-updates/REC-CSS2-19980512-errata.html
Dernière révision :
$Date: 2003/07/24 13:19:09 $
Cette page répertorie les erreurs connues dans le document :
http://www.w3.org/TR/1998/REC-CSS2-19980512
La dernière version de la spécification CSS2 :
http://www.w3.org/TR/REC-CSS2

Ce document n'est plus maintenu. Le groupe de travail CSS développe actuellement CSS 2.1. Lorsque les caractéristiques communes à CSS2 et CSS 2.1 sont définies différemment, veuillez considérer la définition dans CSS 2.1 comme une correction de CSS2. Tant que CSS 2.1 sera au stade de brouillon de travail, il faut considérer les corrections comme étant proposées.


Veuillez signaler toute erreur à css2-editors@w3.org.

Erreurs connues

Les propriétés raccourcies

Les propriétés raccourcies admettent une liste de valeurs de sous-propriétés ou la valeur 'inherit'. On ne peut pas mélanger la valeur 'inherit' avec d'autres valeurs de sous-propriétés car il serait sinon impossible de définir la sous-propriété à laquelle 'inherit' s'applique. Les définitions de certaines propriétés ne respectent pas cette règle : 'border-top', 'border-right', 'border-bottom', 'border-left', 'border', 'background', 'font', 'list-style', 'cue' et 'outline'.

Section 4.1.1 (et annexe D2)

[2001-04-03] Le caractère souligné ("_") devrait être admis dans les identificateurs. Les définitions des macros lexicales nmstart et nmchar devraient l'inclure et devenir respectivement :

nmstart  [a-zA-Z_]|{nonascii}|{escape} 
nmchar   [a-zA-Z0-9-_]|{nonascii}|{escape}

(N.D.T. Voir ailleurs cette même entrée.)

4.1.3 Les caractères et la casse

Dans le troisième article ajouter au point 1. :

1. avec un espace (ou un autre caractère blanc) : "\26 B" ("&B")

le texte suivant : Dans ce cas, l'agent utilisateur devrait considérer une paire "CR/LF" (13/10 en Unicode) comme un seul caractère blanc.

[2001-07-30] Le caractère souligné devrait être admis dans les identificateurs. Changer la phrase : En CSS2, les identificateurs (ainsi que les noms des éléments et ceux des classes et IDs des sélecteurs) ne peuvent contenir que des caractères parmi [A-Za-z0-9] et ISO 10646 supérieurs à 161, ainsi que le tiret (-) pour :

En CSS2, les identificateurs (ainsi que les noms des éléments et ceux des classes et IDs des sélecteurs) ne peuvent contenir que des caractères parmi [A-Za-z0-9] et ISO 10646 supérieurs à 161, ainsi que le tiret (-) et le souligné (_)

Section 4.3 (Un problème de double signe)

Plusieurs valeurs décrites dans les sous-sections de cette section admettent incorrectement deux signes "+" ou "-" initiaux. Les longueurs, par exemple, sont décrites ainsi :

Une valeur de longueur (dénotée par <longueur> dans cette spécification) est formée d'un caractère de signe optionnel ('+' ou '-', '+' étant la valeur implicite), suivi immédiatement par un <nombre> (avec un point décimal ou non) et suivi immédiatement par un identificateur d'unité (ex. px, deg, etc.).

Cependant, le type <nombre> admettant déjà le signe "+" ou "-", la définition précédente implique la possibilité de se trouver avec deux caractères pour le signe. Bien que les types de valeurs suivants puissent accepter deux signes, ils sont destinés à n'avoir qu'un seul signe initial :

Section 4.3.2 Les longueurs

[2001-08-28] Le pixel de référence suggéré se base sur un appareil à définition de 96 ppp et non de 90 ppp. L'angle visuel est donc d'environ 0.0213 degrés au lieu de 0.0227, et un pixel à longueur de bras fait environ 0,26 mm au lieu de 0,28 mm.

Section 4.3.6

Supprimer les commentaires à propos de la restriction d'intervalle après l'exemple suivant :

EM { color: rgb(255,0,0) }      
EM { color: rgb(100%, 0%, 0%) } 

4.3.7 Les angles, 4.3.8 Les durées, 4.3.9 Les fréquences

[2002-07-29] Comme pour les longueurs, l'unité peut être omise si la valeur est de "0" : on peut écrire "0deg" tout simplement "0.

Idem pour les fréquences et les durées.

5.10 Les pseudo-éléments et les pseudo-classes

Dans le deuxième article, la phrase suivante est incomplète : « Une exception, la pseudo-classe ':first-child', qui peut se déduire de l'arbre. » Dans certains cas, la pseudo-classe ':lang()' peut également se déduire du document.

8.2 Exemple de marges, d'espacements et de bordures

Les couleurs dans le code HTML ne correspondent pas à celles de l'image. (N.D.T. Les couleurs sont corrigées).

Section 8.5.2 La couleur de bordure : 'border-top-color', 'border-right-color', 'border-bottom-color', 'border-left-color' et 'border-color'

[2001-06-25] La valeur 'transparent' est également permise sur ces propriétés. Changer la ligne Valeur : <couleur> | inherit pour :

Valeur : <couleur> | transparent | inherit

Section 8.4 Les propriétés d'espacement

Les définitions des cinq propriétés relatives à l'espacement ('padding', 'padding-top', 'padding-right', 'padding-bottom' et 'padding-left') devraient dire que celles-ci ne s'appliquent pas aux éléments de table suivants : les rangées (N.D.T. table rows), les groupes de rangées (N.D.T. row groups), les groupes de rubriques (N.D.T. header groups), les groupes de pieds de page (N.D.T. footer groups), les colonnes (N.D.T. columns) et les groupes de colonnes (N.D.T. column groups).

8.5.3 Le style de bordure

Changer la phrase « La couleur des bordures dessinées pour les valeurs 'groove', 'ridge', 'inset' et 'outset' dépend de la propriété 'color' de l'élément » pour :

La couleur des bordures dessinées pour les valeurs 'groove', 'ridge', 'inset' et 'outset' devrait se baser sur la propriété 'border-color' de l'élément ; cependant les agents utilisateurs peuvent employer leur propre algorithme pour déterminer les couleurs qui vont être appliquées. Par exemple, si la propriété 'border-color' a la valeur 'silver', l'agent utilisateur pourrait simuler une bordure pentue à l'aide d'un dégradé de blanc à gris foncé.

Section 8.5.4 Les propriétés raccourcies de bordure : 'border-top', 'border-bottom', 'border-right', 'border-left' et 'border'

Changer <'border-top-width'> pour <bordure-épaisseur> comme première option de valeur pour 'border-top', 'border-right', 'border-bottom' et 'border-left' ; changer <'border-style'> pour <bordure-style>. Pour 'border', changer <'border-width'> pour <bordure-épaisseur> et <'border-style'> pour <bordure-style>.

[2001-06-25] La valeur 'transparent' est également permise sur 'border-top', 'border-bottom', 'border-right', 'border-left' et 'border'.

Changer les deux lignes Valeur : [ <'border-top-width'> || <'border-style'> || <couleur> ] | inherit pour

Valeur : [ <border-top-width> || <bordure-style> || [ <couleur> | transparent ] | inherit

8.5.4 Les propriétés raccourcies de bordure : 'border-top', 'border-bottom', 'border-right', 'border-left' et 'border'

Changer <'border-top-width'> pour <bordure-épaisseur> comme première option de valeur pour 'border-top', 'border-right', 'border-bottom' et 'border-left' ; changer <'border-style'> pour <bordure-style>. Pour 'border', changer <'border-width'> pour <bordure-épaisseur> et <'border-style'> pour <bordure-style>.

Section 9.3.1

La définition de la valeur 'static' devrait dire que les propriétés 'left', 'top', 'right' et 'bottom' ne s'y appliquent pas.

Section 9.3.2

Les propriétés 'top', 'right', 'bottom' et 'left' se réfèrent incorrectement aux décalages à partir du bord du contenu d'une boîte. Le bord correct est celui de la marge. Donc, pour 'top', la description devrait être : "Cette propriété définit le décalage du bord haut de la marge d'une boîte sous le bord haut de la boîte du bloc conteneur".

Section 9.4.3

Dans la première phrase, ajouter à la fin de "Une fois l'emplacement d'une boîte déterminé, conformément au flux normal" les mots "ou flottant".

Section 9.7 Les relations entre les propriétés 'display', 'position' et 'float'

[2002-04-15] Si un élément flotte, la propriété 'display' prend une valeur de type bloc mais pas forcément la valeur 'block'. Dans l'article 3, changer " Autrement, quand la valeur de la propriété 'float' est autre que 'none', la propriété 'display' prend la valeur 'block' et la boîte est flottante" pour :

Autrement, quand la valeur de la propriété 'float' est autre que 'none', la boîte est flottante et la valeur de la propriété 'display' se détermine selon le tableau suivant :

Valeur spécifiée Valeur calculée
inline-table table
inline, run-in, compact, table-row-group, table-column, table-column-group, table-header-group, table-footer-group, table-row, table-cell, table-caption block
autres pareille à la valeur spécifiée

Section 9.8.3 Faire flotter une boîte

[2002-10-29] La propriété 'clear' ne s'applique pas aux éléments de type en-ligne, et donc l'exemple avec une valeur 'clear' sur l'élément SPAN dont l'ID est "#sibling" est incorrect. Supprimer le texte et les deux images, depuis Pour montrer l'effet de la propriété 'clear' [...] jusqu'à la fin de la section. (N.D.T. Le code HTML et les deux images ont été supprimés).

Section 10.3.2 Les éléments de type en-ligne remplacés (concerne aussi 10.3.4, 10.3.6 et 10.3.8)

Changer :

Quand on spécifie une valeur 'auto' pour la propriété 'width", sa valeur calculée est celle de la largeur intrinsèque de l'élément.

pour :

Si la valeur spécifiée de 'width' est 'auto' et que celle de la propriété 'height' est aussi 'auto', alors la largeur intrinsèque de l'élément prend la valeur calculée de 'width'. Si la valeur spécifiée de 'width' est 'auto' et que 'height' a une valeur spécifiée différente, alors la valeur calculée de 'width' correspond à (largeur intrinsèque) * ( (hauteur calculée) / (hauteur intrinsèque) )

Section 10.3.3

Dans la dernière phrase du paragraphe suivant l'équation Et de la même façon, pour la propriété 'margin-left', quand la propriété 'direction' a la valeur 'ltr', remplacer 'ltr' par 'rtl'.

Section 10.6.2 Les éléments de types en-ligne et bloc remplacés ... (et 10.6.5)

Changer :

Si la valeur de la propriété 'height' est 'auto', sa valeur calculée est la hauteur intrinsèque de l'élément.

pour :

Si les propriétés 'width' et 'height' ont toutes deux la valeur spécifiée 'auto', la hauteur intrinsèque de l'élément correspond à la valeur calculée de 'width'. Si la propriété 'width' a la valeur spécifiée 'auto' et la propriété 'height' une autre valeur, alors la valeur calculée de 'height' correspond à : (hauteur intrinsèque) * ( (largeur calculée) / (largeur intrinsèque) ).

Section 10.6.3

Le calcul de la hauteur des éléments de type bloc non remplacés dans le flux normal et de celle des éléments flottants non remplacés n'est pas exact. La hauteur devrait se calculer de la manière suivante :

Quand les propriétés 'top', 'bottom', 'margin-top', ou 'margin-bottom' ont la valeur spécifiée 'auto', leur valeur calculée devient '0'. Si la propriété 'height' a la valeur spécifiée 'auto', la hauteur de l'élément dépendra de la présence d'un éventuel enfant de type bloc et des espacements et bordures de l'élément.

Si l'élément a uniquement des enfants de type en-ligne, sa hauteur est égale à la distance entre le sommet de la boîte de ligne la plus haute et le bas de celle la plus basse.

S'il a des enfants de type bloc, la hauteur est la distance entre le bord de la bordure haute de la boîte de l'enfant de type bloc en haut et le bord de la bordure du bas de la boîte de l'enfant de type bloc en bas. Toutefois, si l'élément a un espacement haut et/ou une bordure haute non nuls, alors le contenu commence au bord de la marge haute de l'enfant le plus haut. De même, si l'élément a un espacement bas et/ou une bordure basse non nuls, alors le contenu finit au bord de la marge basse de l'enfant le plus bas.

Seuls les enfants dans un flux normal sont pris en compte (c.à.d. les boîtes des éléments flottants et celles des éléments en position absolue sont ignorées, les boîtes des éléments en position relative sont considérées sans leur décalage). Noter que la boîte de l'enfant peut être anonyme.

Section 11.1.1

L'exemple d'un élément DIV contenant un élément BLOCKQUOTE contenant lui-même un autre DIV n'est pas restitué correctement. La première règle :

DIV { width : 100px; height: 100px;
      border: thin solid red;
      }

S'applique aux deux éléments DIV, interne et externe, et le DIV interne devrait donc être rendu avec une bordure rouge. L'intention des auteurs était que la première règle ne s'applique qu'au DIV externe. On aurait pu le faire en la rendant plus spécifique, en ajoutant un attribut "class" ou "id" au balisage et en changeant les sélecteurs en conséquence.

11.2 La visibilité : la propriété 'visibility'

[2001-06-25] Changer les définitions originales des champs Initial et Héritée pour :

Initial : visible
Héritée : oui

Cela a le même effet que la définition originale mais lève l'état indéfini de l'élément racine (ce qui posait problème aux mises en œuvre DOM.

12.2 La propriété 'content'

La propriété 'content' s'applique aux pseudo-éléments :before et :after et aux éléments avec 'display: marker'.

12.6.2 Les listes

Sous la propriété 'list-style', l'exemple suivant :

UL > UL { list-style: circle outside } /* Tout enfant UL d'un élément UL */

Ne correspondra à aucun balisage HTML valide (car un élément UL ne peut pas directement être l'enfant d'un autre élément UL ; il doit y avoir au moins un élément LI intermédiaire).

Section 15.2.4

Sous la propriété 'font-size-adjust', dans la formule donnée pour <nombre>, les variables y, a' et c sont expliquées. Il manque une explication pour la variable a :

 
     a = la valeur d'aspect de la première police du choix

Dans la phrase commençant par Pour les écritures bicamérales... changer (font-size/x-height) pour (x-height/font-size).

[2001-06-25] La propriété 'font-size-adjust' devraient s'appliquer également à la première police du choix. Ceci ne devrait avoir aucun effet, la valeur de 'font-size-adjust' étant par définition égale au ratio ex/em de cette première police du choix. Ceci corrige une omission en relation avec les cas où la propriété est héritée par les éléments enfants de type en-ligne.

Section 15.2.6

Les polices 'Totum' et 'Kodig' ne sont pas du type 'serif' mais 'sans-serif'. La police 'Pathang' n'est pas du type 'sans-serif' mais 'serif'.

Section 15.5

Dans l'article 2, changer l'agent utilisateur utilise le descripteur 'font-family' pour "l'agent utilisateur utilise la propriété 'font-family'".

Dans l'article 6, changer "étapes 3, 4 et 5" pour "étapes 2, 3, 4 et 5".

Section 16.6 Les caractères blancs : la propriété 'white-space'

[2001-08-28] La propriété 'white-space' s'applique à tous les éléments et pas seulement aux éléments de type bloc.

Section 17.2 Le modèle de table de CSS

Dans la définition de table-header-group, changer pied de page pour en-tête dans la phrase "Les agents utilisateurs d'impression peuvent répéter les rangées de pied de page sur chacune des pages sur lesquelles s'étendrait une table".

17.2.1 Les objets de table anonymes

Déplacer le texte du premier article dans la prose avant la liste des règles de génération. Les règles deviennent donc les suivantes :

  1. Quand le parent, noté P, d'un élément 'table-cell', noté T, n'est pas un élément 'table-row', un objet correspondant à ce dernier sera généré entre P et T. Cette objet recouvrira l'ensemble des éléments 'table-cell' consécutifs de T de même ascendance (dans l'arbre du document) ;
  2. Quand le parent P d'un élément 'table-row' T n'est pas un élément 'table', 'inline-table' ou 'table-row-group', un objet correspondant à un élément 'table' sera généré entre P et T. Cette objet recouvrira l'ensemble des éléments 'table-row' consécutifs de T de même ascendance (dans l'arbre du document), ceux-ci requérant un parent 'table', à savoir 'table-row', 'table-row-group', 'table-header-group', 'table-footer-group', 'table-column', 'table-column-group' et 'table-caption' ;
  3. Quand le parent P d'un élément 'table-column' n'est pas un élément 'table' T, 'inline-table' ou 'table-column-group', un objet correspondant à un élément 'table' sera généré entre P et T. Cet objet recouvrira l'ensemble des éléments 'table-column' consécutifs de T de même ascendance (dans l'arbre du document), ceux-ci requérant un parent 'table', à savoir 'table-row', 'table-row-group', 'table-header-group', 'table-footer-group', 'table-column', 'table-column-group' et 'table-caption' ;
  4. Quand le parent P d'un élément 'table-row-group' (ou 'table-header-group' ou 'table-footer-group') T n'est pas un élément 'table' ou 'inline-table', un objet correspondant à un élément 'table' est généré entre P et T. Cet objet recouvrira l'ensemble des éléments consécutifs de T de même ascendance (dans l'arbre du document), ceux-ci requérant un parent 'table', à savoir 'table-row', 'table-row-group', 'table-header-group', 'table-footer-group', 'table-column', 'table-column-group' et 'table-caption' ;
  5. Quand un enfant T d'un élément 'table (ou 'inline-table') P n'est pas un élément 'table-row-group', 'table-header-group', 'table-footer-group' ou 'table-row', un objet correspondant à un élément 'table-row' sera généré entre P et T. Cet objet recouvrira l'ensemble des éléments consécutifs de T de même ascendance, ceux-ci n'étant pas des éléments 'table-row-group', 'table-header-group', 'table-footer-group' ou 'table-row' ;
  6. Quand un enfant T d'un élément 'table-row-group' (ou 'table-header-group' ou 'table-footer-group') P n'est pas un élément 'table-row', un objet correspondant à un élément 'table-row' sera généré entre P et T. Cet objet recouvrira l'ensemble des éléments consécutifs de T de même ascendance, ceux-ci n'étant pas des éléments 'table-row' ;
  7. Quand un enfant T d'un élément 'table-row' P n'est pas un élément 'table-cell', un objet correspondant à un élément 'table-cell' sera généré entre P et T. Cet objet recouvrira l'ensemble des éléments consécutifs de T de même ascendance, ceux-ci n'étant pas des éléments 'table-cell'.

17.5 La disposition visuelle des contenus de la table

La remarque suivante :

Remarque : On peut positionner les cellules d'une table, mais ce n'est pas recommandé, car les positionnements absolu et fixe, comme le flottement, soustraient la boîte en question du flux normal, affectant ainsi l'alignement de la table.

La modifier comme ceci :

Remarque : On peut positionner les cellules d'une table, mais ce n'est pas recommandé, car les positionnements absolu et fixe, comme le flottement, soustraient la boîte en question du flux normal, affectant ainsi la dimension de la table.

17.5 La disposition visuelle des contenus de la table

Changer :

Comme pour les autres éléments du langage du document, les éléments internes de la table génèrent des boîtes rectangulaires avec un contenu, de l'espacement et des bordures. Toutefois ils n'ont pas de marges.

pour :

Comme pour les autres éléments du langage du document, les éléments internes de la table génèrent des boîtes rectangulaires avec un contenu et des bordures. Les cellules ont également un espacement. Les éléments internes de la table n'ont pas de marges.

Section 17.6.1 Le modèle des bordures séparées

Dans l'image, changer espacement entre cellule pour espacement entre bordure. (N.D.T. L'image a été modifiée).

Annexe A : Un exemple de feuille de style pour HTML 4.0

@media speech devrait être @media aural.

Annexe D.2 Le scanner lexical

[2001-04-03] Le caractère souligné ("_") devrait être permis dans les identificateurs. Les définitions des macros lexicales nmstart et nmchar devraient l'inclure et devenir respectivement :

nmstart  [a-z_]|{nonascii}|{escape} 
nmchar   [a-z0-9-_]|{nonascii}|{escape}

Remarquez que l'analyseur est insensible à la casse et que l'étendue A-Z est donc également filtrée.

(Même changement dans la section 4.1.1 voir pour info une entrée précédente.)

Erreurs typographiques mineures

Section 2.1

Pour l'exemple avec l'élément LINK, la liste suivante cite incorrectement l'attribut "ref" : c'est "href".

Section 2.2

[2002-01-28] La phrase : "Par exemple, le corps de la police du titre devrait être plus grand que celui du reste du texte" [...] (N.D.T. Une coquille dans le texte anglais).

Section 3.1

Sous la définition de Enfant, le passage si et seulement si [...] (N.D.T. Une coquille dans le texte anglais).

Sous la définition de Frère, la dernière phrase devrait être : "Si l'élément A apparaît avant B dans l'arbre du document, ..."

Section 3.4

Le bon numéro RFC d'enregistrement du type "text/css" est RFC 2318 et non RFC 2138.

Section 5.11.4

Dans la phrase En XML, on utilise un attribut nommé xml:lang,..., l'attribut XML devrait être en minuscules, c.à.d. xml:lang.

Section 5.12.1

Le rendu du premier exemple est le suivant :

VOICI UN PARAGRAPHE HTML PLUTÔT LONG
qui va être découpé en plusieurs lignes.

pour le balisage fictif suivant :

<P><P:first-line> Voici un paragraphe HTML
      plutôt long qui </P:first-line> ...

Le mot qui devrait suivre le balisage fictif pour :first-line.

Section 6.4

La dernière phrase de l'avant-dernier paragraphe devrait commencer par [...] (N.D.T. Une coquille dans le texte anglais).

Section 8.5.2

Section 8.5.3 Le style de bordure

Dans la définition de ridge, changer grove pour groove.

Section 9.2.1

Dans l'exemple après la figure, le fragment HTML "<P>Ceci est le contenu de P.</>" devrait se terminer par la balise fermante "</P>".

Section 9.2.2, Les boîtes anonymes en-ligne

Dans la phrase du troisième paragraphe Dans l'exemple précédent, la couleur des boîtes anonymes en-ligne est héritée de l'élément P, mais leurs fonds restent transparents, remplacer le mot en-ligne par initiales.

Section 9.4.3

Dans le deuxième paragraphe [...] (N.D.T. Une coquille dans le texte anglais).

Section 9.7 Les relations entre les propriétés 'display', 'position' et 'float'

Section 10.6.1

La propriété 'height' ne s'applique pas. La hauteur de l'aire du contenu est égale à la taille effective de la police de l'élément. Les espacements, bordures et marges verticales d'une boîte en-ligne non remplacée commencent en haut et en bas de la police, et non pas en haut et en bas de la ligne. Par contre, le calcul de la hauteur de la boîte de la ligne emploie seulement la propriété 'line-height'.

Si plusieurs tailles de polices sont utilisées (cela peut arriver quand les glyphes proviennent de différentes polices), la hauteur de l'aire du contenu n'est pas définie par cette spécification. On recommande néanmoins que la plus grande taille de police soit retenue pour la détermination de cette hauteur.

Section 11.1.1

Dans la description de la valeur 'scroll', ajouter [...] (N.D.T. Une coquille dans le texte anglais).

Section 12.2

Dans la définition de <compteur>, la phrase La deuxième prend aussi deux formes : 'counter(nom, chaîne)' ou 'counter(nom, chaîne, style)' devrait être "...deux formes : 'counters(nom, chaîne)' ou 'counters(nom, chaîne, style)'"

Section 12.6.1

Changer le troisième paragraphe comme suit :

Avec le pseudo-élément :before, la ligne de base de la boîte de marqueur sera alignée verticalement avec celle de la première boîte de ligne de la boîte principale. Si celle-ci ne contient pas de boîte de ligne, ou si elle contient une boîte de bloc se trouvant au-dessus de la première boîte de ligne, le bord externe haut de la boîte de marqueur sera aligné avec le bord externe haut de la boîte principale.

Avec le pseudo-élément :after, la ligne de base de la boîte de marqueur sera alignée verticalement avec celle de la dernière boîte de ligne de la boîte principale. Si celle-ci ne contient pas de boîte de ligne, ou si elle contient une boîte de bloc se trouvant en-dessous de la dernière boîte de ligne, le bord externe bas de la boîte de marqueur sera aligné avec le bord externe bas de la boîte principale.

[2003-07-24] Dans le deuxième exemple, il manque un "}" à la fin de la règle 'LI:before'. Elle devrait être :

@media screen, print {
    LI:before { 
        display: marker;
        content: url("smiley.gif");
    } 
    LI:after {
        display: marker;
        content: url("sad.gif");
    }
}

[2001-07-19] Dans le dernier exemple avant la définition de 'marker-offset', la ligne "<TITLE>Des marqueurs pour numéroter des notes4>/TITLE>" devrait être "<TITLE>Des marqueurs pour numéroter des notes</TITLE>".

Section 13.2

Dans le code suivant, placer un : après size :

@page { size: 8.5in 11in; margin: 2cm }

Section 14.3

Dans le premier paragraphe, le passage veuillez consulter le tutoriel [...]. (N.D.T. Une coquille dans le texte anglais).

Section 17.1 Introduction au tables

[2003-01-22] Dans le deuxième paragraphe, la phrase Ces rangées, colonnes, groupes de rangées, colonnes de rangées et cellules peuvent recevoir des bordures dessinées autour d'eux,[...] devrait être :

Ces rangées, colonnes, groupes de rangées, groupes de colonnes et cellules peuvent recevoir des bordures dessinées autour d'eux,[...]

Section 19.8

Dans la phrase suivante de la définition de la propriété 'voice-family' :

Si on omet ces guillemets, les caractères blancs survenant avant ou après le nom de la police sont ignorés et toute séquence de blancs dans le nom de la police sont converties en un seul espace.

Remplacer toutes les occurences de police par famille de voix.

Section D.2 Le scanner lexical

Supprimer RGB S* de la règle term puisque rgb() est couvert par la production function, laquelle filtre également counter(), atrr(), format() et d'autres.

Section D.3 La comparaison entre les atomisations de CSS2 et CSS1

Dans le dernier article, changer .\55ft pour .\35 5ft.

Annexe A : Un exemple de feuille de style pour HTML 4.0

La valeur de la propriété 'line-height' fixée pour l'élément BODY devrait être "1.12em".

Les éléments OBJECT et APPLET devrait avoir 'display: inline'.

Annexe F : L'index des propriétés

La valeur initiale de 'background' manque. Il faudrait écrire voir les propriétés individuelles.

Annexe H : Index

L'index contient des ancres qui ne diffèrent que par la casse ("A" et "a"), ce qui n'est pas du HTML valide. Cf. HTML 4.01, section 12.2.1:

Les noms d'ancres qui ne diffèrent que par la casse doivent être bannis dans un même document.

Le comportement des navigateurs peut varier de ce fait. (N.D.T. Le code de la page a été entièrement remanié pour pallier à ce problème).

Clarifications

2.2 Un bref tutoriel CSS2 pour XML

La spécification des instructions de traitement des feuilles de style XML a été écrite après la finalisation de CSS2. La première ligne de l'exemple XML complet ne devrait pas être <?XML:stylesheet type="text/css" href="bach.css"?> mais :

<?xml-stylesheet type="text/css" href="bach.css"?>

Section 4.1.1

DELIM ne devrait pas contenir de guillemets simples ou doubles. Voir également la section 4.1.6 concernant les chaînes, lesquelles doivent être entourées de guillemets simples ou doubles qui correspondent.

Section 5.5

Vers la fin de la section, le passage Noter les caractères blancs de chaque côté du "*" est ambigu. La remarque ne veut pas dire que les blancs sont obligatoires des deux côtés du * (puisque la grammaire ne l'impose pas dans ce cas) mais que leur utilisation est possible dans ce cas.

Section 5.9 Les sélecteurs d'ID

Le mot priorité à la fin du chapitre devrait être spécificité.

Section 5.12.1 Le pseudo-élément :first-line

[2001-08-27] Ajouter les clarifications suivantes à la fin de la section :

Dans le cas où une certaine première ligne est aussi la première d'un certain élément de type bloc A et en même temps que l'ancêtre B de celui-ci, la séquence de balise fictive devient :

<B>...<A>...<B:first-line><A:first-line>Voici la première ligne</A:first-line></B:first-line>

Toutes les balises fictives se trouvent dans le plus petit des élément de type bloc, l'ordre d'imbrication des balises fictives A:first-line et B:first-line correspondant à celui des éléments A et B.

La première ligne mise en forme d'un élément de type bloc correspond à la première ligne dans le flot de l'élément, ignorant ainsi d'éventuels éléments flottants ou en position absolue. Par exemple :

<div>
  <p style="float: left">Paragraphe flottant...</p>
  <p>La première ligne commence ici...</p>
</div>

Un sélecteur 'div:first-line' s'appliquerait à la première ligne du second paragraphe, car le premier paragraphe se trouve en dehors du flot normal.

Section 6.2.1

La valeur 'inherit' provoque l'héritage des valeurs par les propriétés. Ceci s'applique également aux propriétés dont la valeur n'est normalement pas héritée.

6.4 La cascade

Changer Les règles définies dans une feuille de style donnée surclassent les règles importées d'autres feuilles de style. pour Les règles définies dans une feuille de style donnée surclassent les règles de même poids importées d'autres feuilles de style.

Section 6.4.3 Le calcul de la spécificité d'un sélecteur

Ajouter une remarque :

Remarque : La spécificité est seulement basée sur la forme du sélecteur. En effet, un sélecteur de la forme "[id=p33]" est compté comme un sélecteur d'attribut (a=0, b=1, c=0), même si l'attribut "id" est défini comme un "ID" dans la définition de type de document (DTD) du document source.

Section 8.1

Section 8.3.1

Ajouter cette remarque de clarification au premier article de l'explication de la fusion des marges verticales :

Remarque Les boîtes limitrophes peuvent être générées par des éléments qui n'ont aucune parenté en tant que frères ou ancêtres.

Section 9.4.2

La phrase Quand une boîte en ligne est découpée, les marges, les bordures et l'espacement n'ont pas de représentation visuelle à l'endroit où la coupure intervient. peut être généralisée : Les marges, les bordures et l'espacement n'ont pas de représentation visuelle à l'endroit où ces coupures interviennent.

Section 9.4.3

Les boîtes en position relative n'établissent pas toujours des blocs conteneurs nouveaux. Changer le deuxième paragraphe pour :

Une boîte en position relative conserve la taille qu'elle avait dans le flux normal, ainsi que les retours à la ligne et la superficie originale qui lui était réservée. Le chapitre sur les blocs conteneurs précise les cas où une boîte en position relative établit un nouveau bloc conteneur.

Les paragraphes suivants essaye d'éclairer le sens des propriétés 'left', 'right', 'top' et 'bottom' pour un positionnement relatif :

Les propriétés 'left' et 'right' déplacent la boîte (ou les boîtes) horizontalement, sans changer sa taille (ou leur taille). Le déplacement se fait vers la droite pour la propriété 'left' et vers la gauche pour 'right'. Les boîtes n'étant ni découpées ni étirées par ces propriétés, les valeurs calculées pour le déplacement vérifient toujours : déplacement gauche = - déplacement droit.

Quand les propriétés 'left' et 'right' ont la valeur 'auto' (qui est leur valeur initiale), les valeurs calculées pour le déplacement sont égales à "0" (c.à.d. que les boîtes restent à leur emplacement original).

Quand la propriété 'left' a la valeur 'auto', sa valeur calculée devient celle négative de la propriété 'right' (c.à.d. que les boîtes se déplacent vers la gauche de la quantité de cette valeur).

Et inversement, quand la propriété 'right' a la valeur 'auto'.

Quand aucune des propriétés 'left' et 'right' n'a la valeur 'auto', la position de la boîte se trouve sous l'effet d'une double contrainte, et une des deux propriétés sera ignorée. Cela dépend de la valeur de la propriété 'direction' ; lorsqu'elle a la valeur 'ltr', c'est la valeur de la propriété 'left' qui est retenue, celle de la propriété 'right' devenant la valeur négative de 'left', et inversement, lorsque la propriété 'direction' a la valeur 'rtl'.

Par exemple, ces deux feuilles de style sont équivalentes :

DIV.a8 { position: relative; left: -1em; right: auto }

DIV.a8 { position: relative; left: auto; right: 1em }

Les propriétés 'top' et 'bottom' gèrent le déplacement vertical des boîtes en position relative. Ces propriétés doivent également avoir des valeurs en opposition. Quand toutes deux ont la valeur 'auto', leurs valeurs calculées deviennent "0". Quand l'une d'elles a la valeur 'auto', celle-ci prend la valeur opposée de l'autre. Quand aucune des deux n'a la valeur 'auto', la valeur de la propriété 'bottom' sera ignorée (c.à.d. que la valeur calculée pour la propriété 'bottom' devient le négatif de celle de la propriété 'top').

Section 9.10

Dans cette phrase du dernier paragraphe :

Les agents utilisateurs conformes pour HTML peuvent ignorer les propriétés 'direction' et 'unicode-bidi' des feuilles de style des auteurs et des utilisateurs

Le mot ignorer signifie ici que, si une valeur des propriétés 'unicode-bidi' ou 'direction' entrait en conflit avec l'attribut HTML 4.0 "dir", c'est la valeur de ce dernier que les agents utilisateurs peuvent choisir d'honorer.

Ceux-ci ne sont pas tenus de reconnaître les propriété 'direction' et 'unicode-bidi' pour être conformes à CSS2, à moins d'être capables de représenter du texte bi-directionnel (hormis le cas de HTML 4.0 comme indiqué précédemment).

[2002-04-15] Remplacer le troisième paragraphe "Quand un document contient des caractères allant de droite à gauche [...] documents écrits de gauche à droite.") par :

Quand un document contient des caractères allant de droite à gauche, et si l'agent utilisateur peut afficher ces caractères (dans les glyphes appropriés, et non pas avec des substituts arbitraires comme des points d'interrogation, un code hexadécimal, un carré noir, etc.), l'agent utilisateur doit utiliser l'algorithme bi-directionnel. Les agents utilisateurs ne sont pas obligés d'appliquer l'algorithme bi-directionnel aux documents qui ne contiennent que des caractères écrits de gauche à droite. Cette obligation est en apparence univoque et, bien que les textes des documents en hébreu ou en arabe ne contiennent pas tous des parties bi-directionnelles, ceux-ci sont plus enclins à en contenir (par exemple des nombres, des extraits en d'autres langues) que ceux des documents écrits de gauche à droite ne contiendraient de parties écrites de droite à gauche.

10.3.3 Les éléments de type bloc non remplacés dans un flux normal

[2001-06-25] Ajouter la remarque suivante à la fin de la section :

Noter que la valeur de la propriété 'width' ne peut être supérieure à celle de 'max-width', ni inférieure à celle de 'min-width'. En particulier, elle ne peut pas être négative. Voir plus loin les règles s'y rapportant dans la section 10.4.

10.5 La hauteur du contenu : la propriété 'height'

[2002-07-29] Ajouter les lignes suivantes :

Étant donné que l'agent utilisateur est libre de choisir le bloc conteneur de l'élément racine (voir la section 10.1), il peut, par exemple, calculer une hauteur en pourcentage pour l'élément racine en fonction de la hauteur de la zone de visualisation..

Section 10.8.1

Éclaircir ce paragraphe :

Noter que les éléments remplacés ont une propriété 'font-size' et une propriété 'line-height', même si on ne les utilise pas directement dans la détermination de la hauteur de la boîte. La propriété 'font-size' sert toutefois à définir les unités 'em' et 'ex' et la propriété 'line-height' influence la propriété 'vertical-align'.

comme ceci :

Noter que les éléments remplacés ont une propriété 'font-size' et une propriété 'line-height', même si on ne les utilise pas directement dans la détermination de la hauteur de la boîte : les valeurs exprimées en 'em' et en 'ex' sont relatives à celle de la propriété 'font-size', et les valeurs en pourcentage de la propriété 'vertical-align', relatives à celle de la propriété 'line-height'.

[2001-08-27] Sous 'line-height', après la phrase "Quand on applique cette propriété à un élément de type bloc dont le contenu est composé d'éléments de type en-ligne, celle-ci spécifie la hauteur minimale de chacune des boîtes en-ligne générées" ajouter la clarification suivante :

Cette hauteur minimale se décompose en une hauteur minimale au-dessus de la ligne de base de l'élément de type bloc et en une profondeur minimale au-dessous de celui-ci, exactement comme si chacune des boîtes de ligne commençait par une boîte en-ligne de largeur nulle, celle-ci ayant les valeurs des propriétés de police et de hauteur de ligne de l'élément de type bloc (ce que TEX appelle un "étai").

Section 11.1

Clarifications des deux derniers articles à propos des conditions de débordement :

Section 11.1.1

Supprimer 'projection' de cette phrase sous la valeur 'scroll'

Quand cette valeur est spécifiée conjointement avec un type de média 'print' ou 'projection', la partie du contenu ayant débordé devrait aussi être imprimée

Section 11.1.2

Les valeurs de rect() devraient être séparées par des virgules. La définition de <forme> devrait donc commencer par :

En CSS2, la seule valeur admise pour <forme> est : rect (<haut>, <droite>, <bas>, <gauche>), etc.

À cause de cette ambiguïté, les agents utilisateurs peuvent reconnaître la séparation des décalages dans rect() avec ou sans virgules.

12.2 La propriété 'content'

Clarification des lignes suivantes :

Ces pseudo-éléments admettent les valeurs suivantes pour la propriété 'display' :

Section 12.4.2 Insérer des guillemets avec la propriété 'content'

[2001-08-06] Ajouter la phrase suivante à la fin du deuxième paragraphe :

Une valeur de 'close-quote' qui rendrait la profondeur négative est incorrecte et ignorée : la profondeur reste à 0 et aucun guillemet n'est rendu (bien que le reste de la valeur de la propriété 'content' soit quand même inséré).

Les listes 12.6.2

Pour clarifier le numérotage en hébreu, ajouter "(Alef, Bet, ... Tet Vav, Tet Zayin, ... Yod Tet, Kaf ...)".

14.2 L'arrière-plan

Deuxième phrase : Selon le modèle de la boîte, l'arrière-plan correspond aux aires de contenu et d'espacement devrait aussi mentionner la bordure. (Voir également la précédente correction de la section 8.1.) Donc :

Selon le modèle de la boîte, l'arrière-plan correspond aux aires de contenu, d'espacement et de bordure.

Dans le quatrième paragraphe, à la fin de Les agents utilisateurs devraient suivre les règles de préséance suivantes pour remplir le fond, ajouter les mots du canevas.

14.2.1 Les propriétés d'arrière-plan

Ajouter cette remarque après le premier paragraphe après la définition de 'background-attachment':

Noter qu'il n'existe qu'une seule zone de visualisation par document ; c.à.d., même si l'élément est doté d'un mécanisme de défilement (voir la propriété 'overflow'), un arrière-plan avec la valeur 'fixed' ne se déplace pas avec cet élément.

[2001-08-27] Sous la définition de 'background-repeat', la phrase "La mosaïque de fond résultante correspond aux aires de contenu et d'espacement [...]" devrait être :

"La mosaïque de fond résultante correspond aux aires de contenu, d'espacement et de bordure [...]".

[2001-08-27] Sous la définition de 'background-attachment', la phrase Même si l'image est fixe, [...] dans les aires d'arrière-plan ou d'espacement de l'élément devrait être :

Même si l'image est fixe, celle-ci n'est visible que quand elle se trouve dans les aires d'arrière-plan, d'espacement ou de bordure de l'élémentt.

Section 15.2.2 La famille de polices

[2000-10-31] Remplacer la phrase : Bien que certaines polices fournissent un glyphe de substitution pour indiquer un "caractère manquant", celui-ci prenant typiquement l'aspect d'un carré, on ne devrait pas considérer ce glyphe comme une correspondance valide sauf pour la dernière police d'un jeu de polices par :

Bien que certaines polices fournissent un glyphe de substitution pour indiquer un "caractère manquant", celui-ci prenant typiquement l'aspect d'un carré, on ne devrait pas considérer ce glyphe comme une correspondance valide.

Section 15.2.4

Ajouter à l'explication de 'font-size', l'éclaircissement suivant : "Celle-ci correspond au carré em, un concept issu de la typographie. Noter que certains glyphes peuvent déborder de leur carré em."

Section 15.5 L'algorithme de correspondance de police

[2000-10-31] Dans le point 8, remplacer la phrase : "Si un caractère donné ne peut être rendu avec elle, alors l'agent utilisateur devrait signaler qu'un caractère n'est pas affiché (par exemple, en se servant du glyphe 'caractère manquant')" par :

Si un caractère donné ne peut être rendu avec elle, alors l'agent utilisateur ne disposera pas d'une police qui convienne pour ce caractère. L'agent utilisateur devrait faire correspondre chacun des caractères, pour lesquels il ne dispose pas d'une police appropriée, avec un symbole visible qu'il aura choisi, de préférence un glyphe "caractère manquant" issu de l'une des polices disponibles.

Section 16.1

Ajouter à :

La valeur de la propriété 'text-indent' peut être négative, mais ceci dépend des limites de la mise en œuvre.

la clarification suivante : Si cette valeur est négative, la valeur de la propriété 'overflow' peut avoir une influence sur la visibilité du texte.

16.2 L'alignement : la propriété 'text-align'

Changer double justifié pour justifié sous left, right, center et justify.

Section 17.5.1 Les couches de la table et la transparence

[2000-12-12] Dans le point 6, changer Ces cellules "vides" sont transparentes pour :

Ces cellules "vides" sont transparentes quand la valeur de leur propriété 'empty-cells' est 'hide'.

[2001-08-27] À la fin de la section, ajouter le paragraphe suivant :

Noter que pour 'border-collapse: separate', l'arrière-plan de l'aire donnée par la propriété 'border-spacing' est toujours celui de l'élément table. Voir la section 17.6.1.

Section 17.2 Le modèle de table de CSS

La phrase Les agents utilisateurs peuvent ignorer ces valeurs de la propriété 'display' pour des documents HTML, car les auteurs ne devraient pas modifier le comportement attendu pour un élément devrait être remplacée par :

Les agents utilisateurs peuvent ignorer ces valeurs de la propriété 'display' pour les éléments de table HTML, car les tables HTML peuvent être rendues par d'autres algorithmes prévus pour être rétrocompatibles.

La raison de cette note est qu'un agent utilisateur peut refuser de rendre une table HTML autrement que sous forme d'une tableau. La phrase ne voulait pas décourager l'emploi de 'display: table' sur d'autres éléments qui ne soient pas des éléments de table en HTML.

Section 17.5.2 Les algorithmes de largeur de table

Ajouter le paragraphe suivant après le premier de la section :

Noter que les règles décrites dans cette section surclassent celles pour le calcul des largeurs de la section 10.3. En particulier, si pour la table les valeurs des marges sont '0' et celle de la largeur 'auto', la table ne prendra pas automatiquement la dimension nécessaire pour remplir son bloc conteneur. Cependant, une fois la valeur calculée pour 'width' trouvée (à l'aide des algorithmes décrits ensuite ou, si besoin, par un algorithme propre de l'agent utilisateur), les autres parties de la section 10.3 s'appliquent toujours. Ainsi, par exemple, on peut centrer une table en spécifiant une valeur 'auto' pour ses marges gauche et droite.

Le groupe de travail peut introduire des moyens pour faire se loger automatiquement les tables dans leur bloc conteneurs dans CSS3.

Les bordures autour des cellules vides : la propriété 'empty-cells'

[2000-12-12] La propriété 'empty-cells' contrôle non seulement les bordures mais aussi l'arrière-plan.

Section 17.6.2 Le modèles des bordures fusionnées

Dans la phrase après l'équation, ajouter et espacement-gauchei et espacement-droiti désignent respectivement l'espacement à gauche et celui à droite de la cellule i.

Section 18.2

Pour la valeur 'ButtonHighlight', changer dans la description L'ombre foncée par La couleur d'activation.

Section 19.3

La phrase entre parenthèses un peu comme pour la propriété propriété 'display' est ambiguë. La propriété 'speak' ressemble par certains aspects à la propriété 'visibility' et à la propriété 'display' par d'autres.

Annexe A

La règle @page devrait se trouver entièrement hors du bloc @media :

 @page         { margin: 10% }
 @media print {
        H1, H2, H3,
        ... 
 }

Annexe D.2 Le scanner lexical

Supprimer la ligne suivante du scanner car elle n'apparaît pas dans la grammaire :

   "@"{ident}              {return ATKEYWORD;}

L'atome DIMEN se trouve dans le scanner pour assurer qu'un nombre suivi par un identificateur soit lu comme un seul atome plutôt que deux. Ce cas est considéré comme une erreur dans CSS2.

Annexe E Références

L'entrée pour [URI] citée comme un brouillon devenu entre-temps un document RFC. On peut la changer en :

[URI]
"Uniform Resource Identifiers (URI): Generic Syntax," T. Berners-Lee, R. Fielding, L. Masinter. Août 1998. Internet RFC 2396. Disponible à http://www.ietf.org/rfc/rfc2396.txt

Changements

Le groupe de travail CSS propose les changements suivants. Veuillez remarquer que ces changements ont un statut de brouillon de travail et ne doivent donc pas être considérés comme définitifs à moins d'être incorporés dans une recommandation révisée.

Section 6.4.3 Le calcul de la spécificité d'un sélecteur

[2002-02-28] Remplacer la section 6.4.3 par le texte suivant :

La spécificité d'un sélecteur est déterminée comme suit :

La spécificité est obtenue en assemblant les quatre nombres a-b-c-d (dans un système de nombres avec une base étendue).

Exemple(s) :

Quelques exemples de plus en plus spécifiques :

*             {}  /* a=0 b=0 c=0 d=0 -> spécificité =   0, 0, 0, 0 */
LI            {}  /* a=0 b=0 c=0 d=1 -> spécificité =   0, 0, 0, 1 */
UL LI         {}  /* a=0 b=0 c=0 d=2 -> spécificité =   0, 0, 0, 2 */
UL OL+LI      {}  /* a=0 b=0 c=0 d=3 -> spécificité =   0, 0, 0, 3 */
H1 + *[REL=up]{}  /* a=0 b=0 c=1 d=1 -> spécificité =   0, 0, 1, 1 */
UL OL LI.red  {}  /* a=0 b=0 c=1 d=3 -> spécificité =   0, 0, 1, 3 */ 
LI.red.level  {}  /* a=0 b=0 c=2 d=1 -> spécificité =   0, 0, 2, 1 */
#x34y         {}  /* a=0 b=1 c=0 d=0 -> spécificité =   0, 1, 0, 0 */
style=" "         /* a=1 b=0 c=0 d=0 -> spécificité =   1, 0, 0, 0 */
<HEAD>
<TITLE>Exemple de spécificité</TITLE>
<STYLE type="text/css">
p#x97z { color: red }
</STYLE>
</HEAD>
<BODY>
<P ID=x97z style="color: green">
</BODY>

Dans l'exemple ci-dessus, la couleur de l'élément P serait verte. La déclaration dans l'attribut "style" va surclasser celle dans l'élément STYLE puisque, du fait de la règle de cascade 3, elle a une plus grande spécificité.

Section 9.3.2 Les décalages des boîtes : 'top', 'right', 'bottom', 'left'

[2000-10-24] Une valeur 'static-position' est rajoutée. Remplacer la section par ce texte :

On dit qu'un élément est positionné quand la valeur de sa propriété 'position' est autre que 'static'. Ces éléments génèrent des boîtes positionnées qui sont disposées selon les quatre propriétés suivantes :

'top'
Valeur :  <longueur> | <pourcentage> | auto | inherit
Initiale :  auto
S'applique à :  ceux des éléments positionnés
Héritée :  non
Pourcentage :  se rapporte à la hauteur du bloc conteneur
Médias :  visuel

Cette propriété définit le décalage du bord haut de la marge d'une boîte sous le bord haut de la boîte du bloc conteneur.

'right'
Valeur :  <longueur> | <pourcentage> | auto | inherit
Initiale :  auto
S'applique à :  ceux des éléments positionnés
Héritée :  non
Pourcentage :  se rapporte à la largeur du bloc conteneur
Médias :  visuel

Cette propriété définit le décalage du bord droit de la marge d'une boîte à gauche du bord droit de la boîte du bloc conteneur.

'bottom'
Valeur :  <longueur> | <pourcentage> | auto | inherit
Initiale :  auto
S'applique à :  ceux des éléments positionnés
Héritée :  non
Pourcentage :  se rapporte à la hauteur du bloc conteneur
Médias :  visuel

Cette propriété définit le décalage du bord bas de la marge d'une boîte au-dessus du bord bas de la boîte du bloc conteneur.

'left'
Valeur :  <longueur> | <pourcentage> | auto | inherit
Initiale :  auto
S'applique à :  ceux des éléments positionnés
Héritée :  non
Pourcentage :  se rapporte à la largeur du bloc conteneur
Médias :  visuel

Cette propriété définit le décalage du bord gauche de la marge d'une boîte à droite du bord gauche de la boîte du bloc conteneur.

Les significations des valeurs de ces quatre propriétés sont :

<longueur>
Le décalage est représenté par une distance fixe à partir du bord de référence ;
<pourcentage>
Le décalage est représenté par un pourcentage de la largeur du bloc conteneur (pour les propriétés 'left' et 'right') ou la hauteur de celui-ci (pour les propriétés 'top' et 'bottom'). Si la hauteur du bloc conteneur n'est pas spécifiée explicitement (par exemple celle-ci dépendant de la hauteur du contenu), les propriétés 'top' et 'bottom' sont censées avoir la valeur 'auto' ;
auto
L'effet de cette valeur dépend des propriétés associées, lesquelles ont aussi cette même valeur 'auto'. Voir les passages traitant de la largeur et de la hauteur des éléments non-remplacés en position absolue.
static-position
Ne s'applique qu'aux éléments en position absolue.
Pour la propriété 'left', utiliser la distance depuis le bord gauche du bloc conteneur jusqu'au bord de la marge gauche d'une boîte hypothétique qui aurait été la première boîte de l'élément si sa propriété 'position' avait eu la valeur 'static'. La valeur est négative si la boîte hypothétique se trouve à gauche du bloc conteneur.
Pour la propriété 'right', utiliser la distance depuis le bord droit du bloc conteneur jusqu'au bord de la marge droite de la même boîte hypothétique que précédemment. La valeur est positive si la boîte hypothétique se trouve à gauche du bord du bloc conteneur.
Pour la propriété 'top', utiliser la distance depuis le bord haut du bloc conteneur d'une boîte hypothétique qui aurait été la première boîte de l'élément si sa propriété 'position' avait eu la valeur 'static'. La valeur est négative si la boîte hypothétique se trouve au-dessus du bloc conteneur.

Pour les boîtes en position absolue, les décalages sont déterminés par rapport à la boîte du bloc conteneur. Pour les boîtes en position relative, ils sont déterminés par rapport aux bords externes de la boîte elle-même (c.à.d., la boîte reçoit un emplacement dans le flux normal, puis elle est décalée de cet emplacement en fonction des valeurs des propriétés de position).

Section 10.6.4 Les éléments non remplacés en position absolue

[2000-10-24] Comme pour les éléments de type bloc dans le flux normal, les éléments en position absolue prennent implicitement la hauteur de leur contenu. Remplacer la section par ce texte :

Pour les éléments en position absolue, les dimensions verticales doivent satisfaire à cette contrainte :

'top' + 'margin-top' + 'border-top-width' + 'padding-top' + 'height' + 'padding-bottom' + 'border-bottom-width' + 'margin-bottom' + 'bottom' = hauteur du bloc conteneur

Si les propriétés 'top', 'height' et 'bottom' ont toutes trois la valeur 'auto', traiter 'top' comme ayant la valeur 'static-position' et appliquer la troisième des règles suivantes.

Si aucune de ces trois propriétés n'a la valeur 'auto' : si les deux propriétés 'margin-top' et 'margin-bottom' ont la valeur 'auto', résoudre l'équation avec comme contrainte supplémentaire que les deux marges soient égales ; si l'une parmi 'margin-top' et 'margin-bottom' a la valeur 'auto', résoudre l'équation pour cette valeur ; si les valeurs sont sur-contraintes, ignorer la valeur de la propriété 'bottom' et résoudre pour cette valeur.

Sinon, prendre celle qui s'applique parmi les six règles suivantes :

  1. Si les propriétés 'top' et 'height' ont la valeur 'auto' et non la propriété 'bottom', alors la hauteur est fondée sur le contenu, réinitialiser les valeurs 'auto' de 'margin-top' et 'margin-bottom' à 0, et résoudre la propriété 'top' ;
  2. Si les propriétés 'top' et 'bottom' ont la valeur 'auto' et non la propriété 'height', alors traiter la propriété 'top' comme valant 'static-position', réinitialiser les valeurs 'auto' de 'margin-top' et 'margin-bottom' à 0 et résoudre la propriété 'bottom' ;
  3. Si les propriétés 'height' et 'bottom' ont la valeur 'auto' et non la propriété 'top', alors la hauteur est fondée sur le contenu, réinitialiser les valeurs 'auto' de 'margin-top' et 'margin-bottom' à 0 et résoudre la propriété 'bottom' ;
  4. Si 'top' vaut 'auto' et que ni 'height' ni 'bottom' ne valent 'auto', alors réinitialiser les valeurs 'auto' de 'margin-top' et 'margin-bottom' à 0 et résoudre 'top' ;
  5. Si 'height' vaut 'auto' et que ni 'top' ni 'bottom' ne valent 'auto', alors réinitialiser les valeurs 'auto' de 'margin-top' et 'margin-bottom' à 0 et résoudre 'height' ;
  6. Si 'bottom' vaut 'auto' et que ni 'top' ni 'height' ne valent 'auto', alors réinitialiser les valeurs 'auto' de 'margin-top' et 'margin-bottom' à 0 et résoudre 'bottom'.

Section 10.3.7 Les éléments non remplacés en position absolue

[2000-10-24]Cette section à remplacer le texte suivant, ce qui permet d'aligner la largeur sur celle du contenu (rétrécir pour s'ajuster N.D.T. shrink-to-fit) :

La contrainte qui déterminent les valeurs calculées de ces éléments sont les suivantes :

'left' + 'margin-left' + 'border-left-width' + 'padding-left' + 'width' + 'padding-right' + 'border-right-width' + 'margin-right' + 'right' = largeur du bloc conteneur

Si les propriétés 'left', 'width' et 'right' ont toutes les trois la valeur 'auto' : si la valeur de la propriété 'direction' est 'ltr', traiter la propriété 'left' comme valant 'static-position' et appliquer la troisième des règles suivantes ; sinon traiter la propriété 'right' comme valant 'static-position' et appliquer la première des règles suivantes.

Si aucune de ces trois propriétés n'a la valeur 'auto' : si les propriétés 'margin-left' et 'margin-right' ont toutes les deux la valeur 'auto', résoudre l'équation avec comme contrainte supplémentaire que les deux marges aient des valeurs égales ; si l'une parmi 'margin-left' et 'margin-right' a la valeur 'auto', résoudre l'équation pour cette valeur ; si les valeurs sont sur-contraintes, ignorer la valeur de la propriété 'left' (au cas où la propriété 'direction' vaut 'rtl'), ou de la propriété 'right' (au cas où 'direction' vaut 'ltr') et résoudre pour cette valeur.

Sinon réinitialise les valeurs 'auto' de 'margin-left' et 'margin-right' à 0 et prendre celle qui s'applique parmi les six règles suivantes :

  1. Si les propriétés 'left' et 'width' valent 'auto' et non la propriété 'right', alors la largeur est rétrécie pour s'ajuster puis résoudre la propriété 'left' ;
  2. Si 'left' et 'right' valent 'auto' et non 'width', alors si 'direction' vaut 'ltr', traiter 'left' comme valant 'static-position', sinon traiter 'right' comme valant 'static-position'. Puis résoudre la propriété 'left' (si 'direction' vaut 'rtl'), ou bien 'right' (si 'direction' vaut 'ltr') ;
  3. Si 'width' et 'right' valent 'auto' et non 'left', alors la largeur est rétrécie pour s'ajuster. Puis résoudre la propriété 'right' ;
  4. Si 'left' vaut 'auto' et ni 'width' ni 'right' ne valent 'auto', alors résoudre la propriété 'left' ;
  5. Si 'width' vaut 'auto' et ni 'left' ni 'right' ne valent 'auto', alors résoudre la propriété 'width' ;
  6. Si 'right' vaut 'auto' et ni 'left' ni 'width' ne valent 'auto', alors résoudre la propriété 'right'.

Le calcul de la largeur rétrécie pour s'ajuster ressemble à celui pour la largeur d'une cellule de table en utilisant l'algorithme de disposition de table automatique. Grossièrement : calculer la largeur préférée en formatant le contenu sans couper de lignes hormis là où existent des sauts de ligne explicites, et calculer également la largeur minimum préférée, par exemple, en essayant tous les sauts de ligne possibles. CSS2 ne définit aucun algorithme précis. Troisièmement, déterminer la largeur disponible : celle-ci est calculée en résolvant la propriété 'width' après avoir assigné une valeur de 0 à la propriété 'left' (cas de la première règle) ou à la propriété 'right' (cas de la troisième règle).

Puis on détermine la largeur rétrécie pour s'ajuster : min(max(largeur minimum préférée, largeur disponible), largeur préférée).

Section 11.1.2

[1999-11-01] Tandis que CSS2 définit les valeurs de rect() comme indiquant des décalages par rapport aux côtés respectifs de la boîte, les mises en œuvre actuelles interprètent les valeurs par rapport aux bords haut et gauche pour toutes les quatre valeurs ( haut, droite, bas et gauche). Le groupe de travail propose de réviser CSS2 pour se conformer aux pratiques courantes.

Section 17.6 Les bordures

[2001-10-03] Plusieurs navigateurs en vogue suppose pour la propriété 'border-collapse' une valeur de 'separate' au lieu de 'collapse', ou montrent des comportements proches à cette valeur, même si, en réalité, ils n'appliquent pas le modèle de table de CSS. De ce fait, le groupe de travail CSS propose de changer la valeur initiale pour 'separate', afin de mieux correspondre à ce que les utilisateurs attendent.