Box model
Last updated
Was this helpful?
Last updated
Was this helpful?
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.
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.
De/det element eller innehÄll(engelska content) som finns i elementet. InnehÄllet styr elementets storlek.
Runt elementets innehÄll finns det en padding pÄ alla sidor. Denna padding Àr tomt utrymme som skapar luft runt elementets innehÄll.
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.
Om elementet har en ram sÄ lÀggs Àven det till i elementets storlek.
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.
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.
Se avsnittet frÄn HTML-kapitlet, Block och inline-element.