Π ΡΠΈΡΡΠ΅ΠΌΠ΅ Π±ΠΈΡΠΎΠ²ΡΡ ΠΏΠΎΠ»Π΅ΠΉ TrueType Π΅ΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°, Π·Π°ΠΊΠ»ΡΡΠ°ΡΡΠ°ΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ ΡΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ° ΠΏΡΠΈΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½Π° ΠΊ Unicode 1.1 ΠΈ Π½Π΅ ΡΠΏΡΠ°Π²Π»ΡΠ΅ΡΡΡ Ρ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ΠΌ Unicode - Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΡΡ Tibetan ΠΈΠ»ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ Π²ΠΈΠ΄Ρ ΠΏΠΈΡΡΠΌΠ°, Π²Π²Π΅Π΄ΡΠ½Π½ΡΠ΅ Π² Unicode 2.0 ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ·Π΄Π½ΠΈΡ ΡΠ΅Π²ΠΈΠ·ΠΈΡΡ .
ΠΠ²ΡΠΎΡΡΠΊΠΈΠ΅ ΡΡΠΈΠ»ΠΈΡΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ Π°Π²ΡΠΎΡΠ°ΠΌ ΡΠ°Π±Π»ΠΈΡ ΡΡΠΈΠ»Π΅ΠΉ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡ ΠΈ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°ΡΡ Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡΡ ΡΡΠΈΡΡΠΎΠ². Π Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΡΠ»ΡΡΠ°ΡΡ Π°Π²ΡΠΎΡΡΠΊΠΈΠ΅ ΡΡΠΈΠ»ΠΈΡΡ ΠΌΠΎΠ³ΡΡ ΠΎΠΊΠ°Π·Π°ΡΡ ΠΏΠΎΠΌΠΎΡΡ ΠΏΡΡΡΠΌ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΉ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΡΡ ΡΡΠΈΡΡΠΎΠ² ΠΈ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡΠΎΠ² Π΄Π»Ρ ΡΡΠΈΡΡΠΎΠ², Π½Π° ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠΌΠ΅ΡΡΡΡ ΡΡΡΠ»ΠΊΠΈ Π² ΡΠ°Π±Π»ΠΈΡΠ΅ ΡΡΠΈΠ»Π΅ΠΉ. ΠΡΠ° ΡΡΠ½ΠΊΡΠΈΡ ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ ΡΠ°ΠΊΠΆΠ΅ ΡΡΠΈΠ»ΠΈΡΠ°ΠΌΠΈ, ΠΏΠΎΠ΄ΡΠ°Π·Π΄Π΅Π»ΡΡΡΠΈΠΌΠΈ ΠΈΠ»ΠΈ ΠΊΠΎΠ½Π²Π΅ΡΡΠΈΡΡΡΡΠΈΠΌΠΈ ΡΡΠΈΡΡΡ Π΄Π»Ρ Π³ΠΎΡΠΎΠ²Π½ΠΎΡΡΠΈ ΠΊ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠΉ Π·Π°Π³ΡΡΠ·ΠΊΠ΅.
ΠΠ°Π½Π½Π°Ρ ΡΠ°Π±Π»ΠΈΡΠ° ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ, Π³Π΄Π΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π½Π°ΠΉΠ΄Π΅Π½Π° ΡΠ°ΠΊΠ°Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π΄Π»Ρ ΡΡΠΈΡΡΠΎΠ² ΠΎΠ±ΡΡΠ½ΡΡ ΡΠΎΡΠΌΠ°ΡΠΎΠ².
ΠΠ΅ΡΠΊΡΠΈΠΏΡΠΎΡ Type 1 TrueType ΠΈ OpenType TrueType GX [TRUETYPEGX]'ascent''Ascender' Π² ΡΠ°ΠΉΠ»Π΅ AFM/PFM 'Ascender' Π² ΡΠ°Π±Π»ΠΈΡΠ΅ 'hhea' ΠΈΠ»ΠΈ (ΠΏΡΠ΅Π΄ΠΏΠΎΡΡΠΈΡΠ΅Π»ΡΠ½Π΅Π΅) 'sTypoAscender' Π² ΡΠ°Π±Π»ΠΈΡΠ΅ 'OS/2' 'horizontalBefore' Π² ΡΠ°Π±Π»ΠΈΡΠ΅ 'fmtx'baseline' ΡΠ°Π±Π»ΠΈΡΠ° bsln, ΡΠΌ. ΠΏΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅ Π½ΠΈΠΆΠ΅ 'bbox'FontBBox, ΡΠ»ΠΎΠ²Π°ΡΡ ΡΡΠΈΡΡΠΎΠ² Π²Ρ ΠΎΠΆΠ΄Π΅Π½ΠΈΡ ΡΠ°Π±Π»ΠΈΡΡ 'head' - 'xMin', 'xMax', 'yMin' ΠΈ 'yMax' 'cap-height'CapHeight Π² ΡΠ°ΠΉΠ»Π΅ AFM/PFM 'descent''Descender' Π² ΡΠ°ΠΉΠ»Π΅ AFM/PFM 'mathline' ΡΠ°Π±Π»ΠΈΡΠ° bsln 'font-family' FamilyName, fontinfo-ΡΠ»ΠΎΠ²Π°ΡΡ ΡΠ°Π±Π»ΠΈΡΠ° name'stemh' StdHW, ΠΏΡΠΈΠ²Π°ΡΠ½ΡΠΉ ΡΠ»ΠΎΠ²Π°ΡΡ ΡΠ°ΠΉΠ»Π° AFM/PFM 'stemv' /StdVW, ΠΏΡΠΈΠ²Π°ΡΠ½ΡΠΉ ΡΠ»ΠΎΠ²Π°ΡΡ ΡΠ°Π±Π»ΠΈΡΠ° cvt 'topline' ΡΠ°Π±Π»ΠΈΡΠ° bsln 'unicode-range' cmap file ΡΠ°Π±Π»ΠΈΡΠ° OS/2, ΡΠΌ. ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π‘ 'units-per-em' FontMatrix, ΡΠ»ΠΎΠ²Π°ΡΡ ΡΡΠΈΡΡΠΎΠ² unitsPerEm, ΡΠ°Π±Π»ΠΈΡΠ° head 'widths' ΡΠ°Π±Π»ΠΈΡΠ° hmtx
ΠΠ½ΡΡΡΠΈ ΡΠ°Π±Π»ΠΈΡΡ bsln, ideographic centered baseline ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π΄Π»Ρ ΡΠ°ΡΡΡΠΆΠ΅Π½ΠΈΠΉ ΠΏΡΠ΅ΠΎΠ±Π»Π°Π΄Π°ΡΡΠΈΡ ΠΈΠ΄Π΅ΠΎΠ³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ², Π° ideographic low baseline Π±ΠΎΠ»ΡΡΠ΅ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡ Π΄Π»Ρ ΠΈΠ΄Π΅ΠΎΠ³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² ΠΏΡΠΈ ΠΏΡΠΎΠ³ΠΎΠ½Π΅ ΠΏΡΠ΅ΠΎΠ±Π»Π°Π΄Π°ΡΡΠΈΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² Latin, Greek ΠΈΠ»ΠΈ Cyrillic.
ΠΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅. ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ D. ΠΡΠ°ΠΌΠΌΠ°ΡΠΈΠΊΠ° CSS2
ΠΡΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠ²Π»ΡΠ΅ΡΡΡ Π½ΠΎΡΠΌΠ°ΡΠΈΠ²Π½ΡΠΌ. ΠΡΠ°ΠΌΠΌΠ°ΡΠΈΠΊΠ° ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ CSS2. Π Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠΌ ΡΠΌΡΡΠ»Π΅ ΠΎΠ½Π° ΡΠ²Π»ΡΠ΅ΡΡΡ Π½Π°Π΄Π½Π°Π±ΠΎΡΠΎΠΌ CSS2, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π² ΡΡΠΎΠΉ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ Π²Π²ΠΎΠ΄ΡΡΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΠ΅ΠΌΠ°Π½ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ, Π½Π΅ ΡΠΊΠ°Π·Π°Π½Π½ΡΠ΅ Π² Π³ΡΠ°ΠΌΠΌΠ°ΡΠΈΠΊΠ΅. Π‘ΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠ΅ Π°Π³Π΅Π½ΡΡ (ΠΠ) ΡΠ°ΠΊΠΆΠ΅ ΠΎΠ±ΡΠ·Π°Π½Ρ ΠΏΡΠΈΠ΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΡΡ ΠΏΡΠ°Π²ΠΈΠ» Π²ΠΏΠ΅ΡΡΠ΄-ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΠ³ΠΎ ΡΠ°Π·Π±ΠΎΡΠ°, Π½ΠΎΡΠ°ΡΠΈΠΈ ΡΠ²ΠΎΠΉΡΡΠ² ΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΠΈ Π½ΠΎΡΠ°ΡΠΈΠΈ ΠΌΠΎΠ΄ΡΠ»Ρ. Π Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊ ΡΡΠΎΠΌΡ, ΡΠ·ΡΠΊ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ° ΠΌΠΎΠΆΠ΅Ρ Π²Π²ΠΎΠ΄ΠΈΡΡ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, HTML Π²Π²ΠΎΠ΄ΠΈΡ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π°ΡΡΠΈΠ±ΡΡΠ° "class".
ΠΡΠΎ Π³ΡΠ°ΠΌΠΌΠ°ΡΠΈΠΊΠ° LL(1) (Π½ΠΎ ΡΡΡΠΈΡΠ΅, ΡΡΠΎ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΠΠ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΅Ρ Π½Π°ΠΏΡΡΠΌΡΡ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΎΠ½Π° ΠΎΡΡΠ°ΠΆΠ°Π΅Ρ Π½Π΅ ΡΠΎΠ³Π»Π°ΡΠ΅Π½ΠΈΡ ΠΏΠΎ ΡΠ°Π·Π±ΠΎΡΡ, Π° ΡΠΎΠ»ΡΠΊΠΎ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ CSS2. Π€ΠΎΡΠΌΠ°Ρ ΠΏΡΠΎΠ΄ΡΠΊΡΠΎΠ² ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°Π½ Π΄Π»Ρ ΡΠ΄ΠΎΠ±ΡΡΠ²Π°, ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΎΠΊΡΠ°ΡΠ΅Π½ΠΈΡ Yacc (ΡΠΌ. [YACC]):
[x]. *: 0 ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅
[x]. +: 1 ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅
[x]. ?: 0 ΠΈΠ»ΠΈ 1
[x]. |: ΡΠ°Π·Π΄Π΅Π»ΠΈΡΠ΅Π»Ρ Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²
[x]. [ ]: Π³ΡΡΠΏΠΏΠΈΡΠΎΠ²ΠΊΠ°
ΠΡΠΎΠ΄ΡΠΊΡΠ°ΠΌΠΈ ΡΠ²Π»ΡΡΡΡΡ:
stylesheet : [ CHARSET_SYM S* STRING S* ';' ]? [S|CDO|CDC]* [ import [S|CDO|CDC]* ]* [ [ ruleset | media | page | font_face ] [S|CDO|CDC]* ]* ; import : IMPORT_SYM S* [STRING|URI] S* [ medium [ ',' S* medium]* ]? ';' S* ; media : MEDIA_SYM S* medium [ ',' S* medium ]* '{' S* ruleset* '}' S* ; medium : IDENT S* ; page : PAGE_SYM S* IDENT? pseudo_page? S* '{' S* declaration [ ';' S* declaration ]* '}' S* ; pseudo_page : ':' IDENT ; font_face : FONT_FACE_SYM S* '{' S* declaration [ ';' S* declaration ]* '}' S* ; operator : '/' S* | ',' S* | /* empty */ ; combinator : '+' S* | '>' S* | /* empty */ ; unary_operator : '-' | '+' ; property : IDENT S* ; ruleset : selector [ ',' S* selector ]* '{' S* declaration [ ';' S* declaration ]* '}' S* ; selector : simple_selector [ combinator simple_selector ]* ; simple_selector : element_name? [ HASH | class | attrib | pseudo ]* S* ; class : '.' IDENT ; element_name : IDENT | '*' ; attrib : '[' S* IDENT S* [ [ '=' | INCLUDES | DASHMATCH ] S* [ IDENT | STRING ] S* ]? ']' ; pseudo : ':' [ IDENT | FUNCTION S* IDENT S* ')' ] ; declaration : property ':' S* expr prio? | /* empty */ ; prio : IMPORTANT_SYM S* ; expr : term [ operator term ]* ; term : unary_operator? [ NUMBER S* | PERCENTAGE S* | LENGTH S* | EMS S* | EXS S* | ANGLE S* | TIME S* | FREQ S* | function ] | STRING S* | IDENT S* | URI S* | RGB S* | UNICODERANGE S* | hexcolor ; function : FUNCTION S* expr ')' S* /* * ΠΠΌΠ΅Π΅ΡΡΡ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠ΅: ΡΠ²Π΅Ρ ΠΎΠ±ΡΠ·Π°Π½ ΠΈΠΌΠ΅ΡΡ * 3 ΠΈΠ»ΠΈ 6 16-ΡΠΈΡΠ½ΡΡ ΡΠΈΡΡ (Ρ.Π΅., [0-9a-fA-F]) ΠΏΠΎΡΠ»Π΅ "#", * Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, "#000" ΡΡΠΎ OK, Π½ΠΎ "#abcd" - Π½Π΅Ρ. */ hexcolor : HASH S* ;
ΠΡΠΎ ΡΠΊΠ°Π½Π΅Ρ, Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡΠΉ Π² Π½ΠΎΡΠ°ΡΠΈΠΈ Flex (ΡΠΌ. [FLEX]). Π‘ΠΊΠ°Π½Π΅Ρ ΡΠ²Π»ΡΠ΅ΡΡΡ Π½Π΅ΡΡΠ²ΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΡΠΌ ΠΊ ΡΠ΅Π³ΠΈΡΡΡΡ.
ΠΠ²Π° "\377" ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ Π½Π°ΠΈΠ±ΠΎΠ»ΡΡΠ΅Π΅ ΡΠΈΡΠ»ΠΎ ΡΠΈΠΌΠ²ΠΎΠ»Π°, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°Π½ΠΎ ΡΠ΅ΠΊΡΡΠ΅ΠΉ Π²Π΅ΡΡΠΈΠ΅ΠΉ Flex (Π΄Π΅ΡΡΡΠ΅ΡΠΈΡΠ½ΠΎΠ΅ 255). ΠΠ½ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠΈΡΠ°ΡΡΡΡ ΠΊΠ°ΠΊ "\4177777" (Π΄Π΅ΡΡΡΠ΅ΡΠΈΡΠ½ΠΎΠ΅ 1114111), ΠΊΠΎΡΠΎΡΠΎΠ΅ ΡΠ²Π»ΡΠ΅ΡΡΡ Π½Π°ΠΈΠ²ΡΡΡΠ΅ΠΉ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΠΉ ΠΊΠΎΠ΄ΠΎΠ²ΠΎΠΉ ΡΠΎΡΠΊΠΎΠΉ Π² Unicode/ISO-10646.
%option case-insensitive h [0-9a-f] nonascii [\200-\377] unicode \\{h}{1,6}[ \t\r\n\f]? escape {unicode}|\\[ -~\200-\377] nmstart [a-z]|{nonascii}|{escape} nmchar [a-z0-9-]|{nonascii}|{escape} string1 \"([\t !#$%&(-~]|\\{nl}|\'|{nonascii}|{escape})*\" string2 \'([\t !#$%&(-~]|\\{nl}|\"|{nonascii}|{escape})*\' ident {nmstart}{nmchar}* name {nmchar}+ num [0-9]+|[0-9]*"."[0-9]+ string {string1}|{string2} url ([!#$%&*-~]|{nonascii}|{escape})* w [ \t\r\n\f]* nl \n|\r\n|\r|\f range \?{1,6}|{h}(\?{0,5}|{h}(\?{0,4}|{h}(\?{0,3}|{h}(\?{0,2}|{h}(\??|{h}))))) %% [ \t\r\n\f]+ {return S;} \/\*[^*]*\*+([^/][^*]*\*+)*\/ /* ignore comments */ "<!--" {return CDO;} "-->" {return CDC;} "~=" {return INCLUDES;} "|=" {return DASHMATCH;} {string} {return STRING;} {ident} {return IDENT;} "#"{name} {return HASH;} "@import" {return IMPORT_SYM;} "@page" {return PAGE_SYM;} "@media" {return MEDIA_SYM;} "@font-face" {return FONT_FACE_SYM;} "@charset" {return CHARSET_SYM;} "@"{ident} {return ATKEYWORD;} "!{w}important" {return IMPORTANT_SYM;} {num}em {return EMS;} {num}ex {return EXS;} {num}px {return LENGTH;} {num}cm {return LENGTH;} {num}mm {return LENGTH;} {num}in {return LENGTH;} {num}pt {return LENGTH;} {num}pc {return LENGTH;} {num}deg {return ANGLE;} {num}rad {return ANGLE;} {num}grad {return ANGLE;} {num}ms {return TIME;} {num}s {return TIME;} {num}Hz {return FREQ;} {num}kHz {return FREQ;} {num}{ident} {return DIMEN;} {num}% {return PERCENTAGE;} {num} {return NUMBER;} "url("{w}{string}{w}")" {return URI;} "url("{w}{url}{w}")" {return URI;} {ident}"(" {return FUNCTION;} U\+{range} {return UNICODERANGE;} U\+{h}{1,6}-{h}{1,6} {return UNICODERANGE;} . {return *yytext;}
ΠΠΌΠ΅ΡΡΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ°Π·Π»ΠΈΡΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρ Π²ΡΡΠ΅ΠΏΡΠΈΠ²Π΅Π΄ΡΠ½Π½ΡΠΌ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠΎΠΌ ΠΈ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠΎΠΌ, ΡΠΏΠ΅ΡΠΈΡΠΈΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌ Π² ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°ΡΠΈΡΡ CSS1 ([CSS1]). ΠΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΡΡΠΈΡ ΠΎΡΠ»ΠΈΡΠΈΠΉ - ΠΈΠ·-Π·Π° Π½ΠΎΠ²ΡΡ ΠΏΠΎΠ½ΡΡΠΈΠΉ Π² CSS2, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΡΡΡΡΡΡΠ²ΠΎΠ²Π°Π»ΠΈ Π² CSS1. ΠΡΡΠ³ΠΈΠ΅ - ΠΈΠ·-Π·Π° ΡΠΎΠ³ΠΎ, ΡΡΠΎ Π³ΡΠ°ΠΌΠΌΠ°ΡΠΈΠΊΠ° Π±ΡΠ»Π° ΠΏΠ΅ΡΠ΅ΠΏΠΈΡΠ°Π½Π°, ΡΡΠΎΠ±Ρ ΡΠ΄Π΅Π»Π°ΡΡ Π΅Ρ Π±ΠΎΠ»Π΅Π΅ ΡΠΈΡΠ°Π±Π΅Π»ΡΠ½ΠΎΠΉ. ΠΠ΄Π½Π°ΠΊΠΎ Π΅ΡΡΡ ΠΈ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²ΡΠ·Π²Π°Π»ΠΈ Π±Ρ ΠΎΡΠΈΠ±ΠΊΡ Π² CSS1. ΠΠ½ΠΈ ΡΠ°Π·ΡΡΡΠ½Π΅Π½Ρ Π½ΠΈΠΆΠ΅.
[x]. Π’Π°Π±Π»ΠΈΡΡ ΡΡΠΈΠ»Π΅ΠΉ CSS1 ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½Ρ ΡΠΎΠ»ΡΠΊΠΎ 1-Π±Π°ΠΉΡ-Π½Π°-ΡΠΈΠΌΠ²ΠΎΠ», ΠΊΠ°ΠΊ ASCII ΠΈ ISO-8859-1. CSS2 Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ ΡΠ°ΠΊΠΈΡ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠΉ. ΠΠ° ΠΏΡΠ°ΠΊΡΠΈΠΊΠ΅ Π±ΡΠ»ΠΎ ΠΌΠ°Π»ΠΎ ΡΡΡΠ΄Π½ΠΎΡΡΠ΅ΠΉ Ρ ΡΠΊΡΡΡΠ°ΠΏΠΎΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΠΊΠ°Π½Π΅ΡΠ°Π° CSS1, ΠΈ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΠ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π»ΠΈ 2-Π±Π°ΠΉΡΠ½ΠΎΠ΅ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅.
[x]. CSS1 Π΄ΠΎΠΏΡΡΠΊΠ°Π» ΡΠΎΠ»ΡΠΊΠΎ ΡΠ΅ΡΡΡΠ΅ 16-ΡΠΈΡΠ½ΡΡ ΡΠΈΡΠ»Π° ΠΏΠΎΡΠ»Π΅ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠ³ΠΎ ΡΠ»ΡΡΠ° (\) Π΄Π»Ρ ΡΡΡΠ»ΠΎΠΊ Π½Π° ΡΠΈΠΌΠ²ΠΎΠ»Ρ Unicode, CSS2 Π΄ΠΎΠΏΡΡΠΊΠ°Π΅Ρ ΡΠ΅ΡΡΡ. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, CSS2 Π΄ΠΎΠΏΡΡΠΊΠ°Π΅Ρ ΡΠΈΠΌΠ²ΠΎΠ»Ρ ΠΏΡΠΎΠ±Π΅Π»Π° Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΠ°Π·Π³ΡΠ°Π½ΠΈΡΠΈΡΠ΅Π»Π΅ΠΉ escape-ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠ΅ΠΉ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠΈ Ρ CSS1, ΡΡΡΠΎΠΊΠ° "\abcdef" ΠΈΠΌΠ΅Π΅Ρ 3 Π±ΡΠΊΠ²Ρ (\abcd, e ΠΈ f), Π° Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠΈ Ρ CSS2 - ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄Π½Ρ (\abcdef).
[x]. Π‘ΠΈΠΌΠ²ΠΎΠ» ΡΠ°Π±ΡΠ»ΡΡΠΈΠΈ (ASCII 9) Π² ΡΡΡΠΎΠΊΠ°Ρ Π½Π΅ Π΄ΠΎΠΏΡΡΠΊΠ°Π΅ΡΡΡ. ΠΠ΄Π½Π°ΠΊΠΎ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΡΡΠΎΠΊΠΈ Π² CSS1 ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΠΈΠΌΡΠ½ ΡΡΠΈΡΡΠΎΠ² ΠΈ Π΄Π»Ρ URL, Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΠΎΠ΅, ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ Π½Π΅ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΠΈ ΠΌΠ΅ΠΆΠ΄Ρ CSS1 ΠΈ CSS2, ΡΡΠΎ Π΅ΡΠ»ΠΈ ΡΠ°Π±Π»ΠΈΡΠ° ΡΡΠΈΠ»Π΅ΠΉ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΠ΅ΠΌΠ΅ΠΉΡΡΠ²ΠΎ ΡΡΠΈΡΡΠΎΠ², ΠΈΠΌΠ΅ΡΡΠ΅Π΅ ΡΠΈΠΌΠ²ΠΎΠ» ΡΠ°Π±ΡΠ»ΡΡΠΈΠΈ Π² ΡΠ²ΠΎΡΠΌ ΠΈΠΌΠ΅Π½ΠΈ.
[x]. Π’Π°ΠΊΠΆΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»Ρ Π½ΠΎΠ²ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ (escape-ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ Ρ ΠΎΠ±ΡΠ°ΡΠ½ΡΠΌ ΡΠ»ΡΡΠ΅ΠΌ) Π½Π΅ Π΄ΠΎΠΏΡΡΠΊΠ°Π»ΠΈΡΡ Π² ΡΡΡΠΎΠΊΠ°Ρ CSS1.
[x]. CSS2 ΡΠ°Π·Π±ΠΈΡΠ°Π΅Ρ ΡΠΈΡΠ»ΠΎ ΡΠΎ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ Π·Π° Π½ΠΈΠΌ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠΌ ΠΊΠ°ΠΊ ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ΅Π½ΠΈΠ΅ DIMEN (Ρ.Π΅. ΠΊΠ°ΠΊ Π½Π΅ΠΈΠ·Π²Π΅ΡΡΠ½ΡΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ). CSS1 ΡΠ°Π·Π±ΠΈΡΠ°Π» Π΅Π³ΠΎ ΠΊΠ°ΠΊ ΡΠΈΡΠ»ΠΎ ΠΈ ΠΊΠ°ΠΊ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ. ΠΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ Π² CSS1 ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠ΅ 'font: 10pt/1.2serif' Π±ΡΠ»ΠΎ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΡΠΌ, Π° Π² 'font: 10pt/12pt serif'; Π² CSS2 ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΠΏΡΠΎΠ±Π΅Π» ΠΏΠ΅ΡΠ΅Π΄ "serif". (ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΠ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π»ΠΈ ΠΏΠ΅ΡΠ²ΡΠΉ ΠΏΡΠΈΠΌΠ΅Ρ, Π½ΠΎ Π½Π΅ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π»ΠΈ Π²ΡΠΎΡΠΎΠΉ.)
[x]. Π CSS1 ΠΈΠΌΡ ΠΊΠ»Π°ΡΡΠ° ΠΌΠΎΠ³Π»ΠΎ Π½Π°ΡΠΈΠ½Π°ΡΡΡΡ ΡΠΈΡΡΠΎΠΉ (".55ft"), Π΅ΡΠ»ΠΈ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ½ΠΎ Π½Π΅ Π±ΡΠ»ΠΎ ΡΠ°Π·ΠΌΠ΅ΡΠΎΠΌ (".55in"). Π CSS2 ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ»Π°ΡΡΡ ΡΠ°Π·Π±ΠΈΡΠ°ΡΡΡΡ ΠΊΠ°ΠΊ Π½Π΅ΠΈΠ·Π²Π΅ΡΡΠ½ΡΠ΅ ΡΠ°Π·ΠΌΠ΅ΡΡ (ΡΡΠΎΠ±Ρ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡΡ Π² Π±ΡΠ΄ΡΡΠ΅ΠΌ Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π½ΠΎΠ²ΡΡ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ). Π§ΡΠΎΠ±Ρ ΡΠ΄Π΅Π»Π°ΡΡ ".55ft" Π΄Π΅ΠΉΡΡΠ²ΡΡΡΠΈΠΌ ΠΊΠ»Π°ΡΡΠΎΠΌ, CSS2 ΡΡΠ΅Π±ΡΠ΅Ρ, ΡΡΠΎΠ±Ρ ΠΏΠ΅ΡΠ²Π°Ρ ΡΠΈΡΡΠ° Π±ΡΠ»Π° escape (".\55ft")