Secció 4: Posicionament CSS

3. Dimensions d'una caixa

3.2. height

La propietat height especifica l'alçada de l'àrea de contingut de les caixes generades per elements de bloc.

Com deus suposar, el comportament de height és equivalent al de width:

És el moment de veure alguns exemples que permetin observar el comportament de width i height en diferents situacions.

Exemple 1: width i height

DIV   { border: 1px solid red; margin: 5px 0; }
DIV.1 { width: 300px; }
DIV.2 { width: 300px; height: 100px; }

Si creem un DIV sense classe, un amb classe "1" i un altre amb classe "2", obtenim el següent:

[DIV] Test de width i height
[DIV classe 1] Aquest DIV té width 300px.
[DIV classe 2] Aquest DIV té width 300px i height 100px.

En el DIV de classe 1 l'amplada de l'àrea de contingut es fixa a 300px. L'alçada del DIV es fa tan gran com calgui per que hi càpigui tot el contingut. En el DIV de classe 2 es fixa a més l'alçada i per tant, encara que el contingut necessita menys de 100px, el DIV pren aquest valor com a alçada de l'àrea de contingut.

Què passa quan el contingut d'un element necessita més espai que el que s'especifica al valor de height? En aquest cas s'ignora el valor especificat i es fa l'element més alt, tant com calgui per encabir-hi el contingut. Ho podem comprovar creant un DIV de classe 2 amb més contingut:

[DIV classe 2]
Cal escriure més text? Cap problema, som-hi! :)
Els DIV de classe 2 tenen width=100px i height=100px. En aquest cas el contingut necessita més de 100px d'alçada, i per tant el valor de height s'ignora. Compara'l amb el DIV de classe 2 anterior, veuràs que aquest és més alt.

Nota: Com veurem més endavant, aquest comportament es pot modificar amb la propietat overflow. Per cert, amb Mozilla (també dona sorpreses, de vegades!) el DIV s'allarga verticalment com esperàvem, però la vora vermella es limita a 100px d'alçada.

Exemple 2: width i percentatges

DIV   { border: 1px solid blue; margin: 5px 0; }
DIV.1 { width: 50%; }
DIV.2 { margin-left: 50%; }
DIV.3 { width: 50%; margin-left: 25%; }
[DIV classe 1]
width: 50%
[DIV classe 2]
margin-left: 50%
[DIV classe 3]
width: 50%;
margin-left: 25%

Amb aquest exemple pots intuir que la combinació de width i marges horitzontals (i també paddings horitzontals) serà una eina poderosa per a establir la disposició dels elements d'una pàgina. Quan estudiem el posicionament en sí en veurem exemples. També pots veure que a l'hora d'implementar posicionament CSS en navegadors concrets ens trobarem amb problemes de precisió. Per exemple, el segon i tercer DIV en IE haurien de tenir una amplada igual al primer, i no és així.

Exemple 3: height i percentatges

En el cas d'usar percentatges per height hi ha una particularitat que cal tenir present. El bloc contenidor ha de tenir un valor de height explícit, si no el valor de height s'ignora. Ho pots observar en el següent exemple:

El bloc contenidor (en gris) no té height explícita.
DIV amb height:50%
El bloc contenidor (en gris) té height:200px.
DIV amb height:50%

Fixa't que si el bloc contenidor té height expressada en percentatge, ens trobarem amb el mateix problema: serà ignorada, i per tant també la que s'especifiqui en l'element. Per utilitzar percentatges dins de percentatges, cal que ens assegurem que existeix un bloc contenidor extern amb un valor explícit per height.

El bloc contenidor més extern (en gris) té height:200px.
DIV amb height:80% (respecte el contenidor extern)
DIV amb height:50% (respecte el DIV pare)
CSS en català
Darrera actualització: 11 de gener de 2004

© 2002-04, weC - Gonzalo Pérez de la Ossa
Contacte: wec@dense13.com

Valid XHTML 1.0! Valid CSS!