Lektion 3 — Øvelser
Man lærer CSS og formularer bedst ved at prøve selv. Dette ark samler dagens to øvelser med den uddybning, der ikke kan være på slidesne.
Hvis du ikke nåede forberedelsen (især Cafe Menu til trin 28), så start der — eller gør det parallelt med Øvelse 1.
| Øvelse | Hvornår | Tid |
|---|---|---|
| 1 Style login-siden | Efter formular-quizzen | ~40 min |
| 2 Gruppearbejde: Mockup til D1 | Efter Øvelse 1 | ~40 min |
Øvelse 1 — Style login-siden
Mål: Gøre Lektion 1's login.html til en rigtig formular, og style den
med et eksternt stylesheet. Det er den CSS, I øvede i Cafe Menu — nu på
jeres side.
Arbejd videre i samme mappe som Lektion 1 (index.html og login.html).
Det siden skal indeholde
- En
<form>med:
<label>+<input type="text">til brugernavn<label>+<input type="password">til adgangskode<button type="submit">til at logge indforpå hvertlabelmatcheridpå feltet
- Logoet fra Lektion 1 (eller et nyt) med
alt-tekst. - Et link tilbage til
index.html. - En fil
styles.cssi samme mappe, koblet med:
<link rel="stylesheet" href="styles.css">
I behøver ikke action eller method. Mockupet sender ikke noget til en
server. action="#" er fint, eller udelad dem.
Udgangspunkt — byt app-navnet ud:
<!DOCTYPE html>
<html lang="da">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Log ind — Blodtryksdagbog</title>
<link rel="stylesheet" href="styles.css">
</head>
<body>
<div class="kort">
<h1>Blodtryksdagbog</h1>
<p>Log ind for at fortsætte.</p>
<form action="#">
<label for="brugernavn">Brugernavn</label>
<input id="brugernavn" type="text" required>
<label for="kode">Adgangskode</label>
<input id="kode" type="password" required>
<button type="submit">Log ind</button>
</form>
<p><a href="index.html">Tilbage til forsiden</a></p>
</div>
</body>
</html>
Styling — tjekliste
I styles.css skal du bruge class-selectors (ikke kun type-selectors
på body og h1). Wrap login-siden i et <div class="kort"> (eller
lignende), og style den.
Mindst:
- farver — tekst og baggrund (
color,background-color) - kanter —
borderog gerneborder-radius - luft —
paddingogmargin - placering — giv formularen en
width(ellermax-width) og centrér den medmargin: auto - skygge —
box-shadowpå kortet/formularen (valgfrit, men det løfter siden)
I må gerne kopiere idéer fra Cafe Menu (bredde, centrering, class på et "kort"). Byt teksten og farverne til jeres projekt.
Tjek med DevTools
Åbn login.html i browseren: højreklik → Inspicér → fanen Styles.
- Find formularen i DOM-træet. Tjek at
<label>,<input>og<button>ligger inde i<form>. - Klik på et styled element. Se hvilke regler der rammer det — og slå en egenskab til og fra.
- Ret en farve live. Den forsvinder ved reload, medmindre du gemmer den i
styles.css.
Øvelsen er i hus, når login.html har en formular med labels,
styles.css er koblet på, tjeklisten ovenfor er opfyldt, og du har kigget
siden efter i DevTools.
Hvis du sidder fast
- Mangler stylesheetet at slå igennem? Tjek stien i
<link>og at filen hedder præcisstyles.css. Hard-refresh (Ctrl+F5). labelflytter ikke fokus? Så matcherforogidikke — de skal være identiske, også store/små bogstaver.- Centrering virker ikke?
margin: autokræver enwidth(ellermax-width) på det element, du centrerer. - Bed en sidekammerat eller underviseren om at kigge med. Vis koden, ikke bare skærmen.
Hvis du har ekstra tid
:hoverpå knappen.- Et
type="email"-felt, hvis jeres case logger ind med e-mail. - Style forsiden
index.htmlmed det sammestyles.css, så de to sider ligner hinanden. - Fortsæt Cafe Menu fra trin 28 mod trin 55 (padding), hvis du stoppede tidligt i forberedelsen.
Øvelse 2 — Gruppearbejde: Mockup til D1
Mål: Bruge HTML + CSS på flere skærme i jeres sundhedsteknologiske case. Det er stadig D1-mockup — klikbart, uden backend.
Øvelse 1 var individuel. Denne øvelse er gruppearbejde: arbejd sammen i gruppen, i den mappe I allerede har, og byg videre mod jeres D1-aflevering.
Det I skal nå
- Style
index.html, så forsiden hænger sammen med login-siden (sammestyles.css, samme farver og typografi). - Skitsér 1–2 skærme mere (udover en login-side) som HTML-filer, fx:
- en oversigt (liste over målinger, aftaler, medicin — det jeres case handler om)
- en detalje- eller formularside (ny måling, ny aftale, …)
- Link siderne sammen, så man kan klikke sig rundt. Logoet kan være et
link hjem til
index.html.
Siderne behøver ikke være færdige. De skal ligne skærme i appen og bruge de tags og den CSS, I har lært.
Tjek med DevTools
Inspicér den nye side. Tjek nesting, at billeder har alt, og at
stylesheetet rammer de rigtige elementer.
Øvelsen er i hus, når forsiden er stylet, I har mindst én ekstra HTML-side ud over login, og siderne linker til hinanden.
Hvis I har ekstra tid
- Gentag formular-mønsteret (
<form>,<label>,<input>) på en "ny måling"- eller "ny aftale"-side. - En
position: fixedtopbjælke med appens navn og et link til login. - Fortsæt Cafe Menu, eller kig på freeCodeCamp CSS — men D1-mockupet kommer først.
Hvis I er færdige med det: snak i gruppen om, hvilke 2–3 skærme der skal være med i D1, og hvad der kan vente.