J'ai vu dans l'excellent guide de yoyodesign (retraduction du Cascading Style Sheets, level 2) un chapitre sur la grammaire lexicale de css2:
# * : 0 ou plus ;
# + : 1 ou plus ;
# ? : 0 ou 1 ;
# | : options séparées ;
# [ ]

Ce qui suit (les productions) n'est pas très compréhensible pour moi
D'autre part, on y parle du scanner lexical: également du chinois pour mon niveau "brouzouf". Smiley confus

Quelqu'un connaît-il un site qui donne des tutos et des exemples concrets là-dessus ?
Merci à vous
Salut,

Cette grammaire ne fait pas partie, à proprement parler, de la syntaxe CSS. Il s'agit de signes employés dans des expressions régulières illustrant, dans la spécification CSS 2.1 (ainsi que les spécifications CSS 3), la syntaxe des valeurs possibles de chaque propriété.

Prenons l'exemple de la propriété font-family. La spécification CSS 2.1 illustre la valeur de cette propriété comme suit :
[[ <family-name> | <generic-family> ] [, <family-name>| <generic-family>]* ] | inherit

Cela signifie que la propriété font-family peut avoir comme valeur inherit, ou bien un nom de police ou un nom de police générique, qui peuvent être suivis (avec une virgule en guise de séparation) d'un ou de plusieurs autres noms de police ou de police générique.

Autrement dit (et c'est ce qu'il faut comprendre finalement), la propriété font-family aura une syntaxe valide dans les cas suivants :
font-family: inherit;
font-family: Arial;
font-family: sans-serif;
font-family: Arial, sans-serif;
font-family: Arial, Helvetica, sans-serif;
font-family: fantasy, sans-serif;

En revanche, les cas suivants ne seront pas valides :
font-family: Arial, inherit;
font-family: inherit, Arial;
font-family: sans-serif, inherit;
font-family: inherit, sans-serif;

Est-ce plus clair, à présent ? Smiley cligne

En fait, pour mieux comprendre la présentation des valeurs possibles, il faut déjà comprendre le principe des expressions régulières.
Modifié par Victor BRITO (30 Sep 2010 - 18:36)
Administrateur
Bonjour,

yacc et (f)lex sont deux programmes qui existent sur Unix depuis quelques dizaines d'années et qui permettent de "lire" et "comprendre" un fichier texte selon les règles spécifiques à ce type de fichier. Leur syntaxe est donc bien connue de ceux qui ont besoin de la connaître (les développeurs).

Avec CSS, il faut qu'un navigateur puisse analyser les instructions, blocs de règles et sélecteurs de règles. Et que tous les navigateurs fassent de même !
Exemple avec CSS, il faut ignorer les commentaires, commencer par lire un sélecteur de règles, il se termine par une accolade "{", là on rencontre une instruction, elle se termine au ":", puis vient la valeur qui se termine par ";" ou le "}" de la fin du bloc de règles, etc Mais a priori cette partie-là s'adresse plutôt aux concepteurs de navigateurs Smiley cligne
Modifié par Felipe (30 Sep 2010 - 18:48)