Hintergrund
Baseline
Weitgehend verfügbar
Diese Funktion ist gut etabliert und funktioniert auf vielen Geräten und in vielen Browserversionen. Sie ist seit Juli 2015 browserübergreifend verfügbar.
Die background-Kurzschreibweise CSS-Eigenschaft setzt alle Hintergrundstil-Eigenschaften auf einmal, wie Farbe, Bild, Ursprung, Größe und Wiederholungsmethode.
Probieren Sie es aus
background: green;
background: content-box radial-gradient(crimson, skyblue);
background: no-repeat url("/shared-assets/images/examples/lizard.png");
background: left 5% / 15% 60% repeat-x
url("/shared-assets/images/examples/star.png");
background:
center / contain no-repeat
url("/shared-assets/images/examples/firefox-logo.svg"),
#eeeeee 35% url("/shared-assets/images/examples/lizard.png");
<section id="default-example">
<div id="example-element"></div>
</section>
#example-element {
min-width: 100%;
min-height: 100%;
padding: 10%;
}
Zusammengesetzte Eigenschaften
Diese Eigenschaft ist eine Kurzschreibweise für die folgenden CSS-Eigenschaften:
Syntax
/* Using a <background-color> */
background: green;
/* Using a <bg-image> and <repeat-style> */
background: url("test.jpg") repeat-y;
/* Using a <visual-box> and <'background-color'> */
background: border-box red;
/* A single image, centered and scaled */
background: no-repeat center/80% url("../img/image.png");
/* Global values */
background: inherit;
background: initial;
background: revert;
background: revert-layer;
background: unset;
Werte
<attachment>-
Siehe
background-attachment. Standard:scroll. <visual-box>-
Siehe
background-clipundbackground-origin. Standard:border-boxundpadding-boxbzw. <'background-color'>-
Siehe
background-color. Standard:transparent. <bg-image>-
Siehe
background-image. Standard:none. <bg-position>-
Siehe
background-position. Standard:0% 0%. <repeat-style>-
Siehe
background-repeat. Standard:repeat. <bg-size>-
Siehe
background-size. Standard:auto.
Beschreibung
Die background-Kurzschreibweise ermöglicht es Ihnen, alle CSS-Hintergrund-Eigenschaften in einer einzigen Deklaration festzulegen. Der Hintergrund liegt unter dem Inhalt eines Elements. Wenn Sie mehrere, durch Kommas getrennte Hintergrundwerte haben, ist jeder davon eine Hintergrundebene, die über den vorherigen Schichten gemalt wird.
Die background-Eigenschaft wird als eine oder mehrere Hintergrundschichten angegeben, die durch Kommas getrennt sind. Jede Schicht kann null, ein oder zwei <visual-box>-Komponenten und null oder eine <attachment>, <bg-image>, <bg-position>, <bg-size> und <repeat-style>-Komponente enthalten. Werden zwei <bg-position>, <bg-size> oder <repeat-style>-Komponenten angegeben, ist der erste Wert der horizontale Wert und der zweite Wert der vertikale Wert. Wenn nur ein einzelner Wert gesetzt ist, wird dieser Wert auf beide Dimensionen angewendet.
Die <'background-color'>-Komponente darf nur in der letzten angegebenen Hintergrundschicht eingeschlossen sein.
Nicht gesetzte Komponenten-Eigenschaften in der background-Kurzschreibweise werden auf ihre Standardwerte gesetzt.
Reihenfolge der Komponenten-Eigenschaften
Da einige der Komponenten-Eigenschaften gemeinsame Wertetypen haben, ist die Reihenfolge dieser Komponenten-Eigenschaften innerhalb der Kurzschreibweise wichtig.
Der <bg-size>-Wert darf nur direkt nach <bg-position> einschließlich des /-Zeichens enthalten sein. Zum Beispiel: 10px 10px / 80% 80% bedeutet, dass das Hintergrundbild 80% so hoch und breit wie das Element ist und 10px von oben und 10px von links von der oberen linken Ecke des Elements positioniert wird. Innerhalb der <bg-position>, wenn beide Werte Längen sind oder einer eine Länge und der andere center ist, bezieht sich der erste Wert auf die horizontale Position und der zweite Wert auf die vertikale Position.
Jede Hintergrundschicht kann null, ein oder zwei <visual-box>-Werte enthalten. Wenn nur ein Wert enthalten ist, legt dieser sowohl background-origin als auch background-clip fest. Wenn zwei Werte vorhanden sind, gibt das erste Vorkommen den background-origin und das zweite den background-clip-Wert an. Wenn keine <visual-box>-Werte vorhanden sind, ist der Standard für background-origin padding-box und für background-clip border-box.
Zwar gibt es keine Reihenfolgenanforderung für die anderen Hintergrund-Eigenschaften, aber die folgende Reihenfolge wird zur Konsistenz und Lesbarkeit empfohlen; denken Sie daran, dass keiner der Werte erforderlich ist:
<bg-image> <bg-position> / <bg-size> <repeat-style> <attachment> <bg-clip> <bg-origin> <'background-color'>
Der folgende background setzt alle Standardwerte in dieser Reihenfolge explizit:
background: none 0% 0% / auto auto repeat scroll border-box padding-box
transparent;
Die folgenden drei Zeilen CSS sind äquivalent zu dem oben genannten, auch wenn sich die Reihenfolge unterscheidet:
background: none;
background: transparent;
background: repeat scroll 0% 0% / auto padding-box border-box none transparent;
Reihenfolge der Bildmalerei
Wenn mehrere durch Kommas getrennte Hintergründe enthalten sind, erzeugen sie mehrere Hintergrundschichten übereinander. Der erste Hintergrund in der Liste erzeugt die oberste Schicht. Wenn die oberste Schicht keine transparenten Bereiche enthält, ist dies die einzige sichtbare Schicht.
Die letzte Schicht ist die unterste Schicht. Die Hintergrundfarbe ist immer in dieser Schicht enthalten.
Anwendung des Body-Hintergrunds auf das gesamte Dokument
Wenn der berechnete background-image-Wert des Dokument-<html> :root-Elements none ist und seine background-color transparent ist, überträgt der Browser die auf das <body>-Element gesetzten background-Stile auf das :root und behandelt den <body>, als ob background: initial gesetzt wäre. Mit anderen Worten, das <html>-Element erhält alle auf das <body>-Element gesetzten background-Stile und die Hintergrund-Eigenschaften des <body>-Elements werden auf ihre Anfangswerte gesetzt.
Aufgrund dieses Verhaltens empfehlen die Autoren der Spezifikation, die Hintergrundstile Ihres Dokuments in Ihrem body-Stilblock anstelle Ihres html-Stilblocks festzulegen. Es ist jedoch wichtig zu beachten, dass durch die Verwendung von Containment dieses Verhalten deaktiviert wird. Wenn die contain-Eigenschaft auf etwas anderes als none auf entweder dem <html>- oder <body>-Element gesetzt ist, wird die background-Eigenschaft und alle Langform-Komponenten nicht vom <body>-Element auf das Root-<html>-Element übertragen.
Formale Definition
| Anfangswert | wie die jeweiligen Kurzschreibweisen:
|
|---|---|
| Anwendbar auf | alle Elemente. Auch anwendbar auf ::first-letter und ::first-line. |
| Vererbt | Nein |
| Prozentwerte | wie die jeweiligen Kurzschreibweisen:
|
| Berechneter Wert | wie die jeweiligen Kurzschreibweisen:
|
| Animationstyp | wie die jeweiligen Kurzschreibweisen:
|
Formale Syntax
background =
<bg-layer>#? , <final-bg-layer>
<bg-layer> =
<bg-image> ||
<bg-position> [ / <bg-size> ]? ||
<repeat-style> ||
<attachment> ||
<bg-clip> ||
<visual-box>
<final-bg-layer> =
<bg-image> ||
<bg-position> [ / <bg-size> ]? ||
<repeat-style> ||
<attachment> ||
<bg-clip> ||
<visual-box> ||
<'background-color'>
<bg-image> =
<image> |
none
<bg-position> =
<position> |
<position-three>
<bg-size> =
[ <length-percentage [0,∞]> | auto ]{1,2} |
cover |
contain
<repeat-style> =
repeat-x |
repeat-y |
repeat-block |
repeat-inline |
<repetition>{1,2}
<attachment> =
scroll |
fixed |
local
<bg-clip> =
<visual-box> |
[ border-area || text ]
<visual-box> =
content-box |
padding-box |
border-box
<background-color> =
<color>
<image> =
<url> |
<image()> |
<image-set()> |
<cross-fade()> |
<element()> |
<gradient>
<position> =
<position-one> |
<position-two> |
<position-four>
<position-three> =
[ left | center | right ] && [ [ top | bottom ] <length-percentage> ] |
[ [ left | right ] <length-percentage> ] && [ top | center | bottom ]
<length-percentage> =
<length> |
<percentage>
<repetition> =
repeat |
space |
round |
no-repeat
<image()> =
image( <image-tags>? [ <image-src>? , <color>? ]! )
<image-set()> =
image-set( <image-set-option># )
<cross-fade()> =
cross-fade( <cf-image># )
<element()> =
element( <id-selector> )
<position-one> =
left |
center |
right |
top |
bottom |
x-start |
x-end |
y-start |
y-end |
block-start |
block-end |
inline-start |
inline-end |
<length-percentage>
<position-two> =
[ left | center | right | x-start | x-end ] && [ top | center | bottom | y-start | y-end ] |
[ left | center | right | x-start | x-end | <length-percentage> ] [ top | center | bottom | y-start | y-end | <length-percentage> ] |
[ block-start | center | block-end ] && [ inline-start | center | inline-end ] |
[ start | center | end ]{2}
<position-four> =
[ [ left | right | x-start | x-end ] <length-percentage> ] && [ [ top | bottom | y-start | y-end ] <length-percentage> ] |
[ [ block-start | block-end ] <length-percentage> ] && [ [ inline-start | inline-end ] <length-percentage> ] |
[ [ start | end ] <length-percentage> ]{2}
<image-tags> =
ltr |
rtl
<image-src> =
<url> |
<string>
<image-set-option> =
[ <image> | <string> ] [ <resolution> || type( <string> ) ]?
<cf-image> =
[ <image> | <color> ] &&
<percentage [0,100]>?
<id-selector> =
<hash-token>
Barrierefreiheit
Browser bieten keine speziellen Informationen zu Hintergrundbildern für unterstützende Technologie. Dies ist hauptsächlich für Screenreader wichtig, da ein Screenreader seine Anwesenheit nicht ankündigen und daher den Benutzern nichts vermittelt. Wenn das Bild Informationen enthält, die für das Verständnis des Gesamtzwecks der Seite entscheidend sind, ist es besser, es semantisch im Dokument zu beschreiben.
Beispiele
>Hintergründe mit Farbbegriffen und Bildern einstellen
HTML
<p class="top-banner">
Starry sky<br />
Twinkle twinkle<br />
Starry sky
</p>
<p class="warning">Here is a paragraph</p>
<p></p>
CSS
.warning {
background: pink;
}
.top-banner {
background: url("star-solid.gif") #9999ff repeat-y fixed;
}
Ergebnis
Spezifikationen
| Spezifikation |
|---|
| CSS Backgrounds and Borders Module Level 3> # background> |