CSS Dag 2: Styla Sidan!

1. Introduktion till CSS (30 min)

Mål: Förklara vad CSS är och varför det är viktigt, samt hur man kopplar det till HTML.

Dag 1 byggde vi skelettet till våra hemsidor med HTML. Vi skapade rubriker, texter och la in bilder. Men det såg kanske lite tråkigt ut. Idag ska vi ge vårt skelett kläder, färger och stil! Vi ska använda CSS."

Vad är CSS?

Analogi: Huset och inredningsarkitekten

"Om HTML är själva husets struktur - väggar, tak, fönster (alltså <h1>, <p>, <img>) - så är CSS inredningsarkitekten."

"CSS bestämmer vilken färg det ska vara på väggarna (background-color), vilken stil det ska vara på möblerna (typsnittet, font-family), hur mycket luft det ska vara mellan möblerna (margin), och vilka tavlor som hänger på väggen (border). HTML bygger, CSS stylar."

Alternativ analogi:

"HTML är som skelettet av en människa, CSS är kläder och makeup"

Titta på CSS Zen Garden. Det är samma "hus" (HTML) men varje sida har olika "inredningsarkitekter" (CSS)

Kom ihåg:

Varför behöver vi CSS?

Interaktiv övning (10 min)

Använd webbläsarens utvecklarverktyg:

  1. Gå till en känd webbsida (t.ex. SVT.se)
  2. Högerklicka → "Inspektera element"
  3. I CSS-panelen, ändra färger och se resultatet direkt

Hur kopplar man CSS till HTML? (De tre sätten)

Metod 1: Inline style (Stil direkt på taggen)

Förklaring: "Detta är som att tejpa en instruktion direkt på en möbel. Snabbt för en enstaka sak, men blir väldigt rörigt om man ska styla mycket."

Användningsområde: Bra för att snabbt testa något, men undviks i större projekt.

<h1 style="color: blue;">En blå rubrik</h1>

Metod 2: Intern CSS (I <head>-sektionen)

Förklaring: "Detta är som att skriva en lista med stilregler på ett papper och lägga den i 'hjärnan' (<head>) på vår HTML-sida. Reglerna gäller då för alla element på just den här sidan."

Användningsområde: Bra för enstaka sidor eller små projekt. Vi kommer börja här idag!

<head>
    <title>Min stylade sida</title>
    <style>
        h1 {
            color: blue;
        }
        p {
            font-size: 16px;
        }
    </style>
</head>

Metod 3: Extern CSS-fil (Bäst i längden!)

Förklaring: "Detta är det proffsiga sättet. Vi skapar en helt egen fil som bara innehåller CSS-kod (t.ex. style.css). Sedan länkar vi till den från vår HTML-fil. Fördelen är att vi kan använda samma stil-fil för MÅNGA olika HTML-sidor. Ändrar vi i CSS-filen, ändras alla sidor samtidigt!"

Användningsområde: Standard för nästan alla webbplatser.

Exempel (i HTML-filens <head>):

<link rel="stylesheet" href="style.css">

Exempel (i style.css-filen):

h1 {
  color: blue;
}

Anatomin av en CSS-regel

Selector { Property: Value; }

Viktiga regler:

