Continguts:

1. Definició de "bloc contenidor"
2. Amplada del contingut: la propietat 'width'
3. Calcular amplades i marges
3.1. Elements inline no reemplaçats
3.2. Elements inline reemplaçats
3.3. Elements block-level no reemplaçats en el fluxe normal
3.4. Elements block-level reemplaçats en el fluxe normal
3.5. Elements flotants no reemplaçats
3.6. Elements flotants reemplaçats
3.7. Elements no reemplaçats absolutament posicionats
3.8. Elements reemplaçats absolutament posicionats
4. Amplades mínima i màxima: 'min-width' i 'max-width'
5. Alçada del contingut: la propietat 'height'
6. Calcular alçades i marges
6.1. Elements inline no reemplaçats
6.2. Elements inline reemplaçats, elements block-level reemplaçats en el fluxe normal, i elements flotants reemplaçats
6.3. Elements block-level no reemplaçats en el fluxe normal, i elements flotants no reemplaçats
6.4. Elements no reemplaçats absolutament posicionats
6.5. Elements reemplaçats absolutament posicionats
7. Alçades mínima i màxima: 'min-height' i 'max-height'
8. Càlculs d'alçada de línia: les propietats 'line-height' i 'vertical-align'
8.1. Interlineat i semi-interlineat
1. Definició de "bloc contenidor"
La posició i la mida de la(es) caixa(es) d’un element de vegades es calculen de manera relativa a un cert rectangle, anomenat el bloc contenidor de l'element. El bloc contenidor d'un element es defineix així:

  1. El bloc contenidor (anomenat el bloc contenidor inicial) dins el qual resideix l’element arrel, és escollit per l’agent d’usuari.
  2. Per als altres elements, a no ser que l’element estigui posicionat absolutament, el bloc contenidor és format pel límit del contingut de la caixa de l’ancestre block-level més proper.
  3. Si l’element té "position: fixed", el bloc contenidor és establert pel viewport.
  4. Si l’element té "position:absolute", el bloc contenidor és establert per l’ancestre més proper amb un valor per a la propietat 'position' diferent de 'static', de la següent manera:
    1. En cas que l’ancestre sigui block-level, el bloc contenidor és format pel límit del farciment de l’ancestre.
    2. En cas que l’ancestre sigui inline-level, el bloc contenidor depèn de la propietat direction de l’ancestre:
      1. Si "direction: ltr", les parts superior i esquerra del bloc contenidor són (respectivament) els límits superior i esquerre del contingut de la primera caixa generada per l’ancestre, i les parts inferior i dreta són (respectivament) els límits inferior i dret del contingut de l'última caixa de l’ancestre.
      2. Si "direction: rtl", les parts superior i dreta són (respectivament) els límits superior i dret de la primera caixa generada per l’ancestre, i les parts inferior i esquerra són (respectivament) els límits inferior i esquerre del contingut de l'última caixa de l’ancestre.


Si no hi ha cap ancestre, els límits del contingut de la caixa de l’element arrel estableixen el bloc contenidor.

Sense posicionament, els blocs contenidors (BC) del següent document:
	<HTML>
	<HEAD>
	 <TITLE>Il·lustració de blocs contenidors</TITLE>
	</HEAD>
	<BODY id="body">
	 <DIV id="div1">
	  <P id="p1">Això és text en el primer paràgraf...</P>
	  <P id="p2">Això és text <EM id="em1"> en el
	  <STRONG id="strong1">segon</STRONG> 
	  paràgraf.</EM></P>
	 </DIV>
	</BODY>
	</HTML>
s’estableixen així:

Per a la caixa generada perel BC és establert per
bodyBC inicial (depenent de l’agent d’usuari)
div1body
p1div1
p2div1
em1p2
strong1p2


Si posicionem "div1":
	#div1 { position: absolute; left: 50px; top: 50px }
el seu bloc contenidor ja no serà “body”, sinó que ara ho serà el bloc contenidor inicial (ja que no hi ha altres caixes d’ancestres posicionats).

Si també posicionem "em1":
 	#div1 { position: absolute; left: 50px; top: 50px }
	#em1  { position: absolute; left: 100px; top: 100px }
