Makro-Layouts beschreiben die größere, seitenweite Organisation Ihrer Benutzeroberfläche.

Bevor Sie ein Layout anwenden, sollten Sie darauf achten, dass der Fluss Ihrer Inhalte sinnvoll ist. Diese Standardreihenfolge mit einer Spalte wird auf kleineren Bildschirmen verwendet.
<body>
<header>…</header>
<main>
<article>…</article>
<aside>…</aside>
</main>
<footer>…</footer>
</body>
Wenn Sie diese einzelnen Komponenten auf Seitenebene anordnen, entwerfen Sie ein Makro-Layout: eine allgemeine Ansicht Ihrer Seite. Mithilfe von Medienabfragen können Sie in CSS Regeln angeben, wie diese Ansicht an verschiedene Bildschirmgrößen angepasst werden soll.
Raster
CSS-Raster ist ein hervorragendes Tool, um ein Layout auf Ihre Seite anzuwenden. Im vorherigen Beispiel möchten Sie möglicherweise ein zweispaltiges Layout verwenden, sobald genügend Bildschirmbreite verfügbar ist. Um dieses zweispaltige Layout anzuwenden, sobald der Browser breit genug ist, verwenden Sie eine Medienabfrage, um die Rasterstile über einem bestimmten Breakpoint zu definieren.
@media (min-width: 45em) {
main {
display: grid;
grid-template-columns: 2fr 1fr;
}
}
Flexbox
Für dieses spezielle Layout können Sie auch Flexbox verwenden. Die Stile würden so aussehen:
@media (min-width: 45em) {
main {
display: flex;
flex-direction: row;
}
main article {
flex: 2;
}
main aside {
flex: 1;
}
}
Die Flexbox-Version erfordert jedoch mehr CSS. Jede Spalte hat eine separate Regel, die beschreibt, wie viel Platz sie einnehmen soll. Im Rasterbeispiel sind dieselben Informationen in einer Regel für das enthaltende Element zusammengefasst.
Benötigen Sie eine Medienabfrage?
Sie müssen nicht immer eine Medienabfrage verwenden. Medienabfragen funktionieren gut, wenn Sie Änderungen an einigen Elementen vornehmen. Wenn das Layout jedoch häufig aktualisiert werden muss, können Ihre Medienabfragen mit vielen Breakpoints unübersichtlich werden.
Angenommen, Sie haben eine Seite voller Kartenkomponenten.
Die Karten sind nie breiter als 15em und Sie möchten so viele Karten wie möglich in eine Zeile setzen.
Sie könnten Medienabfragen mit Breakpoints wie 30em, 45em und 60em schreiben, aber das ist ziemlich mühsam und schwer zu verwalten.
Stattdessen können Sie Regeln anwenden, damit die Karten selbst automatisch den richtigen Platz einnehmen.
.cards {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(15em, 1fr));
grid-gap: 1em;
}
Mit Flexbox lässt sich ein ähnliches Layout erzielen. Wenn in diesem Fall nicht genügend Karten vorhanden sind, um die letzte Zeile zu füllen, werden die verbleibenden Karten so gestreckt, dass sie den verfügbaren Platz ausfüllen, anstatt in Spalten angeordnet zu werden. Wenn Sie Zeilen und Spalten anordnen möchten, verwenden Sie Raster.
.cards {
display: flex;
flex-direction: row;
flex-wrap: wrap;
gap: 1em;
}
.cards .card {
flex-basis: 15em;
flex-grow: 1;
}
Durch die Anwendung einiger intelligenter Regeln in Flexbox oder Raster lassen sich dynamische Makro-Layouts mit minimalem CSS und ohne Medienabfragen entwerfen. Das spart Ihnen Arbeit, da die Berechnungen vom Browser übernommen werden. Einige Beispiele für moderne CSS-Layouts, die fließend sind, ohne dass Medienabfragen erforderlich sind, finden Sie unter 1linelayouts.com.
Ihr Wissen wird getestet
Testen Sie Ihr Wissen über Makro-Layouts.
Welcher Satz beschreibt Makro-Layouts am besten?
Werden in Makro-Layouts immer Medienabfragen verwendet, um sie an verschiedene Bildschirmgrößen anzupassen?
Nachdem Sie nun einige Ideen für Makro-Layouts auf Seitenebene haben, wenden Sie sich den Komponenten auf der Seite zu. Das ist der Bereich der Mikro-Layouts.