Continguts:

1. Sintaxi
1.1. Tokenització
1.2. Paraules clau
1.3. Caràcters i case
1.4. Ordres
1.5. Regles "at"
1.6. Blocs
1.7. Conjunts de regles, blocs de declaracions i selectors
1.8. Declaracions i propietats
1.9. Comentaris
2. Regles per a tractar errors de l'anàlisi gramatical
3. Valors
3.1. Enters i nombres reals
3.2. Longituts
3.3. Percentatges
3.4. URL + URN = URI
3.5. Comptadors
3.6. Colors
3.7. Angles
3.8. Temps
3.9. Freqüències
3.10. Cadenes
4. Representació de documents CSS
4.1. Fer referència a caràcters no representats en una codificació de caràcter
1. Sintaxi
En aquest tema es descriu una gramàtica (i unes regles d'anàlisi gramatical compatibles en el futur) comunes a qualsevol versió de CSS (incloent-hi CSS2). Les futures versions de CSS s'adheriran a aquesta sintaxi bàsica, encara que podran afegir-hi restriccions sintàctiques addicionals.

Aquestes descripcions són normatives. Es complementen, a més, amb les regles gramaticals normatives presentades en l'Annexe.
1.1. Tokenització
Tots els nivells de CSS -- nivell 1, nivell 2 i tots els nivells futurs -- utilitzen la mateixa sintaxi bàsica. Això permet als agents d'usuari analitzar gramaticalment (encara que no entenguin completament) els fulls d'estil escrits en nivells de CSS que no existien en el moment que va ser creat l'agent d'usuari. Els dissenyadors poden utilitzar aquesta característica per a crear fulls d'estil que funcionin amb agents d'usuari antics, mentre que al mateix temps exerceixen les possibilitats dels últims nivells de CSS.

A nivell lèxic, els fulls d'estil CSS consisteixen en una seqüència de tokens (senyals, símbols). La llista de tokens per a CSS2 és la que segueix. Les definicions utilitzen les expressions regulars a l'estil Lex. Els codis octals fan referència a la ISO 10646. Com en Lex, en cas de múltiples coincidències, la unificació més llarga determina el token.

TokenDefinició
IDENT{ident}
ATKEYWORD@ {ident}
STRING{cadena}
HASH# {nom}
NUMBER{num}
PERCENTAGE{num}%
DIMENSION{num}{ident}
URIurl\({w}{cadena}{w}\)
|url\({w}([!#$%&*-~]|{noascii}|{escape})*{w}\)
UNICODE-RANGE U\+[0-9A-F?]{1,6}(-[0-9A-F]{1,6})?
CDO <!--
CDC -->
; ;
{ \{
} \}
( \(
) \)
[ \[
] \]
S [ \t\r\n\f]+
COMMENT \/\*[^*]*\*+([^/][^*]*\*+)*\/
FUNCTION {ident}\(
INCLUDES ~=
DASHMATCH |=
DELIM qualsevol altre caràcter que no hagi unificat amb les regles anteriors


Les macros de dins de les claus ({}) estan definides tal com segueix:

MacroDefinició
ident {nmstart}{nmchar}*
nom {nmchar}+
nmstart [a-zA-Z]|{noascii}|{escape}
noascii [^\0-\177]
unicode \\[0-9a-f]{1,6}[ \n\r\t\f]?
escape {unicode}|\\[ -~\200-\4177777]
nmchar [a-zA-Z0-9]|{noascii}|{escape}
num [0-9]+|[0-9]*\.[0-9]+
cadena {cadena1}|{cadena2}
cadena1 \"([\t !#$%&(-~]|\\{nl}|\'|{noascii}|{escape})*\"
cadena2 \'([\t !#$%&(-~]|\\{nl}|\"|{noascii}|{escape})*\'
nl \n|\r\n|\r|\f
w [ \t\r\n\f]*


La sintaxi bàsica per a CSS és la següent (els apartats següents descriuen com utilitzar-la). En l'Annexe es descriu una gramàtica més restrictiva que es troba més propera al llenguatge de CSS de nivell 2:
full_d'estil      :  [ CDO | CDC | S | declaració ]*;
declaració        :  conjunt_de_regles | regla_"at";
regla_"at"        :  ATKEYWORD S* qualsevol* [ bloc | ';' S* ];
bloc              :  '{' S* [ qualsevol | bloc | ATKEYWORD S* |
                     ';' ]* '}' S*;
conjunt_de_regles :  selector? '{' S* declaració? [ ';' S*
                      declaració? ]* '}' S*;
selector          :  qualsevol+;
declaració        :  propietat ':' S* valor;
propietat         :  IDENT S*;
valor             :  [ qualsevol | bloc | ATKEYWORD S* ]+;
qualsevol         :  [ IDENT | NUMBER | PERCENTAGE | DIMENSION 
                     | STRING | DELIM | URI | HASH | UNICODE-RANGE
                     | INCLUDES | FUNCTION qualsevol* | DASHMATCH | '('
                      qualsevol* ')' | '[' qualsevol* ']' ] S*;

Els tokens COMMENT no apareixen en la gramàtica (per a fer-la més llegible), però poden aparèixer qualsevol nombre d'aquests tokens entre altres tokens.

El token S d'aquesta gramàtca simbolitza l'espai en blanc. Només els caràcters "espace" (codi Unicode 32), "tab" (9), "line feed" (10), "carriage return" (13) i "form feed" (12) poden donar lloc a un espai blanc. Els altres caràcters semblants a espai blanc, tals com "em-space" (8195) i "ideographic space" (12288), mai formen part d'un espai blanc.
1.2. Paraules clau
Les paraules clau tenen la forma dels identificadors. Les paraules clau no poden anar entre cometes ("..." o '...'). Així,
	red
és una paraula clau, però
	"red"
no ho és (és una cadena). Altres exemples il·legals:
	width: "auto";
	border: "none";
	font-family: "serif";
	background: "red";
1.3. Caràcters i case
Les següents regles sempre regeixen:

1.4. Ordres
Un full d'estil CSS, per a qualsevol versió de CSS, consta d'una llista d' ordres (veieu la gramàtica de més amunt). Hi ha dos tipus d'ordres: les regles "at" i els conjunts de regles. Hi pot haver espais en blanc al voltant de les ordres.

En l'especificació de CSS2 (i, per tant, en aquest manual), les expressiona "immediatament abans" o "immediatament després" signifiquen que no hi intervé cap espai en blanc ni cap comentari.

1.5. Regles "at"
Les regles "at" s'inicien amb una paraula clau "at" que consta d'un caràcter '@' seguit immediatament per un identificador (per exemple: '@import', '@page').

Una regla "at" consta de tot el que hi ha fins al (i inclòs) proper punt i coma (;), o bé el proper bloc; el que es trobi primer. Un agent d'usuari CSS que trobi una regla "at" no reconeguda ha d'ignorar la regla "at" sencera i continuar analitzant a partir d'ella.

Els agents d'usuari CSS2 han d'ignorar qualsevol regla '@import' que es trobi dins d'un bloc o que no precedeixi tots els conjunts de regles.

Suposem, per exemple, que un analitzador de gramàtica CSS2 troba aquest full d'estil:
	@import "subs.css";
	H1 { color: blue }
	@import "list.css";
La segona '@import' és il·legal d'acord amb CSS2 (ja que es troba després d'una regla). L'analitzador gramatical CSS2 ignora tota la regla "at" sencera, reduïnt efectivament el full d'estil a això:
	@import "subs.css";
	H1 { color: blue }
En el següent exemple la segona regla "at" '@import' és invàlida ja que es troba dins d'un bloc '@media':
      @import "subs.css";
      @media print {
         @import "imprimir-main.css";
         BODY { font-size: 10pt }
      }
      H1 { color: blue }
1.6. Blocs
Un bloc comença amb una clau d'obertura ({) i acaba amb la clau de tancament corresponent (}). Entre les claus hi pot haver qualsevol caràcter, tenint en compte que els parèntesis (()), els claudàtors ([]) i les claus ({}) han d'aparèixer sempre en parelles congruents i es poden aniuar. Les cometes simples (') i les dobles (") també han d'aparèixer en parelles congruents i els caràcters que es troben entre elles s'analitzen gramaticalment com una cadena.

Aquí hi ha un exemple de bloc. Cal remarcar que la clau de tancament que es troba entre les cometes dobles no es correspon amb la clau d'obertura del bloc, i que la segona cometa simple és un caràcter "escapat" i que, per tant, no es correspon amb la primera cometa simple:
	{ causta: "}" + ({7} * '/'') }
Cal remarcar que aquesta regla no és vàlida a CSS2, però tot i amb això encara és un bloc tal i com s'ha definit més amunt.
1.7. Conjunts de regles, blocs de declaracions i selectors
Un conjunt de regles (també anomenat "regla") consta d'un selector seguit d'un bloc de declaracions.

Un bloc de declaracions (també anomenat {}-bloc) comença amb una clau d'obertura ({) i acaba amb la corresponent clau de tancament (}). Entre elles hi ha d'haver una llista de zero o més declaracions separades per punt i comes (;).

El selector (veieu també el tema sobre els selectors) consta de tot el que es troba fins a la primera clau d'obertura ({) (però aquesta no s'hi inclou). Un selector sempre va junt amb un {}-block. Quan un agent d'usuari no pot analitzar gramaticalment el selector (és a dir, no és vàlid a CSS2), ha d'ignorar també el {}-block.

CSS2 dóna un significat especial a la coma (,) en els selectors. Sigui com sigui, com que no se sap si la coma adquirirà altres significats en futures versions de CSS, la declaració sencera hauria de ser ignorada si hi hagués un error en qualsevol lloc del selector, encara que la resta del selector pugui semblar raonable per a CSS2.

Per exemple, com que "&" no és un token vàlid en un selector CSS2, un agent d'usuari CSS2 ha d'ignorar la segona línia sencera i no fixar el color de H3, H4 ni H5 a vermell:

	H1, H2 {color: green }
	H3, H4 & H5 {color: red }
	H6 {color: black }

Exemple:

Aquí hi ha un exemple més complex. Les primeres dues parelles de claus es troben dins d'una cadena, i no assenyalen el final del selector. Aquesta és una declaració CSS2 vàlida:
   P[exemple="public class lerele\
   {\
      private int x;\
   \
      lerele(int x) {\
         this.x = x;\
       }\
   \
   }"] { color: red }
1.8. Declaracions i propietats
Una declaració pot ser buida o bé constar d'una propietat, seguida d'un punt i coma (;), seguit d'un valor. Al voltant de cada ítem d'aquests hi pot haver espai en blanc.

A causa de la manera com funcionen els selectors, si hi ha múltiples declaracions pel mateix selector aquestes es poden organitzar en grups, separades per punt i comes.

Així, les següents regles:
	H1 { font-weight: bold }
	H1 { font-size: 12pt }
	H1 { line-height: 14pt }
	H1 { font-family: Helvetica }
	H1 { font-variant: normal }
	H1 { font-style: normal }
són equivalents a:
	H1 {
         font-weight: bold;
         font-size: 12pt;
         line-height: 14pt;
         font-family: Helvetica;
         font-variant: normal;
         font-style: normal
	}
Una propietat és un identificador. Pot aparèixer qualsevol caràcter en el valor, però els parèntesis ("()"), corxets ("[]"), claus ("{}"), cometes simples (') i cometes dobles (") han de venir aparellades, i els punt i comes que no es trobin dins de cadenes han de ser "escapats". Els parèntesis, els corxets i les claus es poden aniuar. Dins les cometes els caràcters s’analitzen com una cadena.

La sintaxi dels valors s'especifica separadament per a cada propietat, però en tots els casos els valors estan construits a partir d'identificadors, cadenes, números, longituts, percentatges, URIs, colors, angles, temps i freqüències.

Un agent d’usuari ha d’ignorar una declaració amb un nom de propietat invàlid o un valor invàlid. Cada propietat CSS2 té les seves pròpies restriccions sintàctiques i semàntiques sobre els valors que accepta.

Per exemple, suposem que un analitzador gramatical de CSS2 es troba aquest full d'estil:
 H1 { 
	 color: red; 
	 font-style: 12pt  /* Valor invàlid: 12pt */
 }  

 P { 
	 color: blue;
  	 font-vendor: any;  /* Prop. invàlida: font-vendor */
	 font-variant: small-caps 
 }

 EM EM { 
	 font-style: normal 
 }
La segona declaració de la primera línia té un valor invàlid ('12pt'). La segona declaració de la segona línia conté una propietat indefinida ('font-vendor'). L'analitzador gramatical de CSS2 ignorarà aquestes declaracions, i reduirà efectivament el full d'estil a:
	H1 { color: red; }
	P { color: blue;  font-variant: small-caps }
	EM EM { font-style: normal }
1.9. Comentaris
Els comentaris comencen amb els caràcters "/*" i acaben amb els caràcters "*/". Poden aparèixer en qualsevol lloc entre tokens i els seus continguts no tenen influència sobre la presentació. Els comentaris no es poden aniuar.

CSS també permet als delimitadors de comentaris del SGML ("<!--" i "-->") en certs llocs, però no delimiten comentaris CSS. Estan permesos per tal que les regles d’estil que apareguin en un document font HTML (dins l'element STYLE) puguin ocultar-se dels agents d’usuari pre-HTML 3.2. Veieu l'especificació de l'HTML 4.0 per a més informació.
2. Regles per a tractar errors de l'anàlisi gramatical
En alguns casos els agents d'usuari han d'ignorar part d'un full d'estil il·legal. L'especificació de CSS2 (i, per tant, aquest manual) defineix ignorar com que l'agent d'usuari analitza gramaticalment la part il·legal (a fi de trobar el seu inici i el seu final) però per altra banda actua com si no hi fos.

Per a assegurar que en un futur es puguin afegir noves propietats i nous valors per a les propietats existents, els agents d'usuari estan obligats a obeïr les següents regles quan es trobin en les següents situacions:

3. Valors
3.1. Enters i nombres reals
Alguns tipus de valors poden tenir valors enters (denotats per <enter>) o valors de nombres reals (denotats per <número>). Els nombres reals i els nombres enters només s'especifiquen en notació decimal. Un <enter> consisteix en un o més dígits d'entre el "0" i el "9". Un <número> pot ser un <enter> o bé zero o més dígits seguits d'un punt (.) seguit per un o més dígits. Tant els enters com els nombres reals poden anar precedits per un '-' o un '+' per a indicar el signe.

Cal observar que moltes propietats que permeten un enter o un nombre real com a valor realment restringeixen el valor a algun rang, sovints als valors no-negatius.
3.2. Longituts
Les longituts fan referència a mesures horitzontals o verticals.

El format d'un valor de longitut (denotat per <longitut> en aquest manual) és un <número> (amb o sense punt decimal) seguit immediatament per un identificador d'unitat (per ex., px, deg, etc.). Després d'un valor de longitut "0" l'identificador d'unitats és opcional.

Algunes propietats permeten valors de longitut negatius, però això pot complicar el model de formatat i hi poden haver límits específics de la implementació. Si no es pot suportar un valor de longitut negatiu aquest hauria de ser convertit al valor més proper que pugui ser suportat.

Hi ha dos tipus d'unitats de longitut: relatives i absolutes. Les unitats de longitut relatives especifiquen una longitut relativa a una altra propietat de longitut. Els fulls d'estil que utilitzen unitats relatives escalaran més fàcilment d'un mitjà a un altre (per ex., d'una pantalla d'ordinador a una impressora làser).

Les unitats relatives són:



Exemple:
	H1 { margin: 0.5em }      /* em */
	H1 { margin: 1ex }        /* ex */
	P  { font-size: 12px }    /* px */
La unitat 'em' és igual al valor computat de la propietat font-size de l'element sobre el qual s'utilitza. L'excepció és quan 'em' té lloc en el valor de la propietat font-size en sí, en tal cas fa referència a la mida de la font de l'element pare. Pot ser utilitzada per a l'amidament vertical o horitzontal. (Aquesta unitat també s'anomena de vegades la "quad-width" ("amplada quadrangular") en contextos tipogràfics.)

La unitat 'ex' ve definida per la x-height de la font. La x-height s'anomena així perquè sovint és igual a l'alçada de la "x" minúscula. No obstant una 'ex' està definida fins i tot per a fonts que no contenen cap "x".

Exemple:

La regla:
	H1 { line-height: 1.2em }
significa que l'alçada de la línia dels elements H1 serà un 20% més gran que la mida de la font dels elements H1. Per altra banda:
	H1 { font-size: 1.2em }
significa que la mida de la font dels elements H1 serà un 20% més gran que la mida de la font heretada pels elements H1.

Quan s'especifica per a l'arrel de l'arbre del document (per ex., "HTML" en HTML), 'em' i 'ex' fan referència al valor inicial de la propietat.

Les unitats de píxel són relatives a la resolució del dispositiu visualitzador, és a dir, molt sovint una pantalla d'ordinador. Si la densitat de píxel del dispositiu de sortida és molt diferent de la d'una pantalla típica d'ordinador, l'agent d'usuari hauria de reescalar els valors dels píxels. Es recomana que el píxel de referència sigui l'angle de la visual d'un píxel en un dispositiu amb una densitat de píxel de 90dpi i a una distància des del lector de la longitut d'un braç. Per a una longitut nominal de braç de 28 polzades l'angle de la visual és d'uns 0.0227 graus.

Per a llegir des d'una distància d'un braç, 1px correspon a més o menys 0.28 mm (1/90 polzades). Quan s'imprimeix en una impressora làser, expressa per a llegir a una mica menys d'un braç de distància (55 cm, 21 polzades), 1px és més o menys 0.21 mm. En una impressora de 300 dots-per-inch (dpi), pot arrodonir fins a 3 dots (0.25 mm); en una impressora de 600 dpi pot arrodonir a 5 dots.

Les dues imatges següents il·lustren l'efecte de la distància de visualització en la mida d'un píxel i l'efecte de la resolució del dispositiu. En la primera imatge la distància de lectura és de 71 cm (28 polzades) resulta en un px de 0.28 mm, mentre que una distància de lectura de 3.5 m (12 peus) requereix un px de 1.4 mm:



En la segona imatge una àrea d'1px per 1px és coberta per un sol punt en un dispositiu de baixa resolució (una pantalla d'ordinador), mentre que la mateixa àrea és coberta per 16 punts en un dispositiu de més alta resolució (com una impressora làser de 400 dpi):



Els elements fill no hereten els valors relatius especificats pels seus pares, sinó que (generalment) hereten els seus valors computats.

Exemple:

En les següents regles, el valor computat de text-indent dels elements H1 serà de 36pt, i no de 45pt, si H1 és un fill de l'element BODY.
	BODY {
	   font-size: 12pt;
	   text-indent: 3em;  /* és a dir, 36pt */
	}
	H1 { font-size: 15pt }

Les unitats de longitut absolutes només són útils quan les propietats físiques del mitjà de sortida són conegudes. Les unitats absolutes són:



Exemple:
	H1 { margin: 0.5in }      /* polzades  */
	H2 { line-height: 3cm }   /* centímetres */
	H3 { word-spacing: 4mm }  /* milímetres */
	H4 { font-size: 12pt }    /* punts */
	H4 { font-size: 1pc }     /* piques */
En els casos en què la longitut especificada no pot ser suportada, els agents han d'aproximar-la al valor real.
3.3. Percentatges
El format d'un valor percentual (denotat per <percentatge> en aquest manual) és un <número> seguit immediatament per '%'.

Els valors percentuals sempre són relatius a un altre valor, per exemple, una longitut. Cada propietat que permet percentatges també defineix el valor al qual fa referència el percentatge. El valor pot ser el d'una altra propietat per al mateix element, el d'una propietat per a un element ancestre o bé un valor del context de formatat (per ex., l'amplada d'un bloc contenidor). Quan un valor percentual es fixa per a una propietat de l'element arrel i el percentatge es defineix fent referència al valor heretat d'alguna propietat, el valor resultant és el valor inicial d'aquella propietat per les vegades indicades en el percentatge.

Exemple:

Com que els elements fill (generalment) hereten els valors computats dels seus pares, en el següent exemple els fills de l'element P heretaran un valor de 12pt per a line-height, i no el valor del percentatge (120%):
	P { font-size: 10pt }
	P { line-height: 120% }  /* 120% de 'font-size' */
3.4. URL + URN = URI
Les URLs (Uniform Resource Locators, veieu la RFC1738 i la RFC1808) proporcionen l'adreça d'un recurs de la Xarxa. Hi ha una nova manera d'identificar els recursos anomenada URN (Uniform Resource Name). Conjuntament s'anomenen URIs (Uniform Resource Identifiers, veieu URI). L'especificació de CSS2 (i, per tant, aquest manual) utilitza el terme URI.

Els valors d'URIs en aquest manual es denoten per <uri>. La notació funcional utilitzada per a designar URIs en els valors de les propietats és "url()", com a:
   BODY { background: url("http://www.bg.com/rosat.gif") }
El format d'un valor d'URI és 'url(' seguit per un espai blanc opcional seguit per un caràcter opcional de cometa simple (') o de cometa doble (") seguit per la URI en sí, seguida per un caràcter opcional de cometa simple (') o de cometa doble (") seguit per espai blanc opcional seguit per ')'. Els dos caràcters de cometes han de ser els mateixos.

Un exemple sense cometes:
   LI { list-style: url(http://www.vermell.com/boletesverm.png) disc }
Els parèntesis, les comes, els caràcters d'espai blanc, les cometes simples i les cometes dobles que apareguin en una URI s'han d'"escapar" amb una contrabarra: '\(', '\)', '\,'.

Depenent del tipus d'URI també podria ser possible escriure els caràcters de més amunt com a "escapes-URI" (on "(" = %28, ")" = %29, etc.) tal com es descriu en URI.

A fi de crear fulls d'estil modulars que no siguin depenents de la localització absoluta del recurs, els autors haurien d'utilitzar URIs relatives. Les URIs relatives (tal com està definit en la RFC1808) es resolen a URIs senceres utilitzant una URI base. La RFC 1808, secció 3, defineix l'algorisme normatiu per a aquest procés. Per als fulls d'estil CSS la uri base és la del full d'estil, no la del document font.

Per exemple, suposem que la següent regla:
	BODY { background: url("groc") }
es troba localitzada en un full d'estil designat per la URI
	http://www.organitzacio.org/estil/basic.css
El fons del BODY del document font serà un mosaic amb sigui quina sigui la imatge que està descrita pel recurs designat per la URI.
	http://www.organitzacio.org/estil/groc

Els agents d'usuari poden variar en la manera com tracten les URIs que designen recursos indisponibles o inaplicables.
3.5. Comptadors
Els comptadors es denoten per identificadors (veieu les propietats counter-increment i counter-reset). Per a referir-se al valor d'un comptador, s'utilitza la notació 'counter(<identificador>)' o bé 'counter(<identificador>, <list-style-type>)'. L'estil per defecte és 'decimal'.

Per referir-se a una seqüència de comptadors amb el mateix nom aniuats, la notació és 'counters(<identificador>, <cadena>)' o bé 'counters(<identificador>, <cadena>, <list-style-type>)'. Veieu l'apartat "Comptadors aniuats i abast" del tema sobre el contingut generat.

En CSS2, els valors dels comptadors només es poden referenciar des de la propietat content. Cal observar que 'none' és un possible valor de <list-style-type>: 'counter(x, none)' dóna lloc a una cadena buida.

Exemple:

Aquí hi ha un full d'estil que numera paràgrafs (P) per a cada capítol (H1). Els paràgrafs es numeren amb números romans, seguits per un punt i un espai:
   P {counter-increment: par-num}
   H1 {counter-reset: par-num}
   P:before {content: counter(par-num, upper-roman) ". "}
Els comptadors que no es troben dins l'abast de cap counter-reset es suposa que han estat reiniciats a 0 per counter-reset en l'element arrel.
3.6. Colors
Un <color> pot ser una paraula clau o bé una especificació numèrica d'un RGB.

Paraules clau pels colors:

aqua
black
blue
fuchsia
gray
green
lime
maroon
navy
olive
purple
red
silver
teal
white
yellow


Aquests 16 colors estan definits en l'especificació de l'HTML 4.0. A més d'aquestes paraules clau de colors els usuaris poden especificar paraules clau que corresponguin als colors utilitzats per certs objectes de l'entorn d'usuari. Podeu consultar l'apartat sobre colors del sistema del tema "Interfície d'usuari" per a més informació.

Exemple:
	BODY {color: black; background: white }
	H1 { color: maroon }
	H2 { color: olive }

Sistema RGB:

El model de color RGB s'utilitza en especificacions numèriques del color. Aquests exemples tots especifiquen el mateix color:
   EM { color: #f00 }              /* #rgb */
   EM { color: #ff0000 }           /* #rrggbb */
   EM { color: rgb(255,0,0) }      
   EM { color: rgb(100%, 0%, 0%) } 
El format d'un valor RGB en notació hexadecimal és un signe '#' seguit immediatament per 3 o 6 caràcters hexadecimals. La notació RGB de tres dígits (#rgb) es converteix a la forma de sis dígits (#rrggbb) per mitjà de la replicació dels dígits, i no afegint-hi zeros. Per exemple, #fb0 s'expandeix a #ffbb00. Això assegura que el blanc (#ffffff) es pugui especificar amb la notació curta (#fff) i elimina qualsevol dependència de la profunditat del color de la visualització.

El format d'un valor RGB en la notació funcional és 'rgb(' seguit per una llista de tres valors numèrics separats per comes (tres valors enters o tres valors percentuals) seguida de ')'. El valor de l'enter 255 correspon al 100%, i a F o FF en la notació hexadecimal:
	rgb(255,255,255) = rgb(100%,100%,100%) = #FFF = #FFFFFF

Els caràcters d'espai blanc estan permesos al voltant del valors numèrics.

Tots els colors RGB estan especificats en l'espai de colors sRGB. Els agents d'usuari poden variar en la fidelitat amb la qual representen aquests colors, però el fet d'utilitzar sRGB proporciona una definició no ambígua i objectivament mesurable de com hauria de ser el color, la qual cosa està subjecta als estàndards internacionals (veieu COLORIMETRY).

Els agents d'usuari conformats poden limitar els seus esforços per visualitzar els colors duent a terme una gamma-correcció sobre ells. sRGB especifica una gamma de visualització de 2.2 sota unes condicions de visualització específiques. Els agents d'usuari haurien d'ajustar els colors donats a CSS de manera que, en combinació amb una gamma de visualització "natural" d'un dispositiu de sortida, es produeixi una gamma de visualització efectiva de 2.2. Veieu l'apartat sobre la gamma correcció per a més detalls. Cal observar que només s'afecten els colors especificats en CSS; és a dir, per ex., que s'espera que les imatges portin la seva pròpia informació del color.

Els valors de fora de la gama del dispositiu s'haurien de retallar: els valors del vermell, el verd i el blau han de canviar-se per a que caiguin dins el rang suportat pel dispositiu. Per a un monitor CRT típic, la gama de dispositiu del qual és la mateixa que sRGB, les tres regles de sota són equivalents:
   EM { color: rgb(255,0,0) }       /* rang enter 0 - 255 */
   EM { color: rgb(300,0,0) }       /* retallat a rgb(255,0,0) */
   EM { color: rgb(255,-10,0) }     /* retallat a rgb(255,0,0) */
   EM { color: rgb(110%, 0%, 0%) }  /* retallat a rgb(100%,0%,0%) */
Altres dispositius, tals com les impressores, tenen diferents games per a sRGB; alguns color de fora del rang 0..255 seran representables (dins de la gama del dispositiu), mentre que altres colors dins del rang sRGB 0..255 es trobaran fora de la gama del dispositiu i per tant seran retallats.

Nota1. Encara que els colors poden afegir quantitats significatives d'informació al document i fer-lo més llegible, s'ha de considerar que certes combinacions de colors poden causar problemes per a usuaris amb dificultats per a distingir colors. Si s'utilitza una imatge de fons o es fixa un color de fons, cal ajustar el color de primer pla de manera adient.
3.7. Angles
Els valors d'angles (denotats per <angle> en aquest manual) s'utilitzen amb els fulls d'estil audibles.

El seu format és un <número> seguit immediatament per un identificador d'unitats d'angle.

Els identificadors d'unitats d'angle són:


Per exemple, un angle recte és '90deg' o '100grad' o bé '1.570796326794897rad'.

Els valors dels angles poden ser negatius. Han de ser normalitzats al rang 0-360deg per l'agent d'usuari. Per exemple, -10deg i 350deg són equivalents.
3.8. Temps
Els valors de temps (denotats per <temps> en aquest manual) s'utilitzen amb els fulls d'estil audibles.

El seu format és un <número> seguit immediatament per un identificador d'unitats de temps.

Els identificadors d'unitats de temps són:


Els valors de temps no poden ser negatius.
3.9. Freqüències
Els valors de freqüències (denotats per <freqüència> en aquest manual) s'utilitzen amb els fulls d'estil audibles.

El seu format és un <número> seguit immediatament per un identificador d'unitats de freqüència.

Els identificadors d'unitats de freqüència són:


Els valors de freqüències no poden ser negatius.

Per exemple, 200Hz (o 200hz) és un so greu, i 6kHz (o 6khz) és un so agut.
3.10. Cadenes
Les cadenes (denotades per <cadena> en aquest manual) poden estar escrites amb cometes dobles o bé amb cometes simples. Les cometes dobles no poden aparèixer dins de cometes dobles, a no ser que estiguin "escapades" (com '\"' o '\22'). Anàlogament per a les cometes simples ("\'" o "\27").

Exemple:
	"això és una 'cadena'"
	"això és una \"cadena\""
	'això és una "cadena"'
	'això és una \'cadena\''
Una cadena no pot contenir directament una nova línia. Per a incloure una nova línia en una cadena, cal utilitzar l'"escape" "\A" (A hexadecimal és el caràcter de line feed d'Unicode, però representa la noció genèrica de "nova línia" en CSS). Veieu la propietat content per a veure'n un exemple.

És possible trencar cadenes per diverses línies, per raons estètiques o d'altres, però en aquests casos la nova línia en sí ha de ser "escapada" amb una contrabarra (\). Per exemple, els dos selectors següents són exactament el mateix:
	A[TITLE="aquest títol no é\
	s gaire llarg"] {/*...*/}

	A[TITLE="aquest títol no és gaire llarg"] {/*...*/}
4. Representació de documents CSS
Un full d'estil CSS és una seqüència de caràcters del Conjunt Universal de Caràcters (ISO 10646). Per a la transmissió i l'emmagatzemament, aquests caràcters han d'estar codificats per una codificació de caràcter que suporti el conjunt de caràcters disponible en US-ASCII (per ex., ISO 8859-x, SHIFT JIS, etc.).

Per a una completa introducció als conjunts de caràcters i a les codificacions de caràcter cal consultar el capítol 5 de l'especificació de l'HTML 4.0.

Quan un full d'estil s'insereix en un altre document, ja sigui dins de l'element STYLE o bé mitjançant l'atribut "style" de l'HTML, el full d'estil comparteix la codificació de caràcter del document sencer.

Quan un full d'estil resideix en un fitxer separat, els agents d'usuari han d'observar les següents prioritats per a determinar la codificació de caràcter d'un document (de més alta prioritat a més baixa):

  1. Un paràmetre HTTP "charset" en un camp "Content-Type".
  2. La regla "at" @charset.
  3. Mecanismes del llenguatge del document que hi facin referència (és a dir, en HTML, l'atribut "charset" de l'element LINK).

En un full d'estil extern com a màxim hi pot haver una regla @charset --no n'hi pot haver cap en un full d'estil inserit-- i ha d'aparèixer al principi de tot del document, no la pot precedir cap altre caràcter. Després de "@charset" s'especifica el nom d'una codificació de caràcter. Aquest nom ha de ser el nom d'un conjunt de caràcters tal i com estan descrits en el registre IANA. També es pot consultar CHARSETS per a una llista completa de conjunts de caràcters (charsets). Per exemple:
	@charset "ISO-8859-1";

L'especificació de CSS2 (i, per tant, aquest manual) no dictamina quines codificacions de caràcter ha de suportar un agent d'usuari.

Cal remarcar que el fet de refiar-se de la construcció @charset teòricament presenta un problema ja que no hi ha, a priori, cap informació de com està codificada. A la pràctica, no obstant, les codificacions que estan àmpliament utilitzades en Internet es basen en ASCII, UTF-16, UCS-4 o bé (rarament) en EBCDIC. Això significa que en general els valors del byte inicial d'un document habiliten un agent d'usuari per detectar la família de codificacions fidedigna, la qual proporciona informació suficient per a la descodificar regla @charset, la qual al seu torn determina la codificació exacta de caràcter.
4.1. Fer referència a caràcters no representats en una codificació de caràcter
Un full d'estil pot haver de fer referència a caràcters que no poden ser representats en l'actual codificació de caràcter. Aquests caràcters s'han d'escriure com a referències "escapades" als caràcters de la ISO 10646. Aquests "escapes" serveixen el mateix propòsit que les referències numèriques a caràcters en documents HTML o XML.

El mecanisme d'"escape" de caràcters s'hauria d'utilitzar quan només uns pocs caràcters hagin de ser representats d'aquesta manera. Si la majoria del document requereix ser "escapat" els autors haurien de codificar-lo amb una codificació més apropiada (per ex., si el document conté molts caràcters grecs els autors haurien d'utilitzar la "ISO-8859-7" o la "UTF-8").

Els processadors intermedis que utilitzin una codificació de caràcter diferent poden traduir aquestes seqüències "escapades" a seqüències de bytes per a aquella codificació. Els processadors intermedis no poden, per altra banda, alterar les seqüències d'"escape" que cancel·lin el significat especial d'un caràcter ASCII.

Els agents d'usuari conformats han de fer correspondre correctament a l'Unicode tots els caràcters de qualsevol codificació de caràcter que reconeguin (o han de comportar-se com si ho haguessin fet).

Per exemple, un document transmès com a ISO-8859-1 (Latin-1) no pot contenir lletres gregues directament: "??????" (grec: "kouros") s'ha d'escriure com a "\3BA\3BF\3C5\3C1\3BF\3C2".

Nota. En HTML 4.0, les referències numèriques a caràcters s'interpreten en els valors de l'atribut "style" però no en el contingut de l'element STYLE. A causa d'aquesta asimetria es recomana que els autors utilitzin el mecanisme CSS d'"escape" de caràcters abans que les referències numèriques a caràcters, tant per a l'atribut "style" com per a l'element STYLE. Per exemple, es recomana:
   <SPAN style="voice-family: D\FC rst">...</SPAN>
abans que:
   <SPAN style="voice-family: D&#252;rst">...</SPAN>
Tancar
Pàgina Principal
Introducció al Manual d'HTML Dinàmic
Glossari
Referències























HTML 4.0
Introducció al manual d'HTML 4.0
Taules
Formularis
Objectes, imatges i applets
Scripts
Informació de l'idioma i sentit del text
Frames
Nous elements
Elements menyspreuats i obsolets
Fulls d'estil
Nous atributs de l'HTML 4.0
Índex d'atributs nous
Índex d'atributs menyspreuats
DTD
Annexe












Introducció als CSS
Introducció als CSS2 i al manual
Propietats CSS2
Fulls d'estil audibles
Model de caixa
Sintaxi i tipus bàsics de dades
Model de formatat visual
Detalls del model de formatat visual
Assignar valors de propietats, la cascada i l'herència
Interfície d'usuari
Efectes visuals
Text
Taules
Fonts
Contingut generat, numeració automàtica i llistes
Colors i fons
Selectors
Tipus de mitjans
Mitjans paginats
Suport de CSS2
Annexe




Introducció al DOM
DOM Nivell 1 - Nucli
DOM Nivell 1 - HTML
Articles sobre el DOM






















Programació en DHTML
Demos