DigitalOcean bietet Cloud-Produkte für jede Phase Ihrer Reise. Starten Sie mit 200 $ kostenlosem Guthaben!
Die CSS-Eigenschaft background-position ermöglicht es Ihnen, ein Hintergrundbild (oder einen Farbverlauf) innerhalb seines Containers zu verschieben.
html {
background-position: 100px 5px;
}
Es gibt drei verschiedene Arten von Werten
- Längenwerte (z. B.
100px 5px) - Prozentwerte (z. B.
100% 5%) - Schlüsselwörter (z. B.
top right)
Die Standardwerte sind 0 0. Dies platziert Ihr Hintergrundbild oben links im Container.
Längenwerte sind ziemlich einfach: Der erste Wert ist die horizontale Position, der zweite Wert ist die vertikale Position. Also verschiebt 100px 5px das Bild um 100 Pixel nach rechts und fünf Pixel nach unten. Sie können Längenwerte in px, em oder einer beliebigen anderen CSS-Längeneinheit angeben.
Prozentwerte funktionieren etwas anders. Holen Sie Ihre Mathe-Hüte heraus: Das Verschieben eines Hintergrundbilds um X % bedeutet, dass der X %-Punkt im Bild mit dem X %-Punkt im Container ausgerichtet wird. Zum Beispiel bedeutet 50%, dass die Mitte des Bildes mit der Mitte des Containers ausgerichtet wird. 100% bedeutet, dass das letzte Pixel des Bildes mit dem letzten Pixel des Containers ausgerichtet wird und so weiter.
Schlüsselwörter sind lediglich Kurzformen für Prozentwerte. Es ist einfacher, sich top right zu merken und zu schreiben als 0 100%, und deshalb gibt es Schlüsselwörter. Hier ist eine Liste aller fünf Schlüsselwörter und ihrer äquivalenten Werte
top: 0% vertikalright: 100% horizontalbottom: 100% vertikalleft: 0% horizontalcenter: 50% horizontal, wenn horizontal noch nicht definiert ist. Wenn doch, wird dies vertikal angewendet.
Es ist interessant festzustellen, dass die Reihenfolge der Schlüsselwörter keine Rolle spielt: top center ist dasselbe wie center top. Dies funktioniert jedoch nur, wenn Sie *ausschließlich* Schlüsselwörter verwenden. center 10% ist nicht dasselbe wie 10% center.
Demo
Diese Demo zeigt Beispiele für background-position, die mit Längeneinheiten, Prozentwerten und Schlüsselwörtern eingestellt sind.
Werte deklarieren
In modernen Browsern können Sie background-position bis zu vier Werte zuweisen
- Wenn Sie **einen Wert** deklarieren, ist dieser Wert der horizontale Offset. Der Browser setzt den vertikalen Offset auf
center. - Wenn Sie **zwei Werte** deklarieren, ist der erste Wert der horizontale Offset und der zweite Wert der vertikale Offset.
Die Dinge werden etwas kniffliger, wenn Sie drei oder vier Werte verwenden, aber Sie erhalten auch mehr Kontrolle über die Platzierung Ihres Hintergrunds. Eine Drei- oder Vierwert-Syntax wechselt zwischen Schlüsselwörtern und Längen- oder Prozentwerten. Sie können alle Schlüsselwortwerte *außer* center in einer Drei- oder Vierwert-background-position-Deklaration verwenden.
Wenn Sie **drei Werte** angeben, interpretiert der Browser den „fehlenden“ vierten Wert als 0. Hier ist ein Beispiel für ein Drei-Wert-background-position
.three-values {
background-position: right 45px bottom;
}
Dies positioniert das Hintergrundbild 45px vom rechten und 0px vom unteren Rand des Containers.
Hier ist ein Beispiel für ein **Vier-Wert**-background-position
.four-values {
background-position: right 45px bottom 20px;
}
Dies platziert das Hintergrundbild 45px vom rechten und 20px vom unteren Rand des Containers.
Beachten Sie die Reihenfolge der Werte in den obigen Beispielen: Schlüsselwörter gefolgt von Längeneinheiten. Ein Drei- oder Vier-Wert-background-position muss diesem Format folgen, wobei ein Schlüsselwort einer Länge oder einem Prozentwert vorausgeht.
Demo
Diese Demo enthält Beispiele für background-position mit einem Wert, zwei Werten, drei Werten und vier Werten.
Browser-Unterstützung
Die grundlegenden Werte werden überall unterstützt. Die Vier-Wert-Syntax hat diese Unterstützung
Diese Browser-Support-Daten stammen von Caniuse, das mehr Details bietet. Eine Zahl bedeutet, dass der Browser die Funktion ab dieser Version unterstützt.
Desktop
| Chrome | Firefox | IE | Edge | Safari |
|---|---|---|---|---|
| 25 | 13 | 9 | 12 | 7 |
Mobil / Tablet
| Android Chrome | Android Firefox | Android | iOS Safari |
|---|---|---|---|
| 127 | 127 | 4.4 | 7.0-7.1 |
Das ist dasselbe Maß an Unterstützung wie die Eigenschaften background-position-x und background-position-y.
Weitere Informationen
CSS Basics: Multiple Backgrounds verwenden
Positionierung und Offset von Hintergrundbildern
Mir gefällt, wie Hintergrundposition in Prozent funktioniert
Ein `background-image` mit Prozentwerten auf einen präzisen Ort fokussieren
Hintergründe mit Mausposition bewegen
Verwandt
background
.element { background: url(texture.svg) top center / 200px 200px no-repeat fixed #f8a100; }
background-attachment
.hero { background-attachment: fixed; }
background-blend-mode
.element { background-blend-mode: screen; }
background-clip
.element { background-clip: padding-box; }
background-color
element{ background-color: #ff7a18; }
background-image
.element { background: url(texture.svg); }
background-origin
.element { background-origin: border-box; }
background-position
.element { background-position: 100px 5px; }
background-repeat
.element { background-repeat: repeat-x; }
background-size
.element { background-size: 300px 100px; }
Vielen Dank. Sie haben meinen Tag gerettet!
Was ist, wenn ich möchte, dass das Bild rechts zentriert wird, mit einem rechten Abstand von etwa 20px?
Wie kann ich das erreichen?
Wie wäre es mit 'left 50% 20px'?
Das funktioniert bei mir
background-position: right 20px top 50%;
20px 50%
Gibt es eine Best Practice für die Verwendung oder Nichtverwendung von Schlüsselwörtern gegenüber Prozentwerten?
Kann mir jemand das erklären?
Wenn ich reine Pixelwerte wie 10px 20px verwende, funktioniert es gut, das Bild bewegt sich tatsächlich im Container, aber wenn ich Prozentwerte wie 50% 20% verwende, bewegt sich das Bild nicht im Container. Das gleiche Phänomen tritt auf, wenn ich vier Werte wie right 30px left 35px verwende, und auch wenn ich top right verwende (tatsächlich zeigt es mir den oberen rechten Teil eines Bildes).
Jede Hilfe wäre sehr dankbar.
12
Sie können negative ganze Zahlen verwenden
Warum unterstützt der Safari-Browser „background-position: right 8px top 14px;“ nicht?
Hinweis: Ab Chrome 66 werden Drei-Teile-Syntaxen für Hintergrundpositionen aufgrund von Parsierungs-Mehrdeutigkeiten als veraltet eingestuft … siehe hier und [hier] (https://drafts.csswg.org/css-values-4/#ref-for-propdef-background-position%E2%91%A0). Wenn ich das richtig verstehe:
background-position: right 45px bottom;muss geändert werden inbackground-position: right 45px bottom 0;Kann ich negative Prozentwerte verwenden? z.B. background-position-y: -20%
Ist das empfehlenswert oder gibt es Alternativen? Bitte vorschlagen
Wenn
background-size: 200% 200%gesetzt ist, wird dann der Wert für background-position verdoppelt?