background-size

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.

Die background-size CSS Eigenschaft legt die Größe des Hintergrundbilds eines Elements fest. Das Bild kann in seiner natürlichen Größe belassen, gestreckt oder so angepasst werden, dass es in den verfügbaren Raum passt.

Probieren Sie es aus

background-size: contain;
background-size: contain;
background-repeat: no-repeat;
background-size: cover;
background-size: 30%;
background-size: 200px 100px;
<section id="default-example">
  <div class="transition-all" id="example-element"></div>
</section>
#example-element {
  background-image: url("/shared-assets/images/examples/hand.jpg");
  min-width: 100%;
  min-height: 100%;
}

Bereiche, die nicht von einem Hintergrundbild abgedeckt sind, werden mit der background-color Eigenschaft gefüllt. Die Hintergrundfarbe ist hinter Hintergrundbildern sichtbar, die Transparenz/Transluzenz aufweisen.

Syntax

css
/* Keyword values */
background-size: cover;
background-size: contain;

/* One-value syntax */
/* the width of the image (height becomes 'auto') */
background-size: 50%;
background-size: 3.2em;
background-size: 12px;
background-size: auto;

/* Two-value syntax */
/* first value: width of the image, second value: height */
background-size: 50% auto;
background-size: 3em 25%;
background-size: auto 6px;
background-size: auto auto;

/* Multiple backgrounds */
background-size: auto, auto; /* Not to be confused with `auto auto` */
background-size: 50%, 25%, 25%;
background-size: 6px, auto, contain;

/* Global values */
background-size: inherit;
background-size: initial;
background-size: revert;
background-size: revert-layer;
background-size: unset;

Die background-size Eigenschaft wird auf eine der folgenden Arten angegeben:

  • Mit den Schlüsselwortwerten contain oder cover.
  • Mit nur einem Breitenwert, wobei die Höhe standardmäßig auf auto gesetzt ist.
  • Mit sowohl Breiten- als auch Höhenwerten, wobei der erste die Breite und der zweite die Höhe festlegt. Jeder Wert kann ein <length>, ein <percentage> oder auto sein.

Um die Größe mehrerer Hintergrundbilder anzugeben, trennen Sie die Werte für jedes durch ein Komma.

Werte

contain

Skaliert das Bild so groß wie möglich innerhalb seines Containers, ohne das Bild zu beschneiden oder zu strecken. Wenn der Container größer als das Bild ist, führt dies zu einer Wiederholung des Bildes, es sei denn, die background-repeat Eigenschaft ist auf no-repeat gesetzt.

cover

Skaliert das Bild (unter Beibehaltung des Verhältnisses) auf die kleinste mögliche Größe, um den Container vollständig zu füllen (d.h.: sowohl seine Höhe als auch Breite decken den Container vollständig ab), ohne leeren Raum zu lassen. Wenn die Proportionen des Hintergrunds vom Element abweichen, wird das Bild entweder vertikal oder horizontal beschnitten.

auto

Skaliert das Hintergrundbild in der entsprechenden Richtung so, dass seine intrinsischen Proportionen beibehalten werden.

<length>

Dehnt das Bild in der entsprechenden Dimension auf die angegebene Länge aus. Negative Werte sind nicht erlaubt.

<percentage>

Dehnt das Bild in der entsprechenden Dimension auf den angegebenen Prozentsatz des Hintergrundpositionierungsareals aus. Das Hintergrundpositionierungsareal wird durch den Wert von background-origin bestimmt (standardmäßig die Padding-Box). Wenn jedoch der Wert von background-attachment des Hintergrunds fixed ist, ist das Positionierungsareal statt dessen der gesamte viewport. Negative Werte sind nicht erlaubt.

Intrinsische Dimensionen und Proportionen

Die Berechnung der Werte hängt von den intrinsischen Dimensionen (Breite und Höhe) und den intrinsischen Proportionen (Breiten-Höhen-Verhältnis) des Bildes ab. Diese Attribute sind wie folgt:

  • Ein Bitmap-Bild (z.B. JPG) hat immer intrinsische Dimensionen und Proportionen.
  • Ein Vektorbeschlagsbild (z.B. SVG) hat nicht zwangsläufig intrinsische Dimensionen. Wenn es sowohl horizontale als auch vertikale intrinsische Dimensionen hat, hat es auch intrinsische Proportionen. Wenn es keine Dimensionen oder nur eine Dimension hat, kann es Proportionen haben oder nicht.
  • CSS <gradient>s haben keine intrinsischen Dimensionen oder Proportionen.
  • Hintergrundbilder, die mit der element() Funktion erstellt werden, verwenden die intrinsischen Dimensionen und Proportionen des erzeugenden Elements.