la taula dels blocs contenidors esdevé:

Per a la caixa generada perel BC és establert per
bodyBC inicial
div1BC inicial
p1div1
p2div1
em1div1
strong1em1


Posicionant "em1" el seu bloc contenidor esdevé la caixa de l’ancestre posicionat més proper (és a dir, "div1" és el seu ancestre posicionat més proper, per tant el bloc contenidor de "em" és la caixa generada per "div1").
2. Amplada del contingut: la propietat 'width'
La propietat width especifica l'amplada del contingut de les caixes generades per elements block-level i reemplaçats.

Aquesta propietat no s'aplica a elements inline-level no reemplaçats. L'amplada de les caixes d'un element inline no reemplaçat és la mateixa que la del contingut presentat dins d'elles (abans de qualsevol desplaçament relatiu dels fills). Cal remarcar que les caixes inline flueixen dins de caixes de línia. L'amplada de les caixes de línia ve donada pel seu block contenidor, però pot ser escurçada per la presència de floats.

L'amplada de la caixa d'un element reemplaçat és intrínseca i pot ser escalada per l'agent d'usuari si el valor d'aquesta propietat és diferent de 'auto'.
3. Calcular amplades i marges
Els valors calculats de les propietats width, margin-left, margin-right, left i right d’un element depenen del tipus de caixa generada i també els uns dels altres. En principi, els valors computats són els mateixos que els valors especificats (si el valor especificat és 'auto’ s'ha de substituir per algun valor adient), però hi ha excepcions. S’han de distingir les següents situacions:

  1. elements inline no reemplaçats
  2. elements inline reemplaçats
  3. elements block-level no reemplaçats en el fluxe normal
  4. elements block-level reemplaçats en el fluxe normal
  5. elements flotants no reemplaçats
  6. elements flotants reemplaçats
  7. elements no reemplaçats absolutament posicionats
  8. elements reemplaçats absolutament posicionats

Els punts de l’1 al 6 inclouen posicionament relatiu.
3.1. Elements inline no reemplaçats
La propietat width no s’hi aplica. Un valor especificat de ‘auto’ per a left, right, margin-left o margin-right esdevé un valor computat de ‘0’.
3.2. Elements inline reemplaçats
Un valor especificat de 'auto' per a left, right, margin-left o margin-right esdevé un valor computat de ‘0’.
Un valor especificat de ‘auto’ per a width dóna l’amplada intrínseca de l’element com a valor computat.
3.3. Elements block-level no reemplaçats en el fluxe normal
Si left o right vénen donades com a 'auto', el seu valor computat és 0. S'han de satisfer les següents restriccions entre les altres propietats:

margin-left + border-left-width + padding-left + width + padding-right + border-right-width + margin-right = amplada del bloc contenidor

