Koble CSS til HTML
Det finnes tre måter å legge til CSS på en HTML-side. Hver metode har sine fordeler og ulemper.
1. Ekstern CSS (anbefalt)
CSS-koden ligger i en egen fil med .css-endelse. HTML-filen lenker til denne filen.
HTML-fil (index.html)
<!DOCTYPE html>
<html lang="no">
<head>
<meta charset="UTF-8">
<title>Min side</title>
<link rel="stylesheet" href="style.css">
</head>
<body>
<h1>Hei verden!</h1>
<p>Dette er en paragraf.</p>
</body>
</html>
CSS-fil (style.css)
Eksempel
Filstruktur
Beste praksis
Ekstern CSS er den anbefalte metoden fordi:
- Samme CSS kan brukes på flere HTML-sider
- Lettere å holde orden på koden
- Nettleseren kan cache (lagre) CSS-filen
CSS i undermappe
Ofte legger man CSS-filer i en egen mappe:
Da må du oppdatere stien:
2. Intern CSS
CSS-koden skrives inne i <style>-taggen i HTML-filens <head>.
<!DOCTYPE html>
<html lang="no">
<head>
<meta charset="UTF-8">
<title>Min side</title>
<style>
h1 {
color: blue;
}
p {
font-size: 18px;
}
</style>
</head>
<body>
<h1>Hei verden!</h1>
<p>Dette er en paragraf.</p>
</body>
</html>
Når bruke intern CSS?
Intern CSS kan være nyttig for:
- Små prosjekter med bare én side
- Rask testing av stiler
- Stiler som bare gjelder én spesifikk side
3. Inline CSS
CSS skrives direkte på elementet med style-attributtet.
Unngå inline CSS
Inline CSS bør unngås fordi:
- Vanskelig å vedlikeholde
- Kan ikke gjenbrukes
- Blander HTML og CSS
- Overstyrer annen CSS (kan skape problemer)
Sammenligning
| Metode | Fil | Gjenbrukbar | Anbefalt |
|---|---|---|---|
| Ekstern | .css-fil |
Ja | ✅ Ja |
| Intern | I <style> |
Nei | For små prosjekter |
| Inline | På elementet | Nei | ❌ Nei |
Link-taggen forklart
| Attributt | Betydning |
|---|---|
rel="stylesheet" |
Forteller at dette er en CSS-fil |
href="../style.css" |
Stien til CSS-filen |
Flere CSS-filer
Du kan lenke til flere CSS-filer:
<head>
<link rel="stylesheet" href="reset.css">
<link rel="stylesheet" href="style.css">
<link rel="stylesheet" href="responsive.css">
</head>
Rekkefølge
CSS-filer lastes i rekkefølge. Stiler i senere filer kan overskrive tidligere stiler.
Prioritet (Specificity)
Når samme element har flere stiler, bestemmer CSS hvilken som "vinner". Se Selektorer for en mer detaljert forklaring.
1. Inline CSS → Høyest prioritet
2. Intern CSS → Middels prioritet
3. Ekstern CSS → Lavest prioritet
<!-- Ekstern CSS sier: color: blue -->
<!-- Intern CSS sier: color: green -->
<h1 style="color: red;">Hvilken farge?</h1>
<!-- Svaret: RØD (inline vinner) -->
Praktisk eksempel
Filstruktur
index.html
<!DOCTYPE html>
<html lang="no">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Min Portfolio</title>
<link rel="stylesheet" href="css/style.css">
</head>
<body>
<header>
<h1>Velkommen</h1>
<nav>
<a href="index.html">Hjem</a>
<a href="about.html">Om meg</a>
<a href="contact.html">Kontakt</a>
</nav>
</header>
<main>
<p>Dette er min portfolio!</p>
</main>
</body>
</html>
css/style.css
* {
box-sizing: border-box;
margin: 0;
padding: 0;
}
body {
font-family: Arial, sans-serif;
line-height: 1.6;
}
header {
background: #333;
color: white;
padding: 1rem;
}
nav a {
color: white;
margin-right: 1rem;
}
main {
padding: 2rem;
}
Samme style.css brukes på alle tre HTML-sidene!
Oppsummering
| Gjør dette | Ikke gjør dette |
|---|---|
| Bruk ekstern CSS | Bruk inline CSS overalt |
| Organiser filer i mapper | Ha all kode i én fil |
| Bruk beskrivende filnavn | Bruk style1.css, style2.css |
Lenk CSS i <head> |
Lenk CSS i <body> |