Box model

Allt i CSS har en lÄda omkring sig, dÀrför Àr det centralt att förstÄ hur detta fungerar för att kunna skapa layout med CSS. Se Fig 1.

Vad Àr box model

Förenklat Àr det hur mycket plats element tar pÄ en webbsida, hur stort det Àr. Men hur detta rÀknas ut och pÄverkas av andra element Àr komplicerat. Elementets box model Àr uppdelad i flera olika delar, se fig 1. Elementets storlek Àr summan av alla delarna.

Det Àr vÀldigt viktigt att förstÄ elements storlek och box model nÀr du till exempel försöker sÀtta flera element bredvid varandra eller nÀr du har element som ska fylla en hel sida. Det Àr inte helt ovanligt att det dyker upp scrollbars dÀr du inte önskar dem för att elementet Àr 100% stort + padding osv.

Content

De/det element eller innehÄll(engelska content) som finns i elementet. InnehÄllet styr elementets storlek.

<div>
    <p>Den omgivande divens storlek Àr beroende av den hÀr textens storlek.</p>
    <p>Men p-elementen styrs ocksÄ av box model för sin storlek.
</div>

Padding

Runt elementets innehÄll finns det en padding pÄ alla sidor. Denna padding Àr tomt utrymme som skapar luft runt elementets innehÄll.

<div class="w-100 p-5">
    <p>I det hÀr exemplet styr vi div-elementets storlek med klassen w-100.
    Utöver det sÄ sÀtts en padding med p-5, detta kommer stÀlla till problem.
    </p>
</div>

För att rÀkna ut div-elementets bredd i exemplet hÀr ovan sÄ rÀknar vi ihop elementets storlek + padding. Det blir 100% + 5rem * 2. Paddingen pÄ sidan om elementet dubblas eftersom den finns pÄ bÄda sidorna. 5 rem Àr med standardstorleken 16px alltsÄ 80px, detta dubblas och elementets storlek blir 100% av parent + 160px, nÄgot som med största sannolikhet resulterar i att elementet Àr bredare Àn önskat.

Border

Om elementet har en ram sÄ lÀggs Àven det till i elementets storlek.

<div class="border">
    <p>Div-elementets kommer ligga nÀgra denna text och det kommer vara styrt
     av textens storlek. Elementets storlek kommer att vara div + border. Kom 
     ihÄg att Àven borderns storlek dubblas.
     </p>
</div>

Margin

Runt elementet finns slutligen en marginal som omger elementet. Detta fungerar liknande padding, men Àr utanför elementet och inte innanför. MÄttet dubblas Àven det och lÀggs pÄ padding och border.

<div class="news border">
    <p>Some content.</p>
</div>

För att rÀkna ut div-elementets bredd frÄn exemplet ovan sÄ tar vi, content + padding * 2 + border * 2 + margin * 2. Det blir alltsÄ (40 * 16) + (1 + 1) * 16 + (1 + 1) + (2 + 2) * 16 = 738px.

Testa att rÀkna ut höjden och anvÀnd utvecklarverktygen i en webblÀsare för att se utrÀknad(engelska computed) höjd och bredd.

Block och inline-element

Se avsnittet frÄn HTML-kapitlet, Block och inline-element.

Display typer

LĂ€s mer

Last updated