Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
| de:modul:m291:learningunits:lu01:aufgaben:a_landingpage [2026/01/24 16:25] – gkoch | de:modul:m291:learningunits:lu01:aufgaben:a_landingpage [2026/01/26 00:06] (aktuell) – gkoch | ||
|---|---|---|---|
| Zeile 1: | Zeile 1: | ||
| - | ====== Projekt 1: Landingpage Hero Section (Light/Dark Mode) ====== | + | ====== Projekt 1: Landingpage Hero Section |
| <WRAP center round box 80%> | <WRAP center round box 80%> | ||
| {{ : | {{ : | ||
| \\ | \\ | ||
| - | **Projektziel: | + | **Projektziel |
| + | \\ | ||
| + | **Fokus LU01:** __Zuerst HTML-Struktur__, | ||
| </ | </ | ||
| - | + | ==== Lernziele | |
| - | [[m291: | + | * Sie bauen eine saubere |
| - | + | * Sie gruppieren UI-Teile in sinnvolle Wrapper (z.B. '' | |
| - | ==== Lernziele ==== | + | * Sie setzen ein Grundlayout mit Flexbox |
| - | * HTML-Struktur mit '' | + | * Sie nutzen relative Einheiten sinnvoll (%, vh, rem) und zentrieren einen Container mit '' |
| - | * CSS: Variablen, Typografie, Flexbox, Responsive | + | |
| - | * JS: DOM-Elemente abfragen, EventListener, Klassen toggeln | + | |
| ==== Material ==== | ==== Material ==== | ||
| * Figma-Design + Assets (SVG/PNG) | * Figma-Design + Assets (SVG/PNG) | ||
| - | * Starter-Ordner ('' | + | * Starter-Template |
| - | * Live Server / Preview im Browser | + | * Browser + DevTools + Live Server |
| + | <WRAP center round download 60%> | ||
| + | Laden Sie hier das Material herunter: | ||
| + | {{ : | ||
| + | </WRAP> | ||
| - | ==== Schrittweiser Aufbau ==== | ||
| - | === A: Design analysieren (10 Min.) === | + | <WRAP center round important 80%> |
| - | - Identifizieren Sie: **Header**, **Navigation**, **Hero**, **2-Spalten-Layout**, | + | **Wichtig:** Halten Sie sich an die TODO-Markierungen im Template. |
| - | - Messen Sie Abstände | + | \\ |
| - | - Legen Sie eine Farbpalette gemäss dem Figma-Design fest → als CSS-Variablen. | + | In LU01 machen Sie nur, was mit **TODO in LU01** beschriftet ist. (Google Font, Favicon, Farben/ |
| + | </ | ||
| - | === B: HTML-Struktur | + | ==== Schrittweiser Aufbau |
| - | - ''< | + | |
| - | - ''< | + | |
| - | - Textblock ('' | + | |
| - | - Hero-Bild mit '' | + | |
| + | ===== 1) HTML zuerst: Struktur & Gruppen von Elementen ===== | ||
| - | === C: CSS-Basics (30 Min.) === | + | === 1.1 Header: Logo + Navigation + Switch-Platzhalter |
| - | - Reset: '' | + | <WRAP center round box 80%> |
| - | - '' | + | {{ :de:modul:m291:learningunits: |
| - | - Typografie: font-family, font-weight, line-height | + | \\ |
| - | - Max-Width + Padding in '' | + | // |
| + | </ | ||
| - | === D: Layout mit Flexbox | + | **Aufgabe:** Bauen Sie den ''< |
| - | - Header: Logo links, | + | * Logo als '' |
| - | - Hero: 2 Spalten | + | * Navigation als '' |
| - | - Buttons als Gruppe | + | * Switch als Platzhalter einfügen (nur '' |
| + | |||
| + | <WRAP center round box 80%> | ||
| + | **Repetition: | ||
| + | \\ | ||
| + | - '' | ||
| + | - '' | ||
| + | - '' | ||
| + | - '' | ||
| + | </ | ||
| + | |||
| + | <WRAP center round tip 60%> | ||
| + | Mehr Infos zum ''< | ||
| + | </ | ||
| + | |||
| + | |||
| + | {{: | ||
| + | \\ | ||
| + | //Beispiel einer Navigation mit ''< | ||
| + | |||
| + | **Checkliste** | ||
| + | * Ist die Navigation eine Liste ('' | ||
| + | * Gibt es pro Link ein '' | ||
| + | * Hat das Logo einen passenden '' | ||
| + | |||
| + | === 1.2 Hero Section: Inhalt | ||
| + | |||
| + | <WRAP center round box 80%> | ||
| + | {{ : | ||
| + | \\ | ||
| + | // | ||
| + | </ | ||
| + | **Aufgabe: | ||
| + | | ||
| + | * Buttons in '' | ||
| + | * Features/ | ||
| + | |||
| + | |||
| + | **Checkliste** | ||
| + | * Sind Buttons in einem Wrapper gruppiert? | ||
| + | * Sind “Features” in einem Wrapper gruppiert? | ||
| + | * Ist die Struktur logisch lesbar, auch ohne CSS? | ||
| + | |||
| + | |||
| + | === 1.3 Hero-Bild === | ||
| + | **Aufgabe:** Fügen Sie das Bild gemäss Template ein. Nutzen Sie '' | ||
| + | |||
| + | <WRAP center round box 80%> | ||
| + | **Repetition: | ||
| + | \\ | ||
| + | Mit '' | ||
| + | \\ | ||
| + | Sie liefern mehrere Varianten – der Browser entscheidet. | ||
| + | </ | ||
| + | |||
| + | **Beispiel: Bild mit '' | ||
| + | <code html> | ||
| + | <img | ||
| + | class=" | ||
| + | src=" | ||
| + | srcset=" | ||
| + | ./ | ||
| + | alt=" | ||
| + | /> | ||
| + | </ | ||
| + | |||
| + | **Checkliste** | ||
| + | * Stimmt der Pfad ('' | ||
| + | * Haben Sie einen sinnvollen '' | ||
| + | |||
| + | ===== 2) CSS: Grundlayout ===== | ||
| + | |||
| + | === 2.1 Container zentrieren: '' | ||
| + | **Aufgabe: | ||
| + | |||
| + | <WRAP center round box 80%> | ||
| + | **Repetition: | ||
| + | \\ | ||
| + | | ||
| + | * '' | ||
| + | * '' | ||
| + | </ | ||
| + | |||
| + | **Beispiel: | ||
| + | <code css> | ||
| + | .main-wrapper { | ||
| + | max-width: 1100px; | ||
| + | margin: 0 auto; | ||
| + | padding: 24px; | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | === 2.2 Header mit Flexbox === | ||
| + | <WRAP center round box 80%> | ||
| + | {{ : | ||
| + | \\ | ||
| + | // | ||
| + | |||
| + | </ | ||
| + | <WRAP center round tip 60%> | ||
| + | Eine gute Übersicht zur Flexbox gibt es hier: [[https:// | ||
| + | </ | ||
| + | |||
| + | |||
| + | **Aufgabe: | ||
| + | |||
| + | <WRAP center round box 80%> | ||
| + | **Repetition: | ||
| + | \\ | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | </ | ||
| + | |||
| + | |||
| + | === 2.3 Navigation: Menu-Items als Flex-Reihe === | ||
| + | **Aufgabe: | ||
| + | |||
| + | |||
| + | === 2.4 Hero Section: 2-Spalten Flexbox === | ||
| + | **Aufgabe: | ||
| + | |||
| + | |||
| + | === 2.5 Bild soll responsiv schrumpfen === | ||
| + | **Aufgabe: | ||
| - | === Etappe E: Responsive (30 Min.) === | ||
| <WRAP center round box 80%> | <WRAP center round box 80%> | ||
| {{ : | {{ : | ||
| \\ | \\ | ||
| - | Setzen | + | **Hinweis: |
| </ | </ | ||
| - | - Ab einer Breite (z.B. < 1024px): | + | <WRAP center round box 80%> |
| - | - Hero wird '' | + | **Repetition: Responsive Images** |
| - | - Abstände/Fontgrössen | + | \\ |
| - | - Menü wird zu Hamburger | + | * '' |
| + | * '' | ||
| + | </WRAP> | ||
| + | |||
| + | |||
| + | === 2.6 Buttons: als Gruppe | ||
| + | **Aufgabe: | ||
| + | |||
| + | {{: | ||
| + | |||
| + | |||
| + | === 2.7 Hamburger-Buttons (für LU01: ausblenden) === | ||
| + | **Aufgabe: | ||
| + | |||
| + | <code css> | ||
| + | .hamburger-button, | ||
| + | .hamburger-button-close { | ||
| + | display: none; | ||
| + | } | ||
| + | </ | ||
| + | |||
| - | === Etappe F: JS Interaktivität (30–45 Min.) === | ||
| - | 1. Elemente abrufen: | ||
| - | - '' | ||
| - | - '' | ||
| - | 2. Funktion '' | ||
| - | - Klasse '' | ||
| - | - Logo-Datei wechseln | ||
| - | 3. EventListener: | ||
| - | - '' | ||
| + | ==== Checkliste “LU01 fertig” ==== | ||
| + | * HTML: Logo + Nav-Liste + Switch-Platzhalter sind vorhanden | ||
| + | * HTML: Hero-Text, Button-Gruppe, | ||
| + | * HTML: Bild mit '' | ||
| + | * CSS: '' | ||
| + | * CSS: Header als Flexbox (3 Bereiche verteilt) | ||
| + | * CSS: Hero als Flexbox (2 Spalten) | ||
| + | * CSS: Bild schrumpft responsiv ('' | ||
| ==== Debugging-Checkliste ==== | ==== Debugging-Checkliste ==== | ||
| - | * Öffnen Sie DevTools → Console | + | * Öffnen Sie DevTools → Console (gibt es rote Fehlermeldungen? |
| - | * Prüfen Sie, ob Selektoren etwas finden | + | * Prüfen Sie Pfade zu '' |
| - | * Prüfen Sie Pfade zu '' | + | * Prüfen Sie im Elements-Tab: |
| + | * Test: Browserfenster kleiner ziehen → Bild bleibt proportional | ||
| - | ==== Abgabe-Kriterien ==== | ||
| - | - Struktur semantisch (nav als Liste) | ||
| - | - Layout desktop + mobile korrekt | ||
| - | - Switch funktioniert und wechselt Farben + Logo | ||
| - | - Code lesbar: sprechende Namen, wenig “magische” Selektoren | ||
| - | ==== Stretch Goals ==== | + | ==== Ausblick (LU02 / LU03) ==== |
| - | | + | |
| - | - “prefers-color-scheme” als Default berücksichtigen | + | |
| - | | + | |