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 Hintergrundbildes 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 Eigenschaft background-color
gefüllt, und die Hintergrundfarbe wird hinter den transparenten/halbtransparenten Hintergrundbildern sichtbar sein.
Syntax
/* 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 Weisen angegeben:
- Verwendung der Schlüsselwortwerte
contain
odercover
. - Verwendung nur eines Breitenwerts, wobei die Höhe standardmäßig auf
auto
eingestellt ist. - Verwendung sowohl eines Breiten- als auch eines Höhenwertes, wobei der erste die Breite und der zweite die Höhe festlegt.
Jeder Wert kann ein
<length>
, ein<percentage>
, oderauto
sein.
Um die Größe mehrerer Hintergrundbilder anzugeben, trennen Sie den Wert für jedes Bild mit einem 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 Kachelbildung des Bildes, es sei denn, die Eigenschaft
background-repeat
ist aufno-repeat
eingestellt. cover
-
Skaliert das Bild (unter Beibehaltung seines Verhältnisses) auf die kleinste mögliche Größe, um den Container vollständig auszufüllen (d.h.: sowohl Höhe als auch Breite decken den Container komplett ab), sodass kein leerer Raum bleibt. Wenn die Proportionen des Hintergrunds von denen des Elements abweichen, wird das Bild entweder vertikal oder horizontal beschnitten.
auto
-
Skaliert das Hintergrundbild in die entsprechende Richtung, sodass seine intrinsischen Proportionen beibehalten werden.
<length>
-
Streckt das Bild in der entsprechenden Dimension auf die angegebene Länge. Negative Werte sind nicht erlaubt.
<percentage>
-
Streckt das Bild in der entsprechenden Dimension auf den angegebenen Prozentsatz des Hintergrundpositionierungsbereichs. Der Hintergrundpositionierungsbereich wird durch den Wert von
background-origin
bestimmt (standardmäßig die Polsterungsebene). Wenn jedoch derbackground-attachment
-Wert des Hintergrundsfixed
ist, ist der Positionierungsbereich stattdessen das 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 (Breite-zu-Höhe-Verhältnis) des Bildes ab. Diese Attribute sind wie folgt:
- Ein Bitmap-Bild (wie JPG) hat immer intrinsische Dimensionen und Proportionen.
- Ein Vektorbilder (wie SVG) haben nicht unbedingt 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 intrinsischen Proportionen. - Hintergrundbilder, die mit der
element()
-Funktion erstellt wurden, verwenden die intrinsischen Dimensionen und Proportionen des erzeugenden Elements.
Hinweis:
In Gecko werden Hintergrundbilder, die mithilfe der element()
Funktion erstellt wurden, derzeit als Bilder mit den Dimensionen des Elements behandelt, oder des Hintergrundpositionierungsbereichs, wenn das Element ein SVG ist, mit der entsprechenden intrinsischen Proportion. Dies ist ein nicht standardmäßiges Verhalten.
Basierend auf den intrinsischen Dimensionen und Proportionen wird die darstellbare Größe des Hintergrundbildes wie folgt berechnet:
-
Wenn beide Komponenten von
background-size
angegeben und nichtauto
sind: Das Hintergrundbild wird in der angegebenen Größe dargestellt. -
Wenn die
background-size
contain
odercover
ist: Unter Beibehaltung ihrer intrinsischen Proportionen wird das Bild in maximaler Größe innerhalb oder als Abdeckung des Hintergrundpositionierungsbereichs dargestellt. Wenn das Bild keine intrinsischen Proportionen hat, wird es in der Größe des Hintergrundpositionierungsbereichs dargestellt. -
Wenn die
background-size
auto
oderauto auto
ist:- Wenn das Bild sowohl horizontale als auch vertikale intrinsische Dimensionen hat, wird es in dieser Größe dargestellt.
- Wenn das Bild keine intrinsischen Dimensionen und keine intrinsischen Proportionen hat, wird es in der Größe des Hintergrundpositionierungsbereichs dargestellt.
- Wenn das Bild keine intrinsischen Dimensionen hat, aber intrinsische Proportionen, wird es so dargestellt, als ob
contain
angegeben wurde. - Wenn das Bild nur eine intrinsische Dimension und intrinsische Proportionen hat, wird es in der Größe dargestellt, die der 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 mit der angegebenen Dimension dargestellt, und die andere Dimension des Hintergrundpositionierungsbereichs wird verwendet.
Hinweis: SVG-Bilder haben ein Attribut
preserveAspectRatio
, das standardmäßig dem Äquivalent voncontain
entspricht; eine explizitebackground-size
-Angabe führt dazu, dasspreserveAspectRatio
ignoriert wird. -
Wenn die
background-size
eineauto
-Komponente und eine nicht-auto
-Komponente hat:- Wenn das Bild intrinsische Proportionen hat, wird es auf die angegebene Dimension gestreckt. Die nicht spezifizierte 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 spezifizierte Dimension wird unter Verwendung der entsprechenden intrinsischen Dimension des Bildes berechnet, falls vorhanden. Wenn keine solche intrinsische Dimension vorhanden ist, wird die entsprechende Dimension des Hintergrundpositionierungsbereichs verwendet.
Hinweis: Die Hintergrundgrößenanpassung für Vektorbilder, denen intrinsische Dimensionen oder Proportionen fehlen, ist in allen Browsern noch nicht vollständig implementiert. Seien Sie vorsichtig, wenn Sie sich auf das oben beschriebene Verhalten verlassen, und testen Sie in mehreren Browsern, um sicherzustellen, dass die Ergebnisse akzeptabel sind.
Formale Definition
Anfangswert | auto auto |
---|---|
Anwendbar auf | alle Elemente. Auch anwendbar auf ::first-letter und ::first-line . |
Vererbt | Nein |
Prozentwerte | bezieht sich auf den jeweiligen Bereich |
Berechneter Wert | relativ zur gleichen Achse der Innenabstandsbox des Scrollcontainers |
Animationstyp | a repeatable list |
Formale Syntax
Beispiele
Kacheln eines großen Bildes
Betrachten wir ein großes Bild, ein 2982x2808 Firefox-Logo. Wir möchten vier Kopien dieses Bildes in ein 300x300-Pixel großes Element kacheln.
Dazu können wir einen festen background-size
-Wert von 150 Pixeln verwenden.
HTML
<div class="tiledBackground"></div>
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 Hintergrundbilder in der Größe anpassen für weitere Beispiele.
Spezifikationen
Specification |
---|
CSS Backgrounds and Borders Module Level 3 # the-background-size |
Browser-Kompatibilität
BCD tables only load in the browser