Visa vanliga selectors: tagg (h1), klass (.min-klass), id (#mitt-id).

Exempel på enkla CSS-regler

Egenskap Funktion Exempel
color Textfärg color: green;
background-color Bakgrundsfärg background-color: yellow;
font-size Textstorlek font-size: 24px;
margin Utrymme utanför element margin: 10px;
padding Utrymme inuti element padding: 5px;

2. Praktisk övning

Mål: Tillämpa grundläggande CSS på din sida från Dag 1.

Börja med att skapa en <style>-tagg i <head> på sin HTML-sida. Sedan kan du följa dessa steg:

Grundläggande färger och typsnitt

Uppgift: "Ge hela din sida en bakgrundsfärg och ändra textfärgen för dina paragrafer."

body {
    background-color: #f0f8ff; /* En ljusblå färg (AliceBlue) */
    font-family: Arial, sans-serif; /* Ett rent och lättläst typsnitt */
}
h1 {
    color: #4682b4; /* En mörkare blå färg (SteelBlue) */
}
p {
    color: #2f4f4f; /* En mörkgrå färg (DarkSlateGray) */
    font-size: 18px; /* Gör texten lite större än standard */
}

Tips: Man kan använda färgnamn (red, blue) eller HEX-koder (#ff0000). Här får du en så kallad "Color Picker", på samma site finns också en lista över olika namn på färger.

Box-modellen: Marginaler, Padding och Ramar

Analogi:

"Tänk på varje HTML-element som en tavla på en vägg."

Uppgift: "Ge din huvudrubrik en ram och lite luft inuti."

h1 {
    border: 3px solid #4682b4; /* En 3px tjock, heldragen, blå ram */
    padding: 20px; /* 20 pixlar luft inuti ramen */
    background-color: white; /* Vit bakgrund för att se padding tydligt */
}

Extra utmaning (vad ändras?):

p {
    background-color: lightgray;
    margin: 10px 20px;
    padding: 15px 25px;
    border-radius: 10px;
}

Centrera element

Uppgift: "Centrera din huvudrubrik på sidan."

h1 {
    /* Texten inuti centreras: */
    text-align: center;
}
/* För att centrera ett helt block-element (som en div eller h1 med fast bredd): */
.container { /* Skapa en div med class="container" i din HTML */
    width: 80%; /* Sätt en bredd som är mindre än 100% */
    margin-left: auto;
    margin-right: auto;
}

Enkel hover-effekt

Uppgift: "Få dina länkar att byta färg när muspekaren hålls över dem."

Förklaring: "En pseudo-klass som :hover låter oss bestämma hur ett element ska se ut i ett speciellt tillstånd - som när musen är över det."

a {
    color: #0077cc; /* Standardfärg för länken */
    text-decoration: none; /* Ta bort understrykningen */
}
a:hover {
    color: #ff6347; /* En röd-orange färg (Tomato) */
    text-decoration: underline; /* Lägg till understrykning vid hover */
}

3. Responsiv design

Mål: Introducera konceptet att webbplatser måste anpassa sig till olika skärmstorlekar.

"Har du tänkt på att t.ex. YouTube ser annorlunda ut på datorn jämfört med i mobilen? Varför är det så?"

Förklaring:

"En datorskärm är bred (liggande/landskap), medan en mobilskärm är smal (stående/porträtt). Om en sida såg exakt likadan ut på mobilen skulle texten bli pytteliten och man skulle behöva zooma och scrolla i sidled hela tiden. Det är inte användarvänligt."

Responsiv design betyder att webbplatsens design "svarar" (responds) och anpassar sig efter skärmens storlek.

Analogi: Vatten och behållare

"Tänk på innehållet på din webbsida som vatten. Responsiv design ser till att vattnet (innehållet) kan flöda och anpassa sig oavsett om du häller det i ett brett akvarium (en datorskärm) eller i ett högt, smalt glas (en mobil)."

Hur gör man det? (Kort teaser)

"Proffsen använder något som kallas Media Queries i CSS. Det är som att skriva en 'om'-sats: OM skärmen är smalare än 600 pixlar, DÅ ska rubriken bli mindre och menyknapparna ska lägga sig under varandra."

Genom att ändra webbläsarens storlek storleken på en responsiv sida (t.ex. Aftonbladet eller DN) kan man se hur innehållet flyttar på sig.

Preview av framtida lektioner

Sammanfattning

Vad vi lärt oss idag:

Extra utmaningar om du är snabb:

Animationer:

h1 {
    transition: color 0.5s;
}
h1:hover {
    color: rainbow;
    transform: scale(1.1);
}

Gradienter:

body {
    background: linear-gradient(45deg, #ff6b6b, #4ecdc4);
}

Skuggor:

.box {
    box-shadow: 0 4px 8px rgba(0,0,0,0.1);
}

Rekommenderade resurser

  1. Kod-Timmen (Hour of Code) - Aktiviteter
    https://hourofcode.com/se/learn
    Många av aktiviteterna på Hour of Code (som arrangeras av Code.org) handlar om webbdesign. De är designade för att vara engagerande och korta, perfekta för att experimentera med HTML och CSS.
  2. Microsoft Learn - Skapa webbsidor med HTML och CSS för nybörjare
    https://learn.microsoft.com/sv-se/training/paths/build-web-pages-html-css-for-beginners/
    Microsofts svenska kurs som lär ut HTML- och CSS-kod för att skapa tillgängliga webbsidor
  3. Webdesignskolan - CSS grunder
    https://webdesignskolan.se/css/css.php
    Förklarar CSS (Cascading Style Sheets) som stilmallar och visar hur CSS kan styra tusentals dokument samtidigt. Täcker färg, teckensnitt, justering och effekter.
  4. Webbdesigna.se - CSS Padding exempel
    https://webbdesigna.se/css.php
    Specifik guide som förklarar skillnaden mellan padding och marginaler med praktiska exempel på svenska.
  5. W3Schools - CSS Tutorial
    https://www.w3schools.com/css/
    Fortsättningen på deras HTML-guide. Oslagbar för att snabbt slå upp och testa olika CSS-egenskaper som color, padding, border, etc. "Prova själv"-funktionen är guld värd.
  6. MDN Web Docs - CSS: Cascading Style Sheets
    https://developer.mozilla.org/sv-SE/docs/Web/CSS
    MDN erbjuder djupgående och korrekta förklaringar. Deras "CSS first steps"-modul är en utmärkt, pedagogisk startpunkt som finns översatt.
  7. CSS-Tricks - A Complete Guide to Flexbox
    https://css-tricks.com/snippets/css/a-guide-to-flexbox/
    För den eleven som blir klar snabbt och vill lära sig något mer avancerat. Flexbox är ett modernt sätt att skapa layouter. Denna guide är den bästa som finns, med väldigt tydliga bilder och exempel. Även om den är på engelska, är bilderna så pedagogiska att den fungerar bra ändå.
  8. FreeCodeCamp - Learn CSS by Building a Cafe Menu
    https://www.freecodecamp.org/learn/2022/responsive-web-design/
    En interaktiv, projektbaserad kurs där man lär sig CSS genom att bygga en specifik sak (en meny). Mycket praktiskt och "learning by doing". Plattformen är på engelska men upplägget är väldigt enkelt att följa.

Användbara verktyg:

Testa dig själv!