Diferència entre revisions de la pàgina «CSS box model»

De Cacauet Wiki
Salta a la navegació Salta a la cerca
(exemple caixes)
Línia 52: Línia 52:
 
** Articles sobre [http://www.w3schools.com/css/css_border.asp border a W3CSchools] i [http://www.dense13.com/wec/curscss/curscss.php?seccio=3&capitol=4&subcapitol=6 ''border'' en català].
 
** Articles sobre [http://www.w3schools.com/css/css_border.asp border a W3CSchools] i [http://www.dense13.com/wec/curscss/curscss.php?seccio=3&capitol=4&subcapitol=6 ''border'' en català].
 
* Flux: propietat '''''display''''' pot ser '''''block''''' o '''''inline'''''.
 
* Flux: propietat '''''display''''' pot ser '''''block''''' o '''''inline'''''.
* Posicionament (static, absolute, relative, float, fixed).
+
* Posicionament (static, absolute, relative, float, fixed). Ho veurem a la següent unitat.
 
* ...
 
* ...
  
Línia 58: Línia 58:
 
<syntaxhighlight lang="css">
 
<syntaxhighlight lang="css">
 
     #caixa_gran {
 
     #caixa_gran {
 +
        /* dimensions de la caixa */
 
         width: 600px;
 
         width: 600px;
         height: 600px;
+
         height: 300px;
 
         background-color: yellow;
 
         background-color: yellow;
 +
        /* les 3 propietats del border separades */
 +
        border-width: 1px;
 +
        border-style: solid;
 +
        border-color: green;
 
     }
 
     }
 
+
 
     #caixa_petita {
 
     #caixa_petita {
         width: 50px;
+
        /* dimensions de la caixa */
         height: 50px;
+
         width: 150px;
 +
         height: 150px;
 
         background-color: cyan;
 
         background-color: cyan;
 +
        /* marges (extern) i padding (intern amb el text) */
 +
        margin:30px;
 +
        padding: 10px;
 +
        /* propietats del border en 1 sola línia */
 +
        border: 2px black dashed;
 
     }
 
     }
 
</syntaxhighlight>
 
</syntaxhighlight>
 +
 +
Destaquem els següents punts de l'exemple:
 +
*Les dimensions de les caixes amb width i height.
 +
*Observa com hem fet els '''''borders'''''
 +
**Caixa gran: 3 propietats diferents de border: border-width, border-syle i border-color.
 +
**Border de la caixa petita: tot en una sola declaració.
 +
*OJU: si eliminem el borde de la caixa gran (groga) tindríem un '''col·lapse de marges'''. Llegeix aquest article sobre el [http://blog.motane.lu/2009/02/23/css-margin-collapse/ col·lapse de marges]. És un mecanisme que molts cops dona maldecaps perquè el resultat no és el que esperem (fusiona els marges de 2 caixes contigues).
 +
 +
Això donaria com a resultat una cosa com aquesta:
 +
 +
<div style="width:600px;height:300px;border:1px green solid; background-color:yellow;">
 +
    <div style="width:150px;height:150px;border:2px black dashed; background-color:cyan;margin:30px;padding:10px;">
 +
Text dintre de la caixa petita <b>amb lletra negreta</b> pel mig.<br />
 +
Al tanto que hi ha un <b>padding</b> (intern) també.
 +
    </div> <!-- tanco caixa gran -->
 +
</div> <!-- tanco caixa petita -->
  
  
Altres propietats també importants::
+
Altres propietats també importants:
 
* '''Overflow''': indica què fer quan el contingut de la caixa sobrepassa a aquesta. Pot ser '''''visible''''', '''''hidden''''', '''''scroll''''', '''''auto''''' i '''''inherit'''''.
 
* '''Overflow''': indica què fer quan el contingut de la caixa sobrepassa a aquesta. Pot ser '''''visible''''', '''''hidden''''', '''''scroll''''', '''''auto''''' i '''''inherit'''''.
 
*:Article sobre [http://www.w3schools.com/Css/pr_pos_overflow.asp overflow a W3CSchools].
 
*:Article sobre [http://www.w3schools.com/Css/pr_pos_overflow.asp overflow a W3CSchools].

Revisió del 17:25, 5 març 2011

El CSS Box Model és el "model de caixes" que gestiona com s'han de mostrar els elements d'una pàgina HTML amb CSS.

Les "caixes" CSS es solen realitzen amb el tag DIV. Qualsevol element HTML/CSS té la seva pròpia caixa (per exemple, P o H1), però el tag DIV és còmode per crear "caixes buides" sense cap propietat a priori, per exemple:

<div id="caixa_gran">
    <div id="caixa_petita">
        Text dintre de la caixa petita <SPAN class="negreta">amb lletra negreta</SPAN> pel mig.
    </div> <!-- tanco caixa gran -->
</div> <!-- tanco caixa petita -->

Tenim 2 caixes, i una (la gran) conté una altra a dins.

Regions d'una caixa

Articles del CSS Box Model al W3CSchools i CSS Box Model en català.

Les regions d'una caixa que cal conèixer són les següents:

Llegeix aquest article per veure-ho en profunditat: http://www.dense13.com/wec/curscss/curscss.php?seccio=3&capitol=4&subcapitol=2

Modes de bloc i inline

Els modes "bloc" i "inline" es corresponen a la idea que tenim entre els DIV i SPAN, és a dir:

  • Mode block (DIV): ocupa tota l'amplada del contenidor.
  • Mode inline (SPAN): ocupa només el tamany del text.

Pots llegir més:

Qualsevol DIV es pot tornar un SPAN i al revés si canviem la seva propietat display a "block" o "inline". Per exemple:

    P {
         display: inline; /* amb això transformem el bloc "P" a un element "inline" més similar a un SPAN */
    }


Propietats de la caixa

Principals:

Per exemple, en les dues caixes vistes anteriorment (aniuades), podriem fer els tamanys adequats perquè la petita càpiga dintre de la gran:

    #caixa_gran {
        /* dimensions de la caixa */
        width: 600px;
        height: 300px;
        background-color: yellow;
        /* les 3 propietats del border separades */
        border-width: 1px;
        border-style: solid;
        border-color: green;
    }
 
    #caixa_petita {
        /* dimensions de la caixa */
        width: 150px;
        height: 150px;
        background-color: cyan;
        /* marges (extern) i padding (intern amb el text) */
        margin:30px;
        padding: 10px;
        /* propietats del border en 1 sola línia */
        border: 2px black dashed;
    }

Destaquem els següents punts de l'exemple:

  • Les dimensions de les caixes amb width i height.
  • Observa com hem fet els borders
    • Caixa gran: 3 propietats diferents de border: border-width, border-syle i border-color.
    • Border de la caixa petita: tot en una sola declaració.
  • OJU: si eliminem el borde de la caixa gran (groga) tindríem un col·lapse de marges. Llegeix aquest article sobre el col·lapse de marges. És un mecanisme que molts cops dona maldecaps perquè el resultat no és el que esperem (fusiona els marges de 2 caixes contigues).

Això donaria com a resultat una cosa com aquesta:

Text dintre de la caixa petita amb lletra negreta pel mig.
Al tanto que hi ha un padding (intern) també.


Altres propietats també importants:

  • Overflow: indica què fer quan el contingut de la caixa sobrepassa a aquesta. Pot ser visible, hidden, scroll, auto i inherit.
    Article sobre overflow a W3CSchools.
  • ...

Alineació d'una caixa en mode normal

Es realitza amb la propietat margin.