Zum Inhalt springen
Der Guide für ein smartes Leben.
Hintergrund-Macht

Teil 3: CSS: Tricks mit Hintergrundbildern

Autor: Redaktion pcmagazin • 21.8.2009 • ca. 2:30 Min

Alle beteiligten Elemente werden auf Breite und Höhe des Browserfensters gesetzt, was zwar eigentlich nicht notwendig wäre, den Effekt aber deutlicher macht. Der Clou besteht in der Positionierung der Hintergrundbilder. Bei prozentualen Angaben wird der entsprechende Punkt des Hintergrundbildes ...

Alle beteiligten Elemente werden auf Breite und Höhe des Browserfensters gesetzt, was zwar eigentlich nicht notwendig wäre, den Effekt aber deutlicher macht. Der Clou besteht in der Positionierung der Hintergrundbilder.

Bei prozentualen Angaben wird der entsprechende Punkt des Hintergrundbildes an der entsprechenden Stelle platziert: Eine Angabe wie 50% 50% positioniert die Mitte des Hintergrundbildes in der Mitte des Elements. Wenn sich die Größe des Elements ändert, muss die Position des Hintergrundbildes angepasst werden und es verschiebt sich, was vom Benutzer als Bewegung wahrgenommen wird.Bei kleineren Prozentangaben werden die Hintergrundbilder langsamer bewegt, bei größeren Prozentangaben bewegen sie sich schneller. Deswegen erhält im Beispiel das Hintergrundbild bei body die Angabe 5% 5%, das mittlere Hintergrundbild 20% 20% und das vorderste Hintergrundbild 80% 80%.

CSS: Tricks mit Hintergrundbildern
Tricks mit fixierten Hintergrundbildern: Zuerst wird das farbige Bild sichtbar ...
© Archiv

Dass bei größeren Prozentangaben eine größere Bewegung stattfindet, lässt sich an den beiden Extremfällen veranschaulichen: Bei der Angabe von 0% 0% wird die obere Ecke des Hintergrundbildes ganz links positioniert und bei einer Größenänderung des Browserfensters wird das Hintergrundbild nicht verschoben, es bewegt sich nicht.

Im anderen Extremfall, also bei 100% 100%, wird die rechte untere Ecke des Hintergrundbildes rechts unten platziert - und wird entsprechend auch weiter verschoben, wenn sich die Größe des Browserfensters verändert. Und entsprechend bewegt es sich schneller.

So nett der Effekt auch ist, so hat er doch einen Nachteil: Er wirkt nur bei einer Größenveränderung des Browserfensters. Das macht ein normaler Surfer nur selten. Aber falls doch, kommt er in den Genuss dieses kleinen Bonuseffekts.

Deswegen stört es auch nicht weiter, dass der IE6 Probleme bei der Darstellung von transparenten PNGs hat: Durch konditionale Kommentare, CSS-Hacks oder fortgeschrittene Selektoren kann man dafür sorgen, dass nur neuere Browser von den Angaben profitieren. Der Internet Explorer 6 bekommt hingegen einfach nur ein Hintergrundbild angezeigt.

Fixe Ideen

Standardmäßig kleben Hintergrundbilder hinter ihren Elementen, bewegen sich also mit ihren Elementen mit, falls auf der Seite gescrollt wird. Das lässt sich über background-attachment:fixed ändern. Durch background-attachment:fixed bleibt das Hintergrundbild beim Scrollen an seiner Position.

Dabei ist zu beachten: Zusätzliche Positionierungsangaben über background-position beziehen sich immer auf das Browserfenster, nicht auf das Element, dem das Hintergrundbild zugewiesen ist.

Dadurch sind witzige Effekte mit mehreren Hintergrundbildern möglich. Angenommen, Sie haben zwei Hintergrundbilder, von denen das eine farbig und das andere schwarz-weiß ist. Diese werden zwei verschiedenen Elementen zugewiesen, aber an derselben Stelle positioniert. Anfangs ist das erste Hintergrundbild sichtbar, beim Scrollen nach unten wird dann das zweite Hintergrundbild langsam sichtbar - wie aufgedeckt. Es sieht so aus, als würde sich ein Filter über das Bild bewegen.

CSS: Tricks mit Hintergrundbildern
... und beim Scrollen wird langsam das schwarz-weiße Bild aufgedeckt.
© Archiv

Der benötigte HTML-Code ist schlicht: zwei Elemente mit IDs. Außerdem benötigen die Elemente etwas Inhalt, damit sie die richtige Höhe haben.

<div id="kopf">Lorem ...</div><div id="inhalt">Lorem ...</div>

Per CSS werden die Hintergrundbilder eingefügt, fixiert und positioniert:

#kopf {background: #dadcd7
url(landschaft. jpg) no-repeat 20px 20px fixed;}
#inhalt {background: transparent url
(landschaft_sw.jpg) no-repeat 20px 20px fixed;}

Wichtig ist, dass die Hintergrundbilder dieselben Positionierungsangaben erhalten: Im Beispiel sind sie 20 Pixel von oben und 20 Pixel von links positioniert.

Und der Internet Explorer 6? Leider interpretiert der IE 6 background-attachment:fixed nur korrekt bei Hintergrundbildern, die body zugewiesen sind. Hier sollte man über fortgeschrittene Selektoren oder konditionale Selektoren dafür sorgen, dass das zweite Hintergrundbild vor ihm verborgen bleibt.