CSS

⌘K
  1. Home
  2. Docs
  3. CSS
  4. CSS Media Queries

CSS Media Queries

CSS Media Queries: Media Queries sind ein essenzielles Werkzeug in CSS, um Layouts und Designs flexibel und responsiv zu gestalten. Sie ermöglichen es, Stylesheets anzupassen, je nachdem, welche Eigenschaften das Gerät oder der Browser des Benutzers aufweist, z. B. Bildschirmgröße, Ausrichtung und Auflösung. Dadurch kann die Darstellung einer Webseite auf unterschiedlichen Geräten optimiert werden.

Grundkonzepte

Aufbau einer Media Query

Eine Media Query besteht aus einem Medientyp und optionalen Medieneigenschaften oder Bedingungen. Der Medientyp spezifiziert, auf welche Art von Gerät die Query abzielt (z. B. screen für Bildschirme oder print für Drucker). Die Bedingungen, wie etwa min-width, ermöglichen die gezielte Ansprache spezifischer Geräteeigenschaften.

Beispiel einer einfachen Media Query:

@media (min-width: 768px) {
    /* CSS-Regeln für Bildschirme mit einer Breite von mindestens 768px */
    .container {
        max-width: 80%;
    }
}

In diesem Beispiel werden die angegebenen CSS-Regeln nur dann angewendet, wenn die Bildschirmbreite mindestens 768 Pixel beträgt.

Medientypen

Die häufigsten Medientypen sind:

  • screen: Für Bildschirme (Desktop, Tablet, Smartphone).
  • print: Für die Druckansicht.
  • speech: Für sprachbasierte Ausgabegeräte.

Media Features und Operatoren

Media Features legen die Bedingungen fest, die erfüllt sein müssen, damit die Media Query angewendet wird. Häufig verwendete Features sind:

  • width und height: Definieren die Breite und Höhe des Ansichtsfensters.
  • orientation: Legt die Ausrichtung fest (portrait oder landscape).
  • resolution: Bestimmt die Bildschirmauflösung.

Operatoren wie and, or und not können verwendet werden, um komplexere Bedingungen zu erstellen.

Beispiel einer kombinierten Media Query:

@media screen and (min-width: 768px) and (orientation: landscape) {
    /* Regeln für Bildschirme, mindestens 768px Breite und Querformat */
    .sidebar {
        display: block;
    }
}

Fortgeschrittene Konzepte

Responsive Breakpoints

Breakpoints sind spezifische Breiten, bei denen das Layout angepasst wird, um das Design für verschiedene Bildschirmgrößen zu optimieren. Übliche Breakpoints für responsive Designs sind:

  • Kleinere Smartphones: bis 576px
  • Tablets: 768px bis 992px
  • Laptops/Desktops: ab 1200px

Beispiel für mehrere Breakpoints:

/* Für Mobilgeräte */
@media (max-width: 576px) {
    .menu {
        display: none;
    }
}

/* Für Tablets */
@media (min-width: 768px) and (max-width: 991px) {
    .menu {
        display: block;
        font-size: 1.2em;
    }
}

/* Für größere Bildschirme */
@media (min-width: 1200px) {
    .menu {
        font-size: 1.5em;
    }
}

Einsatz von Media Queries in Flexbox und Grid Layouts

Media Queries sind besonders nützlich, um Flexbox- und Grid-Layouts an unterschiedliche Bildschirmgrößen anzupassen.

Beispiel mit Grid:

.container {
    display: grid;
    grid-template-columns: 1fr;
}

@media (min-width: 768px) {
    .container {
        grid-template-columns: 1fr 1fr;
    }
}

@media (min-width: 1024px) {
    .container {
        grid-template-columns: 1fr 1fr 1fr;
    }
}

In diesem Beispiel passt sich die Anzahl der Spalten der Bildschirmbreite an.

Dark Mode mit Media Queries

Die Unterstützung für das Media Feature prefers-color-scheme ermöglicht die Implementierung eines Dark Mode.

@media (prefers-color-scheme: dark) {
    body {
        background-color: #333;
        color: #fff;
    }
}

Dieses Media Feature wendet die dunklen Farben an, wenn das Gerät des Benutzers den Dark Mode aktiviert hat.

Best Practices

  • Planen Sie Breakpoints strategisch: Basieren Sie Breakpoints auf dem Design und den Inhalten, nicht nur auf Gerätegrößen.
  • Verwenden Sie relative Einheiten: Einheiten wie em und % sind oft flexibler und anpassungsfähiger als feste Pixelgrößen.
  • Testen Sie das Layout: Prüfen Sie das Design auf verschiedenen Geräten, um sicherzustellen, dass es wie gewünscht angezeigt wird.
  • Minimieren Sie die Anzahl der Media Queries: Setzen Sie nur so viele Media Queries wie nötig ein, um die Codewartbarkeit zu verbessern.

Häufig gestellte Fragen

Welche Gerätegrößen sollten für Media Queries berücksichtigt werden?

Typische Breakpoints umfassen Bereiche für Mobilgeräte, Tablets und Desktops. Die Wahl der Breakpoints hängt jedoch vom Layout und den Inhalten der Webseite ab.

Warum funktionieren Media Queries manchmal nicht wie erwartet?

Mögliche Ursachen sind Caching, falsche Reihenfolge der Media Queries oder ein nicht unterstütztes Feature. Überprüfen Sie, ob alle Bedingungen korrekt sind.

Kann ich Media Queries in JavaScript verwenden?

Ja, JavaScript bietet das window.matchMedia()-Objekt, um Media Queries zu überwachen und darauf zu reagieren.

Zusammenfassung

Media Queries sind ein essenzielles Werkzeug für responsive Webdesigns. Sie ermöglichen die Anpassung von Layouts an unterschiedliche Bildschirmgrößen, Orientierungen und Nutzerpräferenzen und bieten so ein optimiertes Nutzererlebnis auf allen Geräten.

Übungsaufgaben

  1. Erstellen Sie eine Webseite, die auf Bildschirmen unter 600px Breite den Text ausblendet und bei größeren Bildschirmen anzeigt.
  2. Verwenden Sie Media Queries, um ein Flexbox-Layout an verschiedene Bildschirmbreiten anzupassen und das Layout bei größeren Bildschirmen zu ändern.

Handlungsempfehlungen

Verwenden Sie Media Queries gezielt und passen Sie sie an die Bedürfnisse Ihres Designs und Ihrer Benutzer an, um so ein flexibles und optimiertes Layout für verschiedene Bildschirmgrößen bereitzustellen.