Boxmodellen handlar om egenskaper för elements storlek, kantlinjer och marginaler. Du ska nu gå igenom några övningar, för att få en förståelse av hur modellen fungerar.
Följande är förslag på övningar. Experimentera gärna med egna förändringar, så att du lär dig hur egenskaperna fungerar.
Förberedelser
- Öppna mappen L4a (som finns i L4) i Visual Studio Code (VSC).
 - Öppna filen index.html och style.css i VSC samt öppna sidan i Live Server.
 - Studera den kod som finns i HTML- och CSS-filerna, så att du blir insatt i den.
 
Storlek på boxarna
- 
Lägg in
width: 300px;ochheight: 200px;i regeln för#box1.- Experimentera med olika värden och enheter för 
width, se sid. 253 i kursboken Learning Web Design. Prova t.ex.px,%ochvwförwidth. 
 - Experimentera med olika värden och enheter för 
 - 
Lägg in
width: 150px;ochheight: 100px;i regeln för.wrapper div.- Storleken gäller då endast för de två sista boxarna, men inte för “box1”, eftersom regeln för 
#box1har ett id i selektorn och den specificerar då boxen mer än den med en class och element.- Se regler för “specificity” på sidan 284-285 i boken Learning Web Design.
 
 - Ta därför bort 
widthochheighti regeln för#box1. Storleken i.wrapper divska nu användas för alla boxar i fortsättningen av denna lab. 
 - Storleken gäller då endast för de två sista boxarna, men inte för “box1”, eftersom regeln för 
 
Marginaler och “display”
- 
Lägg in
marginmed värdena40px,20pxrespektive10pxi reglerna för#box1,#box2och#box3. - 
Ta fram Inspektören i Firefox. Notera avståndet över och under boxarna. Marginalerna överlappar varandra.
- Du kan peka på 
div-elementen för boxarna i HTML-koden i Inspektören, så ser du marginalerna med gul färg på webbsidan. - Du kan också klicka på knappen med en fyrkant och pil längst upp till vänster i Inspektören. Då kan du sedan föra muspekaren över boxarna på webbsidan och se marginalerna.
 
 - Du kan peka på 
 - 
Sätt
paddingtill10pxför samtliga boxar i regeln för.wrapper div. Kontrollera i Inspektören och notera var padding kommer in. - 
Lägg in
display: inline;i regeln för.wrapper div.- Stilen för 
widthochheighthar ingen effekt, menmarginochpaddingfunkar. - Kontrollera i Inspektören. att 
margininte överlappar varandra i sidled.- Notera också att marginalen bara har effekt i sidled. Den “marginal” som finns mellan den vita rutans kanter och boxarna är 
paddingi det omgivande elementet (div-elementet med classwrapper). 
 - Notera också att marginalen bara har effekt i sidled. Den “marginal” som finns mellan den vita rutans kanter och boxarna är 
 
 - Stilen för 
 - 
Ändra
displaytillinline-blocki regeln för.wrapper div.- Nu funkar 
widthochheightför boxarna och marginalen hamnar innanför det omgivande elementet. - Notera att även box 2 och 3 flyttas ner lika mycket som box 1, men kontrollera i Inspektören att deras 
margininte förändrats. 
 - Nu funkar 
 - 
Lägg till
vertical-align: top;i regeln för.wrapper div.- Kontrollera i Inspektören att det är hela boxen, inklusive marginal, som justeras, så att alla boxars överkant läggs lika högt, dvs marginalernas överkant och inte innehållets överkant.
 - Prova även med andra värden, såsom 
bottom. Standardvärdet förvertical-alignärbaseline. Låt värdet varabaseline, då du experimenterat klart. 
 - 
Lägg in
margin: 20px;i regeln för.wrapper divoch ta bort margin i reglerna för#box1till#box3. Alla boxar får då samma marginal. 
Kantlinje
- 
I regeln för
.wrapper divlägger du inborder-width: 6px; border-style: solid; border-color: #000000;- De tre egenskaperna kan också förkortas till 
border: 6px solid #000000; - Prova även några andra stilar för 
border-style. Se sid 366-367 i boken Learning Web Design. 
 - De tre egenskaperna kan också förkortas till 
 
Avstånd mellan boxarna
- Sätt 
margintill0i regeln för.wrapper div.- Det blir ändå ett litet avstånd mellan dem pga radbrytningen mellan 
div-elementen i HTML-koden, som är “white space”. Det ersätts av ett blanktecken av webbläsaren. 
 - Det blir ändå ett litet avstånd mellan dem pga radbrytningen mellan 
 - Lägg in 
font-size: 0;i det omgivande elementet, dvs i regeln för.wrapperoch lägg infont-sizemed önskad storlek (t.ex.1rem) i de inre elementen, dvs i regeln för.wrapper div.- Detta “knep” behövs endast om boxarna ska ligga precis intill varandra. Om man sedan ändå lägger in en 
marginsom är större än 0 på boxarna, behöver man ju inte ändrafont-size. 
 - Detta “knep” behövs endast om boxarna ska ligga precis intill varandra. Om man sedan ändå lägger in en 
 
Storlek på boxarna
- Sätt 
widthtill33%i regeln för.wrapper div.- De får inte plats på en rad, eftersom även 
paddingochbordertar plats. 
 - De får inte plats på en rad, eftersom även 
 - Lägg till 
box-sizing: border-box;i regeln för.wrapper div, Justerawidthtill33.33333%.- Boxarna ska nu hamna intill varandra på samma rad och vara lika breda.
 
 
Innehållet påverkar även utanför boxen
- 
Lägg texten “Box 1” i ett
h2-element för box 1 i HTML-dokumentet.- Kontrollera i Inspektören att 
h2har en övre och undre marginal. - Lägg in 
margin: 0;i en ny regel för#box1 h2(eller.wrapper div h2, om det ska gälla alla boxar) - Ändra 
vertical-align:tilltopi regeln för.wrapper div, så att boxarna kommer i jämnhöjd.- Du kanske redan har värdet 
top. Det beror på vad du avslutade med tidigare, då du experimenterademed olika värden. 
 - Du kanske redan har värdet 
 
 - Kontrollera i Inspektören att 
 - 
Lägg in ett
p-element med lite Lorem ipsum under rubriken i box 1 i HTML-dokumentet.- Skriv t.ex. 
p>Lorem20och tryck på tab-tangenten. 
 - Skriv t.ex. 
 - 
Lägg in
overflow: auto;i regeln för#box1. Testa även andra värden föroverflow, men låt det sedan varaauto. 
Visuella effekter
- 
Ändra
widthtill200pxochmargintill20pxi regeln för.wrapper div, för att tydligare se de rundade hörnen och skuggan, som du nu ska lägga in. - 
I regeln för
.wrapper divlägger du inborder-radius: 15px;- Prova gärna med lite olika värden.
 
 - 
En skugga på boxarna lägger du in genom att i regeln för
.wrapper divlägga tillbox-shadow: 5px 5px 15px 2px #333333;- Se beskrivning av de olika värdena på sida 382-383 i Learning Web Design.
 - Prova även med andra värden. Även negativa värden på de två första, som bestämmer åt vilket håll skuggan ska gå.
 
 
Flexibilitet
- Testa med olika bredd på fönstret, genom att ta fram Följsamt designläge i Firefox.