Hinweis: In Gecko werden Hintergrundbilder, die mit der element() Funktion erstellt werden, derzeit als Bilder mit den Dimensionen des Elements oder des Hintergrundpositionierungsareals behandelt, wenn das Element SVG ist, mit der entsprechenden intrinsischen Proportion. Dies ist ein nicht-standardskonformes Verhalten.

Basierend auf den intrinsischen Dimensionen und Proportionen wird die gerenderte Größe des Hintergrundbildes wie folgt berechnet:

  • Wenn beide Komponenten von background-size angegeben sind und nicht auto: Das Hintergrundbild wird in der angegebenen Größe gerendert.

  • Wenn background-size contain oder cover: Unter Beibehaltung seiner intrinsischen Proportionen wird das Bild in der größten Größe gerendert, die innerhalb des Hintergrundpositionierungsareals enthalten oder es bedeckend ist. Wenn das Bild keine intrinsischen Proportionen hat, wird es in der Größe des Hintergrundpositionierungsareals gerendert.

  • Wenn background-size auto oder auto auto:

    • Wenn das Bild sowohl horizontale als auch vertikale intrinsische Dimensionen hat, wird es in dieser Größe gerendert.
    • Wenn das Bild keine intrinsischen Dimensionen und keine intrinsischen Proportionen hat, wird es in der Größe des Hintergrundpositionierungsareals gerendert.
    • Wenn das Bild keine intrinsischen Dimensionen, aber intrinsische Proportionen hat, wird es gerendert, als ob contain angegeben wäre.
    • Wenn das Bild nur eine intrinsische Dimension und intrinsische Proportionen hat, wird es in der Größe gerendert, die dieser einen Dimension entspricht. Die andere Dimension wird unter Verwendung der angegebenen Dimension und der intrinsischen Proportionen berechnet.
    • Wenn das Bild nur eine intrinsische Dimension, aber keine intrinsischen Proportionen hat, wird es unter Verwendung der angegebenen Dimension und der anderen Dimension des Hintergrundpositionierungsareals gerendert.

    Hinweis: SVG-Bilder haben ein Attribut preserveAspectRatio, das standardmäßig dem Äquivalent von contain entspricht; ein explizites background-size bewirkt, dass preserveAspectRatio ignoriert wird.

  • Wenn background-size eine auto Komponente und eine nicht-auto Komponente hat:

    • Wenn das Bild intrinsische Proportionen hat, wird es auf die angegebene Dimension gestreckt. Die nicht angegebene Dimension wird unter Verwendung der angegebenen Dimension und der intrinsischen Proportionen berechnet.
    • Wenn das Bild keine intrinsischen Proportionen hat, wird es auf die angegebene Dimension gestreckt. Die nicht angegebene Dimension wird unter Verwendung der entsprechenden intrinsischen Dimension des Bildes berechnet, falls vorhanden. Wenn keine solche intrinsische Dimension existiert, wird sie zur entsprechenden Dimension des Hintergrundpositionierungsbereichs.

Hinweis: Die Größendarstellung für Vektorbilder, die keine intrinsischen Dimensionen oder Proportionen haben, ist in allen Browsern noch nicht vollständig implementiert. Seien Sie vorsichtig, sich auf das oben beschriebene Verhalten zu verlassen, und testen Sie in mehreren Browsern, um sicherzustellen, dass die Ergebnisse akzeptabel sind.

Formale Definition

Anfangswertauto auto
Anwendbar aufalle Elemente. Auch anwendbar auf ::first-letter und ::first-line.
VererbtNein
Prozentwertebezieht sich auf den jeweiligen Bereich
Berechneter Wertrelativ zur gleichen Achse der Innenabstandsbox des Scrollcontainers
Animationstypa repeatable list

Formale Syntax

background-size = 
<bg-size>#

<bg-size> =
[ <length-percentage [0,∞]> | auto ]{1,2} |
cover |
contain

<length-percentage> =
<length> |
<percentage>

Beispiele

Kacheln eines großen Bildes

Betrachten wir ein großes Bild, ein 2982x2808 Firefox-Logo. Wir möchten vier Kopien dieses Bildes in einem 300x300-Pixel-Element kacheln. Dazu können wir einen festen background-size Wert von 150 Pixeln verwenden.

HTML

html
<div class="tiledBackground"></div>

CSS

css
.tiledBackground {
  background-image: url(https://www.mozilla.org/media/img/logos/firefox/logo-quantum.9c5e96634f92.png);
  background-size: 150px;
  width: 300px;
  height: 300px;
  border: 2px solid;
  color: pink;
}

Ergebnis

Siehe Größenanpassung von Hintergrundbildern für weitere Beispiele.

Spezifikationen

Specification
CSS Backgrounds and Borders Module Level 3
# the-background-size

Browser-Kompatibilität

Siehe auch