CSS-grid

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";

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

       logout    

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.