Der Hintergrund lässt sich nicht skalieren; es sei denn Du möchtest wirklich mit Ajax o.ä. die Seitendimensionen auslesen und den Code immer dynamisch anpassen. Aber das ist unzuverlässig und dürfte in den meistne Fällen einfach zu viel Mühe sein.
Aber ein wichtiger Tip noch: Mach das Bild breiter als nur 1px! Die Dateigröße wird dabei nur unwesentlich höher, da die meisten Formate komprimiert sind - ABER! der Rechenr des Users spart angeblich viel Arbeit, weil er nicht so viele einzelne Bilder zusammenpuzzlen muss.
Ich will jetzt nicht pingelig erscheinen, aber mit »Ajax« liest man keine Seitendimensionen aus, wohl mit JavaScript, was nur eine Bestandteil der AJAX-Idee ist. Es ist noch weniger sinnvoll den Code dynamisch anzupassen, da wir hier ja eine Lösung ausschließlich für den Browser (Client) suchen. Stefan hat da schon in die richtige Richtung gewiesen, besonders praktikabel ist dies jedoch nicht, da ein Verlauf dann schnell unschön wird, wenn man ihn streckt oder spreitzt.
Fruitbasket, Dein Tipp, das Bild breiter zu machen, ist meiner Meinung nach mehr Legende als Wahrheit, denn der Browser muss das Bild, welches er einmal geladen hat, nur erneut im Speicher verschieben, dabei ist es, vor allem bei den heutigen System, ziemlich egal, ob es 1px oder 20px breit ist. Die aktuellen Browser sind vor allem auf die Verwendung von CSS-Umsetzungen optimiert und das ist vor allem eine Frage des Arbeitsspeichers und weniger der CPU.
Sorry, aber meinen Erfahrungen nach ist ein 1-Pixel-Streifen die beste Lösung, da zum Zeitpunkt der Umsetzung die Ladezeit schwerwiegender sein dürfte als die Umsetzungszeit.
Mit dem 1-Pixel-Streifen kann man nur mit verschiedenen Dateiformaten auch recht verschiedene Erfahrungen machen:
o
JPG: erreicht eine hohe Kompression, erzeugt also sehr kleine Dateien, wobei das Ergebnis bei einem Verlauf leider nicht hohen Qualitätsmaßstäben gerecht wird.
o
GIF: Der Algorithmus von GIF89a versucht vor allem horizontal (also zeilenweise) zu komprimieren, daher sind dürfte der Verlauf (1px breit, 1000px hoch) eine größere Datei zum Ergebnis haben. Dazu kommt, dass GIF nur mit höchsten 256 Farben umgehen kann, was bei einem sanften Verlauf ziemlich unschön wird.
o
PNG: Dieses Format kann nicht nur Wiederholungen entdecken und dadurch komprimieren, sondern auch Verläufe, also ständig wechselnde Farbwerte, in einigen Fällen gut komprimieren. Vor allem in Deinem Falle bietet es sich an, ein 32-Bit-PNG anzulegen (auch hier ein Pixel breit und beliebig hoch). Die Dateigröße ist überraschend klein, bei bester Qualität. Ich habe zum Beispiel auf meiner kleine Spielwiese einen zarten Grauverlauf in den Hintergrund gesetzt, der ein Pixel breit und 800 Pixel hoch ist. Die Datei »wiegt« gerade mal 0,3 KB und wird horizontal dubliziert. Der dafür verwendete Code entspricht den Hinweisen von da_danny von stk.
Code:
body { background: #474747 url(../img/background.png) repeat-x; }