Wie kann ich die Hintergrundfarbe einer Website sowohl in Chrome als auch in Firefox anpassen?

Ich entwerfe eine Seite mit sowohl einem Hintergrundbild als auch einer Hintergrundfarbe für den Bereich nach dem Ende des (Verlaufs-)Hintergrundbilds.

Etwas wie:

background: url("/images/bg.png") repeat-x scroll center top #666666;

Ich kann die Hintergrundfarbe entweder in Firefox oder Chrome so einstellen, dass sie mit dem Ende des Bildes übereinstimmt, aber nicht in beiden. In einem der beiden ist die von mir eingestellte Farbe immer dunkler als das Ende des Farbverlaufs, sodass eine Trennlinie zwischen den beiden deutlich sichtbar ist.

Ich kann nicht herausfinden, wie ich eine Farbe auswählen kann, die in beiden Browsern funktioniert.

Hier ist ein Beispiel für eine Website, die diese Technik erfolgreich verwendet:

http://www.thermometerapp.com/

In diesem Fall entspricht die Hintergrundfarbe sowohl in FF als auch in Chrome dem Ende des Hintergrundbilds (gegen Ende der Seite endet das bg-Bild und die bg-Farbe füllt den unteren Teil).

Irgendwelche Ideen, wie das funktioniert? Danke.

Bearbeiten: Das erinnert mich an alte Palettenprobleme, aber ich dachte, wir hätten das alles jetzt hinter uns?

Versucht zu antworten, aber neue Benutzer "können 8 Stunden lang nicht antworten" (dumm). Trotzdem:
Etwas mehr Lesen ergab schließlich ein ähnliches Problem, das durch "Für Web speichern" in Photoshop gelöst wurde. In diesem Fall verwende ich jedoch GIMP, daher musste die Speicheroption für das PNG "Gamma speichern" enthalten. Durch Aktivieren dieser Option und Speichern wurde das Problem behoben. Das Handbuch beschreibt "Gamma speichern": Die Gammakorrektur ist die Fähigkeit, Unterschiede in der Interpretation von Farbwerten durch Computer zu korrigieren. Dadurch werden Gammainformationen im PNG gespeichert, die den aktuellen Gammafaktor für Ihr Display widerspiegeln. Betrachter auf anderen Computern können dann kompensieren, um sicherzustellen, dass das Bild nicht zu dunkel oder zu hell ist.
Es ist 10 Stunden her, seit Sie gepostet haben, also sollten Sie Ihren Kommentar beantworten, damit Sie dafür Anerkennung erhalten können. Ich kann die Frustration über die 8-Stunden-Regel verstehen, aber diese Regel hat einen Grund, Spam ist der größte. @Farray: Ich kann Kommentare nicht in Antworten umwandeln, sondern nur Antworten in Kommentare. @bgman5 muss die eigentliche Arbeit erledigen.
Ähm, ich sehe kein Problem ... (FF4 und Chrome)

Antworten (6)

Hier ist eine sehr einfache Lösung.

Wenn Sie Ihr Dokument erstellen, lassen Sie Ihren Farbverlauf transparent werden. Das heißt, Sie definieren keine Hintergrundfarbe vor, Sie haben nur den Farbverlauf. Jetzt in Ihrem CSS

background: url("/images/bg.png") repeat-x scroll center top #666666;

Hier #666666definieren Sie, WAS Ihr Farbverlauf überblendet. Auf diese Weise wird es immer konsistent sein. Außerdem bedeutet dies, dass Sie die Farben mit nur einer Codezeile leicht ein wenig ändern können!

GIF-Beispiel

Das PNG, das ich verwendet habe

ALTERNATIVE

Oder eine noch fließendere Lösung verwendet ein brandneues CSS! Leider ist es noch nicht "Standard" und es kann eine Weile dauern, bis es so ist, aber unten habe ich aufgelistet, wie man Hintergrundverläufe NUR mit CSS erstellt.

