Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
| de:modul:m287:learningunits:lu05:loesungen:praktisches-beispiel [2026/05/29 07:59] – gelöscht - Externe Bearbeitung (Unbekanntes Datum) 127.0.0.1 | de:modul:m287:learningunits:lu05:loesungen:praktisches-beispiel [2026/05/29 13:22] (aktuell) – vdemir | ||
|---|---|---|---|
| Zeile 1: | Zeile 1: | ||
| + | ====== LU05.L03 - Webseite mobile freundlich umsetzen | ||
| + | |||
| + | ===== Lösungshinweis ===== | ||
| + | |||
| + | Nachfolgend finden Sie eine übersichtliche Aufzählung aller Anpassungen, | ||
| + | |||
| + | ===== Änderungen im HTML (`index.html`) ====== | ||
| + | |||
| + | Da HTML-Grundgerüst bereits gut strukturiert war, mussten nur minimale Optimierungen für die Barrierefreiheit und Struktur vorgenommen werden: | ||
| + | |||
| + | * **Sprachattribut ergänzt:** Im `< | ||
| + | * **Strukturierende Kommentare: | ||
| + | |||
| + | ===== Änderungen im CSS (`style.css`) ====== | ||
| + | |||
| + | Hier fand die eigentliche Magie statt. Der Desktop-Code blieb als Basis bestehen, wurde aber um zwei Media Queries erweitert. | ||
| + | |||
| + | ==== 1. Allgemeine Basis-Anpassung (Desktop) ===== | ||
| + | |||
| + | * **`body { margin: 0; }` hinzugefügt: | ||
| + | |||
| + | |||
| + | ==== 2. Für die Tablet-Ansicht (`@media screen and (max-width: 959px)`) ==== | ||
| + | |||
| + | * **Flexibler Wrapper:** `# | ||
| + | * **Zeilenumbruch aktiviert: | ||
| + | * **Navigation nach oben gezogen:** `#mainnav` bekam `width: 100%` und `order: 1`, damit sie sich – wie in der Grafik – über die gesamte Breite über den Inhalt legt. | ||
| + | * **Seitenleiste nach links verschoben: | ||
| + | * **Hauptbereich nach rechts verschoben: | ||
| + | |||
| + | ==== 3. Für die Mobile-Ansicht (`@media screen and (max-width: 600px)`) ==== | ||
| + | |||
| + | * **Alles auf 100% Breite:** Für `#mainnav`, `main` und `#sidebar` wurde die Breite auf `100%` gesetzt. Dadurch bricht das Nebeneinander komplett auf und alle Elemente stapeln sich sauber untereinander. | ||
| + | * **Reihenfolge getauscht: | ||
| + | * **Artikel-Grid aufgelöst: | ||
| + | * **Bild-Optimierung: | ||
| + | |||
| + | ===== Sourcecode: index.html ===== | ||
| + | |||
| + | <code html> | ||
| + | < | ||
| + | <html lang=" | ||
| + | < | ||
| + | < | ||
| + | <meta charset=" | ||
| + | <meta content=" | ||
| + | <link href=" | ||
| + | </ | ||
| + | |||
| + | <div id=" | ||
| + | | ||
| + | < | ||
| + | | ||
| + | <section class=" | ||
| + | | ||
| + | <nav id=" | ||
| + | < | ||
| + | <ul> | ||
| + | < | ||
| + | < | ||
| + | < | ||
| + | < | ||
| + | < | ||
| + | </ul> | ||
| + | </ | ||
| + | | ||
| + | <main id=" | ||
| + | <article class=" | ||
| + | <div class=" | ||
| + | <img alt=" | ||
| + | </ | ||
| + | <div class=" | ||
| + | < | ||
| + | <p> | ||
| + | Lorem ipsum dolor sit amet, consectetuer | ||
| + | adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa. Cum sociis natoque | ||
| + | penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec quam felis, | ||
| + | ultricies nec, pellentesque eu, pretium quis, sem. Nulla consequat massa quis enim. | ||
| + | Donec pede justo, fringilla vel, aliquet nec, vulputate eget, arcu. In enim justo, | ||
| + | rhoncus ut. | ||
| + | </p> | ||
| + | </ | ||
| + | </ | ||
| + | <article class=" | ||
| + | <div class=" | ||
| + | < | ||
| + | < | ||
| + | adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa. Cum sociis natoque | ||
| + | penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec quam felis, | ||
| + | ultricies nec, pellentesque eu, pretium quis, sem. Nulla consequat massa quis enim. | ||
| + | Donec pede justo, fringilla vel, aliquet nec, vulputate eget, arcu. In enim justo, | ||
| + | rhoncus ut. | ||
| + | </p> | ||
| + | </ | ||
| + | </ | ||
| + | </ | ||
| + | | ||
| + | <aside id=" | ||
| + | < | ||
| + | < | ||
| + | adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa. Cum sociis natoque | ||
| + | penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec quam felis, | ||
| + | ultricies nec, pellentesque eu, pretium quis, sem. Nulla consequat massa quis enim. | ||
| + | Donec pede justo, fringilla vel, aliquet nec, vulputate eget, arcu. In enim justo, | ||
| + | rhoncus ut.</ | ||
| + | <ul> | ||
| + | < | ||
| + | < | ||
| + | < | ||
| + | </ul> | ||
| + | < | ||
| + | </ | ||
| + | | ||
| + | </ | ||
| + | | ||
| + | < | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | </ | ||
| + | |||
| + | ===== style.css ===== | ||
| + | |||
| + | <code css> | ||
| + | /* ========================================================================== | ||
| + | 1. DESKTOP-ANSICHT (Basis-Layout) | ||
| + | | ||
| + | | ||
| + | * { | ||
| + | box-sizing: border-box; | ||
| + | } | ||
| + | |||
| + | body { | ||
| + | font-family: | ||
| + | margin: 0; /* Verhindert ungewollte Ränder am Bildschirmrand */ | ||
| + | } | ||
| + | |||
| + | # | ||
| + | margin: auto; | ||
| + | width: 960px; /* Feste Breite für die Desktop-Ansicht */ | ||
| + | } | ||
| + | |||
| + | header, footer { | ||
| + | background: lightgreen; | ||
| + | text-align: center; | ||
| + | padding: 10px; | ||
| + | width: 100%; | ||
| + | } | ||
| + | |||
| + | .main-content { | ||
| + | display: flex; /* Flexbox aktiviert das nebeneinander Anordnen */ | ||
| + | } | ||
| + | |||
| + | .post-with-image { | ||
| + | display: grid; | ||
| + | grid-template-columns: | ||
| + | gap: 15px; | ||
| + | } | ||
| + | |||
| + | #mainnav { | ||
| + | padding: 15px; | ||
| + | width: 20%; /* Nav nimmt 20% Breite ein */ | ||
| + | } | ||
| + | |||
| + | #sidebar { | ||
| + | padding: 15px; | ||
| + | width: 20%; /* Sidebar nimmt 20% Breite ein */ | ||
| + | } | ||
| + | |||
| + | main { | ||
| + | padding: 15px; | ||
| + | width: 60%; /* Hauptbereich nimmt 60% Breite ein (Zusammen 100%) */ | ||
| + | } | ||
| + | |||
| + | article img { | ||
| + | margin: 0 10px 10px 0; | ||
| + | max-width: 100%; | ||
| + | height: auto; | ||
| + | border: 3px solid black; | ||
| + | } | ||
| + | |||
| + | article { | ||
| + | padding: 15px; | ||
| + | margin-bottom: | ||
| + | background: lightblue; | ||
| + | } | ||
| + | |||
| + | nav ul { | ||
| + | padding-left: | ||
| + | } | ||
| + | |||
| + | nav ul li { | ||
| + | list-style: none; | ||
| + | margin-left: | ||
| + | } | ||
| + | |||
| + | |||
| + | /* ========================================================================== | ||
| + | 2. TABLET-ANSICHT (Breakpoint: | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | @media screen and (max-width: 959px) { | ||
| + | # | ||
| + | width: 100%; /* Layout passt sich flexibel der Bildschirmbreite an */ | ||
| + | padding: 0 10px; | ||
| + | } | ||
| + | |||
| + | .main-content { | ||
| + | flex-wrap: wrap; /* Ermöglicht das Umbrechen der Elemente in eine neue Zeile */ | ||
| + | } | ||
| + | |||
| + | /* Navigation wird vollflächig über die Inhaltsblöcke geschoben */ | ||
| + | #mainnav { | ||
| + | width: 100%; | ||
| + | order: 1; /* Kommt als erstes Element innerhalb von .main-content */ | ||
| + | } | ||
| + | |||
| + | /* Seitenleiste rutscht nach links */ | ||
| + | #sidebar { | ||
| + | width: 30%; /* Nimmt 30% der Breite ein */ | ||
| + | order: 2; /* Kommt an zweite Stelle (links) */ | ||
| + | } | ||
| + | |||
| + | /* Hauptbereich rutscht nach rechts neben die Seitenleiste */ | ||
| + | main { | ||
| + | width: 70%; /* Nimmt die restlichen 70% der Breite ein */ | ||
| + | order: 3; /* Kommt an dritte Stelle (rechts) */ | ||
| + | } | ||
| + | } | ||
| + | |||
| + | |||
| + | /* ========================================================================== | ||
| + | 3. MOBILE-ANSICHT (Breakpoint: | ||
| + | | ||
| + | (Alle Elemente untereinander gestapelt) | ||
| + | | ||
| + | @media screen and (max-width: 600px) { | ||
| + | /* Alle Blöcke werden auf die volle Breite gesetzt, um untereinander zu stehen */ | ||
| + | #mainnav, main, #sidebar { | ||
| + | width: 100%; | ||
| + | } | ||
| + | |||
| + | /* Reihenfolge laut Skizze anpassen */ | ||
| + | #mainnav { | ||
| + | order: 1; /* 1. Navigation */ | ||
| + | } | ||
| + | |||
| + | main { | ||
| + | order: 2; /* 2. Hauptbereich rutscht über die Seitenleiste */ | ||
| + | } | ||
| + | |||
| + | #sidebar { | ||
| + | order: 3; /* 3. Seitenleiste rutscht unter den Hauptbereich */ | ||
| + | } | ||
| + | |||
| + | /* Optimierung für den Artikel: Das zweispaltige Grid wird einspaltig */ | ||
| + | .post-with-image { | ||
| + | grid-template-columns: | ||
| + | gap: 10px; | ||
| + | } | ||
| + | |||
| + | /* Das Artikelbild wird für Mobilgeräte zentriert dargestellt */ | ||
| + | article img { | ||
| + | margin: 0 0 10px 0; | ||
| + | width: 100%; | ||
| + | } | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | |||
| + | ---- | ||
| + | [[https:// | ||