(Si l’estil de vora és ‘none’ s'utilitzarà ‘0’ com a amplada de vora.) Si totes les propietats especificades en la l'equació de més amunt tenen un valor especificat diferent de ‘auto’ els valors es diu que estan sobre-restringits i un dels valors computats haurà de ser diferent del seu valor especificat. Si la propietat direction té el valor ‘ltr’, el valor especificat per a margin-right és ignorat i es calcula el valor per tal de fer certa la igualtat. Si el valor de direction és ‘rtl’, passa el mateix amb margin-left, enlloc de margin-right.

Si hi ha exactament un valor especificat com a ‘auto’, el seu valor computat surt de la igualtat.

Si width està fixada a 'auto', qualsevol altre valor ‘auto’ esdeve ‘0’ i ‘width’ surt de la igualtat resultant.

Si tant margin-left com margin-right són 'auto', els seus valors computats són iguals.
3.4. Elements block-level reemplaçats en el fluxe normal
Si left o right són 'auto', el valor computat de totes dues és ‘0’.
Si width està especificada com a ‘auto’, el seu valor és l’amplada intrínseca de l’element.
Si un dels marges és ‘auto’, el seu valor computat ve donat per les restriccions de més amunt. A més, si els dos marges són ‘auto’, els seus valors computats són iguals.
3.5. Elements flotants no reemplaçats
Si left, right, width, margin-left, o margin-right estan especificades com 'auto', el valor computat de totes és '0'.
3.6. Elements flotants reemplaçats
Si left, right, margin-left, o margin-right estan especificades com 'auto', el valor computat de totes és ‘0’. Si width és 'auto', el seu valor és l’amplada intrínseca de l’element.
3.7. Elements no reemplaçats absolutament posicionats
La restricció que determina els valors computats per a aquests elements és:

left + margin-left + border-left-width + padding-left + width + padding-right + border-right-width + margin-right + right = amplada del bloc contenidor.

(Si l’estil de la vora és ‘none’ s'utilitzarà ‘0’ com a amplada de la vora). La solució a aquesta restricció s’assoleix a través d’un nombre de substitucions en el següent ordre:

  1. Si left té el valor 'auto' mentre que direction és 'ltr', cal reemplaçar 'auto' amb la distància que hi ha del límit esquerre del bloc contenidor al límit del marge esquerre d’una hipotètica caixa que hauria estat la primera caixa de l’element si la seva propietat position hagués estat 'static'. (Però abans que computar realment aquesta caixa, els agents d’usuari són lliures de fer una aproximació a la seva posició provable.) El valor és negatiu si la caixa hipotètica és a l’esquerra del bloc contenidor.
  2. Si right té el valor 'auto' mentre que direction és 'rtl', cal reemplaçar 'auto' amb la distància que hi ha del límit dret del bloc contenidor al límit del marge dret de la mateixa caixa hipotètica del punt (1). El valor és positiu si la caixa hipotètica és a l’esquerra del límit del bloc contenidor.
  3. Si width és 'auto', cal reemplaçar tots els ‘auto’ restants de left o right per ‘0’.
  4. Si left, right o width són (encara) 'auto', cal reemplaçar qualsevol ‘auto’ de margin-left o margin-right per '0'.
  5. Si en aquest punt tant margin-left com margin-right són encara 'auto', cal resoldre l’equació sota la restricció extra que els dos marges han d'obtenir valors iguals.
  6. Si en aquest punt només resta un 'auto', cal resoldre l’equació per a aquest valor.
  7. Si en aquest punt els valors estan sobre-restringits cal ignorar el valor de qualsevol left (en el cas que direction sigui 'rtl') o right (en el cas que direction sigui 'ltr') i resoldre l’equació per a aquest valor.
3.8. Elements reemplaçats absolutament posicionats
Aquesta situació és similar a la prèvia, excepte que l’element té una amplada intrínseca. La seqüència de substitucions ara és:

  1. Si width és 'auto', cal substituir l’amplada intrínseca de l’element.
  2. Si left té el valor 'auto' mentre que direction és 'ltr', cal reemplaçar ‘auto’ amb la distància que hi ha del límit esquerre del bloc contenidor al límit del marge esquerre d’una hipotètica caixa que hauria estat la primera caixa de l’element si la seva propietat position hagués estat ‘static’. (Però abans que computar realment aquesta caixa, els agents d’usuari són lliures de fer una aproximació a la seva posició provable.) El valor és negatiu si la caixa hipotètica és a l’esquerra del bloc contenidor.
  3. Si right té el valor 'auto' mentre que direction és 'rtl', cal reemplaçar 'auto' amb la distància que hi ha del límit dret del bloc contenidor al límit del marge dret de la mateixa caixa hipotètica del punt (2). El valor és positiu si la hipotètica caixa és a l’esquerra del límit del bloc contenidor.
  4. Si left o right són 'auto', cal reemplaçar qualsevol 'auto' a margin-left o margin-right amb '0'.
  5. Si en aquest punt tant margin-left com margin-right són encara 'auto', cal resoldre l’equació sota la restricció extra que els dos marges han d'obtenir valors iguals.
  6. Si en aquest punt resta només un 'auto', cal resoldre l’equació per a aquest valor.
  7. Si en aquest punt els valors estan sobre-restringits, cal ignorar el valor de qualsevol left (en cas que direction sigui 'rtl') o right (en cas que direction sigui 'ltr') i resoldre per a aquell valor.
4. Amplades mínima i màxima: 'min-width' i 'max-width'
Les propietats min-width (amplada mínima) i max-width (amplada màxima) permeten als autors restringir les amplades de les caixes a un cert rang.

El següent algorisme descriu com aquestes dues propietats influencien en el valor calculat de la propietat width:

  1. L'amplada es calcula (sense min-width ni max-width) seguint les regles descrites en l'apartat de més amunt "Calcular amplades i marges".
  2. Si el valor calculat de min-width és més gran que el valor de max-width, aleshores a max-width se li assigna el valor de min-width.
  3. Si l'amplada calculada és més gran que max-width, les regles de més amunt s'apliquen un altre cop, però aquesta vegada utilitzant el valor de max-width com a valor especificat per a width.
  4. Si l'amplada calculada és més petita que min-width, les regles de més amunt s'apliquen un altre cop, però aquesta vegada utilitzant el valor de min-width com a valor especificat per a width.


L'agent d'usuari pot definir un valor mínim no negatiu per a la propietat min-width, el qual pot variar d'element en element i fins i tot dependre d'altres propietats. Si min-width va per sota d'aquest límit, tant si és perquè va ser fixada explícitament com si era 'auto' i les regles de més amunt la farien massa petita, l'agent d'usuari pot utilitzar el valor mínim com a valor computat.
5. Alçada del contingut: la propietat 'height'
La propietat height especifica l'alçada del contingut de les caixes generades per elements block-level i reemplaçats.

Aquesta propietat no s'aplica als elements inline-level no reemplaçats. L'alçada de les caixes d'un element inline no reemplaçat ve donada pel valor de la propietat (possiblement heretada) line-height de l'element.
6. Calcular alçades i marges
Per a calcular els valors de top, margin-top, height, margin-bottom i bottom cal fer una distinció entre diferents menes de caixes:

  1. elements inline no reemplaçats
  2. elements inline reemplaçats
  3. elements block-level no reemplaçats en el fluxe normal
  4. elements block-level reemplaçats en el fluxe normal
  5. elements flotants no reemplaçats
  6. elements flotants reemplaçats
  7. elements no reemplaçats absolutament posicionats
  8. elements reemplaçats absolutament posicionats

Els punts de l'1 al 6 inclouen posicionament relatiu.
6.1. Elements inline no reemplaçats
Si top, bottom, margin-top o margin-bottom són 'auto', el valor computat de totes elles és 0.
La propietat height no s'aplica a aquests elements, sinó que l'alçada de la caixa ve donada per la propietat line-height.
6.2. Elements inline reemplaçats, elements block-level reemplaçats en el fluxe normal, i elements flotants reemplaçats
Si top, bottom, margin-top o margin-bottom són 'auto', el valor computat de totes elles és 0.

Si height és 'auto', el valor computat és l'alçada intrínseca.
6.3. Elements block-level no reemplaçats en el fluxe normal i elements flotants no reemplaçats
Si top, bottom, margin-top o margin-bottom són 'auto', el valor calculat de totes elles és 0. Si height és 'auto', l'alçada depèn de si l'element té algun fill block-level i de si té farciment o vores.

Si només té fills inline-level, l'alçada és la distància que hi ha entre la part superior de la caixa de línia de més amunt i la part inferior de la caixa de línia de més avall.

Si té fills block-level l'alçada és la distància que hi ha entre el límit de la vora superior de la caixa de fill block-level més alta i el límit de la vora inferior de la caixa de fill block-level més baixa. No obstant, si l'element té un farciment superior diferent de zero i/o una vora superior, aleshores el contingut comença en el límit del marge superior del fill de més amunt. De manera similar, si l'element té un farciment inferior diferent de zero i/o una vora inferior, aleshores el contingut acaba en el límit del marge inferior del fill de més avall.

Només es compten els fills en el fluxe normal (és a dir, les caixes flotants i les caixes absolutament posicionades s'ignoren, i les caixes relativament posicionades es consideren sense el seu desplaçament). Cal remarcar que la caixa del fill pot ser una caixa anònima.
6.4. Elements no reemplaçats absolutament posicionats
Per als elements absolutament posicionats, les dimensions verticals han de satisfer aquesta restricció:

top + margin-top + border-top-width + padding-top + height + padding-bottom + border-bottom-width + margin-bottom + bottom = alçada del bloc contenidor

(Si l’estil de vora és 'none' s'utilitzarà '0' com a amplada de la vora.) La solució a aquesta restricció s’assoleix a través d’un nombre de substitucions en el següent ordre:

  1. Si top té el valor 'auto' cal reemplaçar-lo per la distància que hi ha des del límit superior del bloc contenidor fins al límit del marge superior d’una caixa hipotètica que hauria estat la primera caixa de l’element si la seva propietat position hagués estat ‘static’. (Però abans que realment computar aquesta caixa, els agents d’usuari són lliures de fer una aproximació a la seva provable posició.) El valor és negatiu si la caixa hipotètica és al capdemunt del bloc contenidor.
  2. Si tant height com bottom són 'auto', cal reemplaçar bottom amb 0.
  3. Si bottom o height són (encara) 'auto', cal reemplaçar qualsevol 'auto' a margin-top o margin-bottom amb '0'.
  4. Si en aquest punt tant margin-top com margin-bottom són encara 'auto', cal resoldre l’equació sota la restricció extra que els dos marges han d'obtenir valors iguals.
  5. Si en aquest punt només queda un 'auto', cal resoldre l’equació per a aquell valor.
  6. Si en aquest punt els valors estan sobre-restringits, cal ignorar el valor de bottom i resoldre per a aquell valor.
6.5. Elements reemplaçats absolutament posicionats
Aquesta situació és similar a la prèvia, excepte que l’element té una alçada intrínseca. La seqüència de substitucions és ara:

  1. Si height és 'auto', cal substituir l’alçada intrínseca de l’element.
  2. Si top té el valor 'auto', cal reemplaçar-lo per la distància que hi ha des del límit superior del bloc contenidor fins al límit del marge superior d’una caixa hipotètica que hauria estat la primera caixa de l’element si la seva propietat position hagués estat 'static'. (Però abans que computar realment aquesta caixa, els agents d'usuari són lliures de fer una aproximació a la seva posició provable.) El valor és negatiu si la caixa hipotètica és al capdemunt del bloc contenidor.
  3. Si bottom és 'auto', cal reemplaçar qualsevol 'auto' a margin-top o margin-bottom per '0'.
  4. Si en aquest punt tant margin-top com margin-bottom són encara 'auto', cal resoldre l’equació sota la restricció extra que els dos marges han d'obtenir valors iguals.
  5. Si en aquest punt només queda un 'auto', cal resoldre l’equació per a aquell valor.
  6. Si en aquest punt els valors estan sobre-restringits, cal ignorar el valor de bottom i resoldre per a aquell valor.
7. Alçades mínima i màxima: 'min-height' i 'max-height'
Les propietats min-height (alçada mínima) i max-height (alçada màxima) permeten als autors restringir les alçades de les caixes a un cert rang.

El següent algorisme descriu com les dues propietats influencien el valor calculat de la propietat height:

  1. L'alçada es calcula (sense min-height ni max-height) seguint les regles descrites en "Calcular alçades i marges" de més amunt.
  2. Si el valor calculat de min-hegiht és més gran que el valor de max-height, aleshores a max-height se li assigna el valor de min-height.
  3. Si l'alçada calculada és més gran que max-height les regles de més amunt s'apliquen un altre cop, però aquesta vegada utilitzant el valor de max-height com a valor especificat per a height.
  4. Si l'alçada calculada és més petita que min-height les regles de més amunt s'apliquen un altre cop, però aquesta vegada utilitzant el valor de min-height com a valor especificat per a height.
8. Càlculs d’alçada de línia: les propietats 'line-height' i 'vertical-align'
Tal com s'ha descrit en l'apartat sobre "Contextes de formatat inline", els agents d’usuari fan fluïr les caixes inline dins d’una pila vertical de caixes de línia. L’alçada d’una caixa de línia es determina així:

  1. Es calcula l'alçada de cada caixa inline de la caixa de línia (veieu "Calcular alçades i marges" i la propietat line-height).
  2. Les caixes inline s'alinien verticalment d’acord amb les seves propietats vertical-align.
  3. L’alçada de la caixa de línia és la distància entre la part superior de la caixa de més amunt i la part inferior de la caixa de més avall.


Els elements inline buits generen caixes inline buides, però aquestes caixes encara tenen marges, farciment, vores i una alçada de línia, i d’aquesta manera influencien en aquests càlculs tal com fan els elements amb contingut.

Cal notar que si totes les caixes de la caixa de línia estan alineades al llarg de les seves parts inferiors, la caixa de línia serà exactament de l’alçada de la caixa més alta. Si, no obstant, les caixes estan alineades al llarg d’una línia base comuna, les parts superior i inferior de la caixa de línia és possible que no toquin les parts superior i inferior, respectivament, de la caixa més alta.
8.1. Interlineat i semi-interlineat
Com que l’alçada d’una caixa inline pot ser diferent del tamany de la font del text que es troba dins la caixa (per ex., line-height > 1em), hi pot haver espai per sobre i per sota dels glyphs representats. La diferència entre el tamany de la font i el valor calculat de line-height s’anomena l’interlineat. La meitat de l’interlineat s’anomena semi-interlineat.

Els agents d’usuari centren els glyphs verticalment en una caixa inline afegint semi-interlineat per dalt i per baix. Per exemple, si un tros de text és '12pt' d’alt i el valor de line-height és '14pt', s’haurien d’afegir 2pts d’espai extra: 1pt per sobre i 1pt per sota de les lletres. (Això s’aplica també a caixes buides, com si la caixa buida contingués una lletra infinitament baixa.)

Quan el valor de line-height és més petit que el tamany de la font, l’alçada final de la caixa inline serà menor que el tamany de la font, i els glyphs presentats "vessaran" per fora de la caixa. Si una caixa com aquesta toca el límit d’una caixa de línia, els glyphs representats també "vessaran" cap a dins de la caixa de línia adjacent.

Encara que els marges, les vores i el farciment dels elements no reemplaçats no entren dins els càlculs de l’alçada de la caixa inline (i així mateix, dins els càlculs de la caixa de línia), encara es presenten al voltant de les caixes inline. Això significa que si l’alçada d’una caixa de línia és més curta que els límits més exteriors de les caixes que conté, els fons i els colors del farciment i de les vores poden "vessar" cap a dins de les caixes de línia adjacents. Sigui com sigui, en aquest cas, alguns agents d’usuari és possible que utilitzin la caixa de línia per a "retallar" les àrees de vora i de farciment (és a dir, no presentar-les).

Si la propietat line-height es fixa en un element block-level el contingut del qual es composa d'elements inline-level, aleshores especifica l'alçada mínima de cada caixa inline generada. Si, pel contrari, es fixa en un element inline-level, aquesta propietat especifica l'alçada exacta de cada caixa generada per l'element. (Excepte per als elements inline reemplaçats, on l'alçada de la caixa ve donada per la propietat height.) Quan un element conté un text que es presenta en més d'una font, els agents d'usuari haurien de determinar el valor de line-height d'acord amb la mida de la font més gran. Generalment, quan només hi ha un valor de line-height per a totes les caixes inline d'un paràgraf (i no hi ha cap imatge alta), això assegurarà que les línies base de les línies successives estiguin separades per una distància exactament igual al valor de line-height. Això és important quan s'han d'alinear columnes de text en diferents fonts, per exemple, en una taula.

Cal observar que els elements reemplaçats tenen una propietat font-size i una line-height fins i tot si no s'utilitzen directament per a determinar l'alçada de la caixa. La font-size s'utilitza, no obstant, per a definir les unitats 'em' i 'ex', i la line-height té un rol en la propietat vertical-align.

La propietat vertical-align afecta al posicionament vertical dins d'una caixa de línia de les caixes generades per un element inline-level. Els seus valors només tenen significat respecte un element pare inline-level, o bé un element pare block-level si aquell element genera caixes inline anònimes; no tenen efecte si no existeix aquest pare.

Nota. Els valors de la propietat vertical-align tenen significats lleugerament diferents en el context de les taules. Consulteu la definició d'aquesta propietat en aquest manual, en el llistat on estan definides totes les propietats CSS2.
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