body {
background: -moz-linear-gradient(top, #ff00aa, #123000); //Firefox
background: -webkit-gradient(linear, left top, left bottom, from(#ff00aa), to(#123000)); //Chrome
}

Hier ist ein großartiges Tool, mit dem Sie CSS-Verläufe erstellen können .

Danke, Ersteres ist im Grunde das, was ich gepostet habe, AFAIK. Letzteres ist eine weitere Option, aber da ich für andere Browser sowieso einen Bild-Fallback verwenden muss, möchte ich den Aufwand für den kleinen Gewinn an Ladezeit lieber nicht verdoppeln.
@bgman5 - Es gäbe keine Farbabweichungen, wenn Sie einen Farbverlauf verwenden, der gegenüber einer Farbe in Transparenz übergeht, wie in meinem Beitrag angegeben. Ihre ersten Posts lassen es so klingen, als hätten Sie einen Farbverlauf (der in eine andere Farbe übergeht) und Sie möchten eine Hintergrundfarbe hinter dem Bild hinzufügen, die der ausgeblendeten Farbe in Ihrem Farbverlauf entspricht. - Mein Beitrag sagt, dass Sie in Transparenz einblenden sollten, nicht in eine andere Farbe.

Sie könnten ein transparentes PNG verwenden, das von Ihrer Farbe zu transparent übergeht. Diese Lösung hat den Vorteil, dass Sie Ihre Hintergrundfarbe (mit CSS) ändern können, ohne das Verlaufsbild zu ändern.

Danke, ich habe das Problem mit der oben erwähnten Gamma-Einstellung gelöst. Ich muss mit dieser Alternative experimentieren, um genau zu sehen, wie sie funktioniert – ich nahm an, dass dies zu demselben Farbanpassungsproblem führen würde.

Keine Antwort, aber Gründe dafür:

  • Einige Bildbearbeitungs-Apps ändern die Farbe von Bildern, wenn sie für den Web-Typ exportieren (Pixelmator hat beispielsweise die unangenehme Angewohnheit, Ihre PNGs farblich zu verschieben).
  • Einige Browser befolgen möglicherweise die Gamma-Einstellungen von PNG, was zu Diskrepanzen führen kann
  • Einige Browser verwenden leicht unterschiedliche Algorithmen zum Rendern von HTML-Farben im Vergleich zum Rendern von Bildern
  • dito für Betriebssysteme.

Die beste Lösung ist, was Sam vorschlägt ... da Sie sowieso PNGs verwenden, können Sie auch die Transparenzfunktion von ihnen nutzen.

Eine weitere Option ist die Verwendung eines PNG-Komprimierungsprogramms wie OptiPNG List of options . Einer der Gründe, warum diese Farbunterschiede bestehen können, liegt darin, dass einige Designprogramme Gammainformationen in der Datei speichern. Nicht alle Browser verwenden diese Informationen, aber sie liefern Offsets und Farbabweichungen. Diese Option funktioniert am besten, wenn Sie strukturierte Hintergründe haben. Um die Dateigröße gering zu halten, würde ich eine Kombination aus einem PNG-Kompressor und CSS verwenden.

Gif könnte eine Option sein, ergibt aber im Allgemeinen eine größere Dateigröße als ein 8-Bit-PNG

..Wenn Sie Volltonfarbverläufe als Hintergrund verwenden, würde ich die transparente PNG/background-colo0r-Route gehen, wie in DA01 und Sam beschrieben

Wenn es Ihnen nichts ausmacht, CSS-Verläufe zu verwenden, versuchen Sie Folgendes: http://www.colorzilla.com/gradient-editor/

der gradient maker ist sehr intuitiv (genau wie der in adobe photoshop) und generiert den code für alle gazillionen browser.

Es gibt auch einige Presets, die auch sehr gut sind.

Ich würde mich für CSS-Gradienten entscheiden, weil die meisten Browser sie unterstützen und für die Browser, die dies nicht tun (Stichwort unser kleiner Lieblingsteufel - IE), gibt es auch eine Fallback-Option.

Wenn Ihre Grafiken keine Transparenz enthalten, können Sie versuchen, JPG anstelle von PNG zu verwenden.