Lektion 01 — Introduktion
Christian Budtz — chbu@dtu.dk
1 / 40
F fuld skærm · B sort · O overblik
Christian Budtz — chbu@dtu.dk
Pauser lægges ind undervejs.
Nu bliver det kompliceret!
1/2 fullstack-web
1/4 metode: projekt, UML og UX
1/4 netværksteknologi
Teori og øvelser.
Gennemgående gruppeprojekt.
Eksempler til inspiration
I vælger selv en afgrænset sundhedsteknologisk case.
Der skal indgå alle elementer af fullstack i applikationen. Appen skal omhandle patienter.
Portefølje + website skal være godkendt for at I kan gå til eksamen.
Individuel mundtlig eksamen baseret på projektet.
AI-værktøjer (ChatGPT, Copilot, Cursor, …) er tilladt.
Hvis I ikke kan forklare det, ejer I det ikke.
Efter lektionen skal du kunne:
Sprog, Git og IDE.
Gå til /quiz og indtast koden fra tavlen.
Hvor står vi? — programmering, databaser, UML og Git fra 1. og 2. semester.
Frem med VS Code.
Vi gør det sammen nu:
mit-siteindex.html<!DOCTYPE html>
<html lang="da">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Min første side</title>
</head>
<body>
<h1>Velkommen</h1>
<p>Dette er min første webside.</p>
</body>
</html>
Når siden vises i browseren, er Øvelse 0 i hus. Hvis du har ekstra tid - så eksperimentér gerne lidt.
Frontend
Backend — senere i kurset
HTML beskriver hvad indholdet er. Browseren fortolker strukturen.
HyperText Markup Language
<a href>, <form action="/somepage">, <button type="submit">,<html>
<head>
<title> DTU Web Programmering
<title>
</head>
<body>
<h1><b> Lektioner</b></h1>
<h2><i> E26 </i></h2>
<p>Lektion 1: Introduktion og HTML</p>
<p>Lektion 2: Projekt</p>
<p>Lektion 3: HTML 2 + CSS</p>
</body>
</html>
Hvad er konsekvensen?
title åbnes igen i stedet for at blive lukket:
<title>DTU Web Programmering</title>
Browseren gætter ofte videre — siden ser måske fin ud. Træet bliver alligevel forkert. Det giver ballade senere med CSS, JavaScript og tilgængelighed.
Åbnings- og lukketag:
<tag>indhold</tag>
Hierarkisk — luk i omvendt rækkefølge:
<html>
<body>
Tekst
</body>
</html>
Indre HTML:
<h1>Noget html</h1>
Ekstra information i starttagget:
<img src="katter.jpg" alt="En kat i en kurv">
<p id="intro">Introduktion</p>
| Attribut | Bruges til |
|---|---|
src |
placering af en ressource, fx et billede |
alt |
alternativ tekst til billedet |
href |
destinationen for et link |
id |
unik identifikator |
class |
kategori — bruges af CSS senere |
Overskrifter: <h1>, <h2>, … <h6>
Afsnit — ekstra linje før og efter:
<p>Et afsnit med tekst.</p>
Billede — void element, intet lukketag:
<img src="katter.jpg" alt="En kat i en kurv">
Link:
<a href="https://www.dtu.dk">Besøg DTU</a>
Elementer kan ligge inde i hinanden. Luk i den rigtige rækkefølge:
<p>Dette er <strong>vigtigt</strong>.</p>
HTML-kommentarer vises ikke på siden:
<!-- Dette er en kommentar -->
<a href="https://www.dtu.dk">Besøg DTU</a>
<a href="om-os.html">Om os</a>
<a href="#kontakt">Gå til kontakt</a>
<a href="https://www.dtu.dk" target="_blank">DTU i nyt faneblad</a>
<h2 id="kontakt">Kontakt</h2>
https://…om-os.html eller images/kat.jpg#id: hop til et element på samme sidetarget="_blank": åbn i nyt fanebladHele billedet bliver klikbart, når <img> ligger inde i <a>:
<a href="https://www.dtu.dk">
<img src="images/logo.png" alt="DTU-logo">
</a>
Relativ vs. absolut sti virker på samme måde for billeder:
<img src="images/kat.jpg" alt="En kat">
<img src="https://example.com/kat.jpg" alt="En kat">
<ul>
<li>Kattefoder</li>
<li>Garnnøgle</li>
</ul>
<ol>
<li>Åbn VS Code</li>
<li>Opret index.html</li>
</ol>
ul = unummereret. ol = nummereret. Hvert punkt er et li.
Brug elementer efter deres betydning, ikke kun efter udseende:
<header>
<h1>Min side</h1>
</header>
<main>
<section>
<h2>Om projektet</h2>
<p>Projektets beskrivelse.</p>
</section>
</main>
<footer>Kontakt os</footer>
header, main, section og footer erstatter ikke h1/p —
de rammer indholdet ind.
<figure>
<img src="images/kat.jpg" alt="En kat i en kurv">
<figcaption>Maja i sin yndlingskurv</figcaption>
</figure>
<p>Katte er <em>pattedyr</em> og <strong>rovdyr</strong>.</p>
figure + figcaption: billede med billedtekstem: eftertryk (typisk kursiv)strong: stærk betydning (typisk fed)HTML bliver til et træ i browseren.
html
├─ head
│ └─ title
└─ body
├─ h1
└─ p
Elementer kan have et id. Så kan man pege på dem
med links (#kontakt) — og senere med JavaScript.
Højreklik på siden → Inspicér.
Når siden ser rigtig ud, men koden er forkert: kig i DevTools, ikke kun på skærmen.
Gå til /quiz og indtast koden fra tavlen.
Lektion 1–2: HTML — tags, attributter, boilerplate og nesting.
Man lærer bedst HTML ved at prøve selv!
Detaljerne — trin, tjekliste og ekstra tid — står i øvelsesarket.
freeCodeCamp, Cat Photo App (42 trin) — styret øvelse.
Fortsæt i Basic HTML dér, hvor forberedelsen stoppede.
Fokus:
targetsection / main / footerfigure / figcaptionem / strongFreestyle i VS Code. En login-side til jeres kommende sundhedsapp.
alt-tekstFormularer gennemgås rigtigt i Lektion 3.