Syntaxe et types de données de base

4.1 Syntaxe

4.1.1 Tokenisation

Tous les niveaux de CSS - niveau 1, niveau 2, et les niveaux futurs - utilisent la même syntaxe de base. Cela permet UAS parse (mais pas complètement comprendre) des feuilles de style écrites dans les niveaux de CSS qui n'existaient pas au moment où les UAs ont été créés. Les concepteurs peuvent utiliser cette fonctionnalité pour créer des feuilles de style qui travaillent avec les agents utilisateurs plus âgés, tout en exerçant les possibilités des derniers niveaux de CSS.

Par exemple, la règle de la plus longue signifie match qui « rouge - gt » tokenizé comme IDENT « red-- » suivi du DELIM « > », plutôt que comme un IDENT suivi d'un CDC.

La production « inutilisées » n'est pas utilisé en CSS et ne sera pas utilisé par toute extension future. Il est inclus ici seulement pour aider à la gestion des erreurs. (Voir 4.2 « Règles pour la gestion des erreurs d'analyse. »)

Le sens de l'entrée qui ne peut être segmenté ou parser est pas défini dans CSS 2.1.

Mots-clés 4.1.2

Mots-clés ont la forme d'identifiants. Mots-clés ne doivent pas être placés entre guillemets ( « » ou « »). Ainsi,

est un mot-clé, mais

n'est pas. (Il est une chaîne.) D'autres exemples illégaux:

4.1.2.1 extensions spécifiques au fournisseur

Par exemple, si l'organisation XYZ a ajouté une propriété pour décrire la couleur de la frontière du côté est de l'écran, ils pourraient l'appeler couleurs -xyz-frontière-est.

D'autres exemples connus:

Les auteurs doivent éviter des extensions spécifiques au fournisseur

4.1.2.2 Notes historiques d'information

Cette section est informative.

Au moment de l'écriture, les préfixes suivants sont connus pour exister:

4.1.3 caractères et la casse

Les règles suivantes sont toujours:

Notez que Unicode est équivalent code par le code ISO 10646 (voir [UNICODE] et [ISO10646]).

Tout d'abord, dans une chaîne. une barre oblique inverse suivie par un saut de ligne est ignoré (à savoir la chaîne est réputée ne pas contenir la barre oblique inverse ou le saut de ligne). En dehors d'une chaîne, une barre oblique inverse suivie d'une nouvelle ligne représente lui-même (à savoir un DELIM suivi d'un saut de ligne).

L'identifiant « te \ st » est exactement le même identifiant que « test ».





Déclarations 4.1.4

4.1.5 At-règles

Une règle-se compose de tout jusqu'au prochain point-virgule (;) ou le bloc suivant, selon la première éventualité.

On suppose, par exemple, qu'un analyseur CSS 2.1 rencontre cette feuille de style:

4.1.6 blocs

Voici un exemple d'un bloc. Notez que l'accolade droite entre les guillemets doubles ne correspond pas à l'accolade d'ouverture du bloc, et que la deuxième citation unique est un caractère échappé. et donc ne correspond pas à la première citation unique:

Notez que la règle ci-dessus n'est pas valide CSS 2.1, mais il est encore un bloc tel que défini ci-dessus.

Par exemple, étant donné que le « - » est pas un jeton valide dans un sélecteur CSS 2.1, un agent utilisateur CSS 2.1 doit ignorer toute la ligne deuxième, et non de définir la couleur H3 au rouge:

Ainsi, les règles suivantes:

sont équivalentes à:

La syntaxe des valeurs est spécifiée séparément pour chaque propriété, mais dans tous les cas, les valeurs sont compilés à partir des identificateurs, des chaînes, des nombres, des longueurs, des pourcentages, des URIs, couleurs, etc.

Par exemple, supposons une rencontre de l'analyseur CSS 2.1 cette feuille de style:

4.2 Règles pour la gestion des erreurs d'analyse syntaxique

Pour faire en sorte que de nouvelles propriétés et de nouvelles valeurs pour les propriétés existantes peuvent être ajoutés à l'avenir, les agents utilisateurs sont tenus d'obéir aux règles suivantes lorsqu'ils rencontrent les scénarios suivants:

