Gi nettsider visuell form med CSS, inkludert farger, fonter, boksmodellen og moderne layoutteknikker.
HTML gir nettsiden struktur, men det er CSS som bestemmer hvordan den ser ut. Med CSS kan du kontrollere farger, skrifttyper, størrelser, avstander og hele sidelayouten.
CSS-regler skrives i et eget stilark (.css-fil) eller direkte i HTML-dokumentet med -elementet.
En CSS-regel består av en selektor og en deklarasjonsblokk:
``css`
h1 {
color: darkblue;
font-size: 2rem;
margin-bottom: 1rem;
}
- Selektor (h1) – velger hvilke elementer regelen gjelder forcolor
- Egenskap () – hva som skal endresdarkblue`) – hva egenskapen settes til
- Verdi (
CSS har flere typer selektorer for å velge elementer:
`` -elementer css
/ Element-selektor – alle
p { color: #333; }
/ Klasse-selektor – elementer med class="intro" /
.intro { font-weight: bold; }
/ ID-selektor – elementet med id="header" /
#header { background-color: navy; }
/ Kombinasjoner / rett etter
nav a { text-decoration: none; } / inne i
h2 + p { font-size: 1.1rem; } /
/
.kort:hover { transform: scale(1.05); } / ved musepeker /
`
Det finnes tre måter å koble CSS til HTML:
`html
Rød tekst
Eksternt stilark er best fordi det holder HTML og CSS adskilt og lar deg gjenbruke stilen på flere sider.
```
┌─────────── margin ───────────┐
│ ┌──────── border ──────────┐ │
│ │ ┌────── padding ───────┐ │ │
│ │ │ │ │ │
│ │ │ innhold │ │ │
│ │ │ │ │ │
│ │ └──────────────────────┘ │ │
│ └──────────────────────────┘ │
└──────────────────────────────┘
- Innhold – tekst, bilder osv.
- Padding – avstand mellom innhold og kantlinje
- Border – kantlinje rundt elementet
- Margin – avstand mellom elementet og andre elementer
Tips: Bruk box-sizing: border-box;` slik at padding og border inkluderes i den angitte bredden.
Flexbox gjør det enkelt å fordele og justere elementer langs én akse:
``css`
.container {
display: flex;
justify-content: space-between; / fordeling langs hovedaksen /
align-items: center; / justering langs kryssaksen /
gap: 1rem; / avstand mellom elementer /
}
Vanlige Flexbox-egenskaper:
- flex-direction: row (standard) eller columnjustify-content
- : flex-start, center, space-between, space-aroundalign-items
- : flex-start, center, stretchflex-wrap
- : wrap lar elementer brytes til neste linje
CSS Grid er ideell for komplekse sidelayouter med rader og kolonner:
`css
.grid-container {
display: grid;
grid-template-columns: 1fr 2fr 1fr; / tre kolonner /
grid-template-rows: auto 1fr auto; / tre rader /
gap: 1rem;
}
.header { grid-column: 1 / -1; } / strekker over alle kolonner /
.sidebar { grid-row: 2 / 3; }
.main { grid-column: 2 / 3; }
`
fr-enheten fordeler tilgjengelig plass proporsjonalt. 1fr 2fr 1fr` gir den midterste kolonnen dobbelt så mye plass.
HTML:
``html`
MinSide
CSS:
`css
.navbar {
display: flex;
justify-content: space-between;
align-items: center;
padding: 1rem 2rem;
background-color: #1a1a2e;
}
.logo {
color: white;
font-size: 1.5rem;
text-decoration: none;
}
.nav-links {
display: flex;
list-style: none;
gap: 2rem;
}
.nav-links a {
color: #e0e0e0;
text-decoration: none;
}
.nav-links a:hover {
color: #00d4ff;
}
`
Flexbox med justify-content: space-between` skyver logoen til venstre og lenkene til høyre.
- CSS kontrollerer utseendet til HTML-elementer gjennom regler med selektorer og egenskaper
- Selektorer velger elementer: element (p), klasse (.intro), ID (#header)
- Boksmodellen definerer innhold, padding, border og margin
- Bruk box-sizing: border-box for enklere størrelsesberegning
- Flexbox er ideell for endimensjonal layout (rad eller kolonne)
- CSS Grid er ideell for todimensjonal layout (rader og kolonner)
- Hold CSS i et eksternt stilark for oversikt og gjenbruk