Zum Inhalt springen

CSS @media-Regel

Die @media-At-Regel definiert eine Reihe von Stilen, die nur für bestimmte Medientypen gelten.

Media Queries sind eine beliebte Technik, um responsives Webdesign auf Desktop-Computern, Laptops, Tablets und Mobiltelefonen bereitzustellen.

Neben Medientypen gibt es Media Features (Medieneigenschaften), die Namen haben und bestimmte Werte wie CSS-Eigenschaften annehmen. Sie werden jedoch verwendet, um Bedingungen innerhalb von Media Queries zu testen, anstatt Elemente direkt zu stylen.

Media Queries werden verwendet, um Folgendes zu prüfen:

  • Breite und Höhe des Viewports
  • Ausrichtung
  • Auflösung

In JavaScript repräsentiert die CSSMediaRule-Schnittstelle eine einzelne @media-Regel und kann verwendet werden, um mit @media erstellte Regeln abzurufen.

Syntax

CSS @media

css
@media <media-query> {
  /* styles */
}

Media Queries können mehrere Bedingungen mit logischen Operatoren kombinieren: and, not, only sowie ein Komma (,).

Beispiel für die @media-Regel:

CSS @media-Codebeispiel

html
<!DOCTYPE html>
<html>
  <head>
    <title>Title of the document</title>
    <style>
      body {
        background-color: #1c87c9;
      }
      @media screen and (max-width: 411px) {
        body {
          background-color: #cce5ff;
        }
      }
      @media screen and (min-width: 768px) {
        body {
          background-color: #eee;
        }
      }
      @media screen and (max-width: 962px) and (min-width: 450px),
      (min-width: 1366px) {
        body {
          background-color: #333;
        }
      }
    </style>
  </head>
  <body>
    <h2>@media rule example</h2>
    <p>Resize the browser to see the effect.</p>
    <p>The background color changes based on the viewport width: light blue for screens up to 411px, light gray for 768px and wider, and dark gray for screens between 450px and 962px, or 1366px and wider.</p>
  </body>
</html>

Ergebnis

CSS @media multiple queries

Im folgenden Beispiel ändert sich das Erscheinungsbild von <div>, wenn die Browserbreite zwischen 500 und 800 px oder über 1000 px liegt. Passen Sie die Browserfenstergröße an, um den Effekt zu sehen.

Beispiel für die @media-Regel mit geändertem Erscheinungsbild von <div>:

CSS @media-Multiple-Queries-Beispiel

html
<!DOCTYPE html>
<html>
  <head>
    <title>Title of the document</title>
    <style>
      body {
        background-color: #1c87c9;
      }
      @media screen and (min-width: 200px) {
        body {
          background-color: #8ebf42;
        }
      }
      @media screen and (min-width: 600px) {
        body {
          background-color: #ccc;
        }
      }
      @media screen and (max-width: 800px) and (min-width: 500px),
      (min-width: 1000px) {
        div.box {
          font-size: 50px;
          padding: 50px;
          border: 8px solid #000;
          background: #eee;
        }
      }
    </style>
  </head>
  <body>
    <h2>@media rule example</h2>
    <p>Media queries set the background-color to grey if the viewport is 600 pixels wide or wider, to green if the viewport is between 200 and 599 pixels wide. If the viewport is smaller than 200 pixels, the background-color is blue.</p>
    <h3>Change the appearance of DIV on different screen sizes</h3>
    <div class="box">DIV</div>
  </body>
</html>

Media-Features

WertBeschreibung
widthDie Breite des Viewports.
heightDie Höhe des Viewports.
orientationDie Ausrichtung des Viewports.
aspect-ratioDas Verhältnis des Werts der Media-Feature „width“ zum Wert der Media-Feature „height“.
gridPrüft, ob das Ausgabegerät raster- oder bitmapbasiert ist.
colorDie Anzahl der Bits pro Farbkomponente des Ausgabegeräts. Wenn das Gerät kein Farbgerät ist, beträgt der Wert 0.
color-gamutDer ungefähre Farbumfang, der vom User-Agent und dem Ausgabegerät unterstützt wird.
inverted-colorsPrüft, ob der Browser oder das zugrunde liegende Betriebssystem Farben invertiert oder nicht.
hoverPrüft, ob das primäre Eingabemedium dem Benutzer ermöglicht, über Elemente zu fahren (Hover).
any-hoverPrüft, ob das verfügbare Eingabemedium dem Benutzer ermöglicht, über Elemente zu fahren (Hover).
any-pointerPrüft, ob das verfügbare Eingabemedium ein Zeigegerät ist oder nicht.
light-levelDie Lichtverhältnisse in der Umgebung.
max-aspect-ratioDas maximale Verhältnis zwischen Breite und Höhe des Anzeigebereichs.
max-colorDie maximale Anzahl der Bits pro Farbkomponente für das Ausgabegerät.
max-heightDie maximale Höhe des Anzeigebereichs.
max-monochromeDie maximale Anzahl der Bits pro Farbe auf einem Monochromgerät.
max-resolutionDie maximale Auflösung des Geräts.
max-widthDie maximale Breite des Anzeigebereichs.
min-aspect-ratioDas minimale Verhältnis zwischen Breite und Höhe des Anzeigebereichs.
min-colorDie minimale Anzahl der Bits pro Farbkomponente für das Ausgabegerät.
min-heightDie minimale Höhe des Anzeigebereichs.
min-monochromeDie minimale Anzahl der Bits pro Farbe auf einem Monochromgerät.
min-resolutionDie minimale Auflösung des Geräts.
min-widthDie minimale Breite des Anzeigebereichs.
overflow-blockPrüft, wie das Ausgabegerät mit Inhalten umgeht, die den Viewport entlang der Blockachse überlaufen.
overflow-inlinePrüft, ob der Inhalt, der den Viewport entlang der Inline-Achse überläuft, gescrollt werden kann oder nicht.
pointerPrüft, ob das primäre Eingabemedium ein Zeigegerät ist oder nicht.
resolutionBeschreibt die Auflösung des Ausgabegeräts.
scriptingPrüft, ob Skripterstellung verfügbar ist oder nicht.
updatePrüft, wie schnell das Ausgabegerät das Erscheinungsbild des Inhalts ändern kann.

Praxis

Welche Funktionen haben Media Queries in CSS?

Finden Sie das nützlich?

Dual-run-Vorschau — vergleichen Sie mit den Symfony-Routen live.