l'agent utilisateur traitera cela comme si la feuille de style avait été

  • Fin inattendue de la feuille de style.

    seraient traités de la même chose que:

    dans un UA conforme.

    seraient traités de la même chose que:

    4.3 valeurs

    4.3.1 Entiers et nombres réels

    Notez que de nombreuses propriétés qui permettent à un nombre entier ou réel comme valeur limitent effectivement la valeur à une plage, souvent à une valeur non-négative.

    4.3.2 Longueurs

    Longueurs se réfèrent à la distance des mesures.

    Dans les cas où la longueur utilisée ne peut pas être pris en charge, les agents utilisateurs doivent se rapprocher dans la valeur réelle.

    Il existe deux types d'unités de longueur: relative et absolue. unités de longueur relative spécifient une longueur par rapport à une autre propriété de longueur. Les feuilles de style qui utilisent des unités relatives peuvent évoluer plus facilement d'un environnement de production à l'autre.

    Les unités relatives sont:

    L'unité « ex » est définie par la première police disponible de l'élément. L'exception est lorsque « ex » se produit dans la valeur de la propriété « font-size », auquel cas il se réfère à la « ex » de l'élément parent.

    Le « x-height » est appelée ainsi parce qu'elle est souvent égale à la hauteur du minuscule « x ». Cependant, un « ex » est défini, même pour les polices qui ne contiennent pas un « x ».

    signifie que la hauteur de la ligne d'éléments « h1 » sera de 20% supérieure à la taille de la police des éléments « h1 ». D'autre part:

    signifie que la taille des caractères des éléments « h1 » sera de 20% supérieure à la taille de la police hérité par des éléments « h1 ».

    Lorsque cela est spécifié pour la racine de l'arbre du document (par exemple « HTML » en HTML), reportez-vous à la valeur initiale de la propriété « em » et « ex ».

    Les éléments enfants ne héritent pas les valeurs relatives spécifiées pour leurs parents; ils héritent des valeurs calculées.

    Dans les règles suivantes, la valeur « text-indent » calculé des éléments « h1 » sera 36px, 45px pas, si « h1 » est un enfant de l'élément « corps ».

    unités de longueur absolues sont fixes par rapport à l'autre. Ils sont principalement utiles lorsque l'environnement de production est connu. Les unités absolues sont constitués par les unités physiques (in, cm, mm, pt, pc) et l'unité de px:

    • en pouces -. 1Dans est égal à 2,54 cm.
    • cm. centimètres
    • mm. millimètres
    • pt. points - les points utilisés par CSS sont égaux à 1 / 72e de 1 po.
    • pc. pica - 1pc est égal à 12pt.
    • px. unités de pixel - 1 pixel est égale à 0.75pt.






    Pour un dispositif de CSS, ces dimensions sont ancrés soit (i) en mettant en relation les unités physiques de leurs mesures physiques, ou (ii) en mettant en relation l'unité de pixel pour le pixel de référence. Pour la presse écrite et dispositifs similaires à haute résolution, l'unité d'ancrage devrait être l'une des unités physiques standard (pouces, centimètres, etc.). Pour les appareils à basse résolution, et des dispositifs avec des distances d'observation inhabituelle, il est recommandé à la place que l'unité d'ancrage soit l'unité de pixel. Pour ces appareils, il est recommandé que l'unité de pixel se réfèrent au nombre entier de pixels de l'appareil qui se rapproche le plus du pixel de référence.

    Notez que si l'unité d'ancrage est l'unité de pixel, les unités physiques peuvent ne pas correspondre leurs mesures physiques. En variante, si l'unité d'ancrage est une unité physique, l'unité de pixel peut ne pas correspondre à un nombre entier de pixels de dispositif.

    Notez que cette définition de l'unité de pixel et les unités physiques diffère des versions précédentes de CSS. En particulier, dans les versions précédentes de CSS l'unité de pixel et les unités physiques ne sont pas liés par un rapport fixe: les unités physiques ont toujours été liées à leurs mesures physiques alors que l'unité de pixel varie de plus près correspondre au pixel de référence. (Cette modification a été apportée parce que trop beaucoup de contenu existant repose sur l'hypothèse de 96dpi, et de briser cette hypothèse brise le contenu.)

    Le pixel de référence est l'angle visuel d'un pixel sur un dispositif avec une densité de pixels de 96 ppp et à une distance du lecteur de la longueur d'un bras. Pour la longueur d'un bras nominal de 28 pouces, l'angle visuel est donc environ 0,0213 degrés. Pour la lecture à bout de bras, 1px correspond donc à environ 0,26 mm (1/96 pouce).

    L'image ci-dessous illustre l'effet de la distance d'observation de la taille d'un pixel de référence: une distance de lecture de 71 cm (28 pouces) se traduit par un pixel de référence de 0,26 mm, tandis qu'une distance de lecture de 3,5 m (12 pieds) se traduit par un pixel de référence de 1,3 mm.

    Syntaxe et types de données de base
    [RÉ]

    Cette seconde image illustre l'effet de la résolution d'un dispositif sur l'unité de pixel: une zone de 1px par 1px est couvert par un seul point dans un dispositif à faible résolution (par exemple un écran d'ordinateur typique), tandis que la même zone est couverte par 16 points dans un dispositif de résolution plus élevée (par exemple une imprimante).

    Syntaxe et types de données de base
    [RÉ]

    4.3.3 Les pourcentages

    Le format d'une valeur de pourcentage (notée dans la présente description) est un immédiatement suivi de « % ».

    Étant donné que les éléments de l'enfant (en général) héritent des valeurs calculées de leurs parents, dans l'exemple suivant, les enfants de l'élément P hériteront une valeur de 12px pour « line-height ». pas la valeur en pourcentage (120%):

    4.3.4 URL et URIs

    Les valeurs URI (Uniform Resource Identifiers, voir [RFC3986]. qui comprend les URL, URN, etc.) dans cette spécification sont désignés par . La notation fonctionnelle utilisée pour désigner les URIs des valeurs de propriété est « url () », comme dans:

    Le format d'une valeur URI est « URL ( » suivie par un espace blanc en option suivi d'un « caractère) ou double guillemets ("), suivie par l'URI lui-même, suivi d'un guillemet simple en option ( » guillemet simple en option () ou guillemet ( ") suivi par un espace blanc en option suivie par '). Les deux guillemets doivent être les mêmes.

    Un exemple sans les guillemets:

    Certains caractères apparaissant dans un unquoted URI, tels que les parenthèses, des caractères blancs, des guillemets simples ( ') et des guillemets doubles ( "), doivent être échappés avec une barre oblique inverse pour que la valeur URI résultante est un jeton URI: « \ ( », '\).

    En fonction du type d'URI, il pourrait être également possible d'écrire les caractères ci-dessus comme URI-échappe (où "(" =% 28 ")" = 29%, etc.) tel que décrit dans [RFC3986].

    Par exemple, supposons que la règle suivante:

    est situé dans une feuille de style désignée par l'URI:

    Le fond du corps du document source sera carrelée avec ce que l'image est décrite par la ressource désignée par l'URI

    4.3.5 Compteurs

    Pour faire référence à une séquence de compteurs imbriqués du même nom, la notation est « compteurs (, ) « Ou » compteurs (, , <'list-style-type'>) » Avec un espace blanc facultatif séparant les jetons.

    Voir « compteurs emboîtées et la portée » dans le chapitre sur le contenu généré par la façon dont les agents utilisateurs doivent déterminer la valeur ou les valeurs du compteur. Voir la définition des contre-valeurs de la propriété « content » pour la façon dont il doit convertir ces valeurs en une chaîne.

    Dans CSS 2.1, les valeurs des compteurs ne peuvent être appelés à partir de la propriété « content ». Notez que « none » est possible <'list-style-type'>: 'Compteur (x, none)' donne une chaîne vide.

    Voici une feuille de style que les numéros des paragraphes (p) pour chaque chapitre (h1). Les paragraphes sont numérotés en chiffres romains, suivis d'une période et un espace:

    4.3.6 Couleurs

    UNE est soit un mot clé ou une spécification de RGB numérique.

    violet # 800080 fuchsia # ff00ff blanc #ffffff chaux # 00ff00 vert # 008000

    marine # 000080 bleu # 0000ff Aqua # 00FFFF sarcelle # 008080

    noir # 000000 argent # c0c0c0 gris # 808080

    Le modèle de couleur RVB est utilisé dans les spécifications de couleurs numériques. Ces exemples indiquent la même couleur:

    D'autres dispositifs, tels que les imprimantes, ont différentes plages que sRGB; certaines couleurs en dehors de la gamme sRGB 0..255 seront représentable (à l'intérieur de la gamme de l'appareil), tandis que d'autres couleurs à l'intérieur de la gamme sRGB 0..255 sera en dehors de la gamme de l'appareil et seront ainsi cartographié.

    4.3.7 Cordes

    Les chaînes peuvent soit être écrits avec des guillemets doubles ou avec des guillemets simples. Les guillemets doubles ne peuvent pas se produire à l'intérieur des guillemets doubles, à moins échappé (par exemple comme " 'ou « \ 22 »). guillemets simples pour analogue (par exemple « \' » ou « \ 27 »).

    Une chaîne ne peut pas contenir directement un saut de ligne. Pour inclure un saut de ligne dans une chaîne, en utilisant une évasion représentant le caractère de saut de ligne dans la norme ISO-10646 (U + 000A), tel que « \ A » ou « \ 00000a ». Ce caractère représente la notion générique de « nouvelle ligne » dans CSS. Voir la propriété « content » pour un exemple.

    Il est possible de briser les chaînes sur plusieurs lignes, pour des raisons esthétiques ou autres, mais dans ce cas, le retour à la ligne elle-même doit être échappé avec une barre oblique inverse (\). Par exemple, les deux sélecteurs suivants sont exactement les mêmes:

    4.3.8 Valeurs non prises en charge

    Si un UA ne prend pas en charge une valeur particulière, il doit ignorer cette valeur lors de l'analyse des feuilles de style, comme si cette valeur est une valeur illégale. Par exemple:

    4.4 Représentation de feuille de style CSS

    Lorsqu'une feuille de style est intégré dans un autre document, comme dans l'élément STYLE ou attribut « style » de HTML, les actions de la feuille de style de codage de caractères du document entier.

    Lorsqu'une feuille de style réside dans un fichier séparé, les agents utilisateurs doivent observer les priorités suivantes pour déterminer le codage de caractères d'une feuille de style (de la plus haute priorité au plus bas):

    Les agents utilisateurs doivent prendre en charge au moins l'encodage UTF-8.

    EF BB BF 40 63 68 61 72 73 65 74 20 22 (XX) 22 * ​​3B

    comme spécifié, transcodé à partir de GSM 03.38 pour ASCII

    Les agents utilisateurs doivent ignorer des feuilles de style en codages inconnus.

    4.4.1 En se référant à des caractères non représentés dans un codage de caractères

    Le mécanisme d'échappement de caractères doit être utilisé lorsque seulement quelques caractères doivent être représentés de cette façon. Si la plupart d'une feuille de style nécessite échapper, les auteurs doivent coder avec un codage plus approprié (par exemple si la feuille de style contient beaucoup de caractères grecs, les auteurs peuvent utiliser « ISO-8859-7 » ou « UTF-8 »).

    les agents utilisateurs doivent correctement la carte Conformes à la norme ISO-10646 tous les caractères des codages de caractères qu'ils reconnaissent (ou ils doivent se comporter comme si elles l'ont fait).

    Par exemple, une feuille de style transmis ISO-8859-1 (Latin-1) ne peut pas contenir des lettres grecques directement: "κουρος" (en grec: "Kouros") doit être écrit « \ 3BA \ 3BF \ 3C5 \ 3C1 \ 3BF \ 3C2" .

    Remarque. En HTML 4, les références de caractères numériques sont interprétées dans les valeurs d'attribut « style », mais pas dans le contenu de l'élément STYLE. En raison de cette asymétrie, nous recommandons que les auteurs utilisent le mécanisme d'échappement de caractères CSS plutôt que des références numériques de caractères tant pour l'attribut « style » et l'élément de style. Par exemple, nous vous recommandons:







    Articles Liés