CSS-grid
Teori expand_more
1. CSS grid
CSS grid är en teknik i CSS som gör att webbutvecklare lättare kan skapa responsiva layouter till webbsidor. Det har funnits andra metoder för att skapa webbplatslayouter, t.ex. tabeller, boxmodellen, floats och CSS-flexbox.
1.1 Vad är CSS-grid?
CSS grids är en layout med ett rutnät. CSS grids gör det lättare att forma webbsidan genom kolumner och rader. Då kan man lätt placera sina element på sin hemsida med hjälp av rutnätet.
1.2 Floats vs CSS-grid
CSS-egenskapen float är lätt att lära sig, men det finns även många nackdelar med float.
Float-elementen är knutna till flödet i dokumentet, dvs de beror på hur ordningen
på elementet är i HTML-dokumentet. Utseendet beror alltså på ordningen i
HTML-dokumentet, vilket inte är bra. Innehåll och utseende ska ju vara separerade
i HTML och CSS.
CSS-grid är inte beroende av ordning i HTML, där kan man i CSS designa utseendet
oberoende på i vilken ordning elementen är placerade i HTML-dokumentet.
CSS-grid är alltså smidigare och enklare att använda. Därför att innehåll
och utseende är separerade och oberoende av varandra.
Det går också att på ett enkelt sätt skapa responsiva sidor med olika design beroende
på om sidan ska visas på t.ex. en mobil surfplatta eller dataskärm.
2. CSS-grid Cheat Sheet
display: grid; /* Set a wrapper to a css grid */
grid-template-columns: 33.3% 33.3%; /* Creates 2 columns with % */
grid-template-columns: 1fr 1fr; /* Creates 2 columns with fractions */
grid-template-columns: repeat(2,1fr); /* Creates 2 columns with fractions */
grid-auto-rows: 200px; /* Sets row height to 200px */
grid-auto-rows: minmax(200px, auto); /* Sets minimum row height to 200px and max to auto */
grid-template-rows: 200px 300px 400px 200px; /* Creates 4 rows */
grid-template-rows: repeat(4, 200px); /* Creates 4 rows */
grid-template-rows: repeat(4, minmax(200px, auto)); /* Creates 4 rows */
grid-column-gap: 10px; /* Gap between columns */
grid-row-gap: 10px; /* Gap between rows */
grid-gap: 10px; /* Gap between columns and rows */
align-items: start; /* Align items to the top */
align-items: end; /* Align items to the end */
align-items: stretch; /* The default value (used if no other value is given) */
justify-items: start; /* Align items to the left */
justify-items: end; /* Align items to the right */
justify-self: center; /* Aligns the item on the horizontal center */
grid-area: header; /* Gives an element the grid name header */
/* Defines a matrix for the layout, one string for each row */
grid-template-areas:
"header header"
"aside main"
"nav main"
"section section"
"section section"
"footer footer";
Begrepp expand_more
Responsiv webbdesign: En webbplats förmåga att ändra storlek och organisera om innehållet baserat på webbläsarfönstrets storlek.
CSS-grid: En teknik för att skapa responsiva layouter.
Media queries: Används i CSS för att ändra utseende på en sida beroende på skärmstorleken.
fr Enhet som delar förälder-elementet i delar (fractions).
em Enhet som sätter textstorleken i förhållande till textstorleken för förälder-elementet.
rem Enhet som sätter textstorleken i förhållande till textstorleken för rotelementet . rem kan också användas för att
sätta storlek på andra element som beror på textstorleken.
% Enhet som används för att sätta storleken på värden som width, height, border, padding och margin.
display: grid; Skapar en CSS-grid
grid-template-columns Skapar kolumner i en CSS-grid
grid-template-rows Skapar rader i en CSS-grid
grid-gap Skapar mellanrum mellan rad och kolumner
grid-area Ger ett element ett CSS-grid namn
grid-template-areas Skapar en matris som beskriver layouten
Inlämningsuppgift expand_more
Responsiv layout
Gör en responsiv layout mha CSS-grid för en väderstation.
Layouten ska minst innehålla en header, footer, section med en graf och en section med bild på aktuellt väder.
Övriga obligatoriska värden som ska vara med:
- Temperatur
- Upplevd temperatur (känns som)
- Vindhastighet
- Vindriktning
Börja med att rita upp en tänkt layout i 2 olika lägen: dator, surfplatta/mobil.
Se mer om
responsiv webbdesign.
Tänk på vad som är den viktigaste informationen och ska framgå tydligast?
Du måste få godkänt på layouten före du börjar kodningen!
Krav: grid-template-areas ska användas.
Extra:
Ha med en en nav-tag, dvs en meny. Där ska det gå att välja presentationssida.
Andra intressanta värden du kan ha med är luftfuktighet, lufttryck och intressant statistik som:
dygnets kallaste temperatur, dygnets varmaste temperatur och dygnets starkaste vind.