In CSS-Referenzen kann ich sehen, wie die Bildtransparenz und das Hintergrundbild festgelegt werden . Aber wie kann ich diese beiden kombinieren, um ein transparentes Hintergrundbild zu erstellen?
Ich habe ein Bild, das ich als Hintergrund verwenden möchte, aber es ist zu hell - ich möchte die Deckkraft auf etwa 0,2 verringern. Wie kann ich das machen?
#main {
background-image: url(/wp-content/uploads/2010/11/tandem.jpg);
}
opacity: ...
in allen Browsern angeben können , ist es viel besser!quelle
:before
anstelle von:after
und dann muss ich das nicht manipulieren,z-index
weil es:before
automatisch unter dem Hauptinhalt landet. (Derzeit in Chrome und FF getestet.)background-repeat: no-repeat; background-attachment: fixed; background-position: center;
innerhalb von #main: after {...} hinzufügen .Lösung mit 1 div und KEIN transparentem Bild:
Sie können die Multibackground-CSS3-Funktion verwenden und zwei Hintergründe einfügen: einen mit dem Bild und einen mit einem transparenten Bedienfeld (da es meiner Meinung nach keine Möglichkeit gibt, die Deckkraft des Hintergrundbilds direkt festzulegen):
Sie können es nicht verwenden,
rgba(255,255,255,0.5)
da es allein nur auf der Rückseite akzeptiert wird. Deshalb habe ich für dieses Beispiel für jeden Browser generierte Verläufe verwendet (deshalb ist es so lang). Das Konzept lautet jedoch wie folgt:http://jsfiddle.net/pBVsD/1/
quelle
Einfache Lösung
Wenn Sie den Verlauf nur auf Hintergrundbild einstellen müssen :
quelle
Ich habe das gesehen und in CSS3 können Sie jetzt Code wie folgt einfügen. Nehmen wir an, ich möchte, dass es den gesamten Hintergrund abdeckt. Ich würde so etwas tun. Dann verwenden Sie mit
hsla(0,0%,100%,0.70)
oder rgba einen weißen Hintergrund mit einem beliebigen Prozentsatz an Sättigung oder Deckkraft, um das gewünschte Aussehen zu erzielen.quelle
Sie können CSS psuedo selector :: after verwenden, um dies zu erreichen. Hier ist eine funktionierende Demo.
quelle
Ich hatte ein ähnliches Problem. Ich hatte ein Bild und wollte die Transparenz reduzieren und einen schwarzen Hintergrund hinter dem Bild haben. Anstatt die Deckkraft zu verringern oder einen schwarzen Hintergrund oder ein sekundäres Div zu erzeugen, setze ich einen linearen Farbverlauf für das Bild in einer Zeile:
quelle
Ich habe die Antwort von @Dan Eastwell verwendet und es funktioniert sehr gut. Der Code ähnelt seinem Code, enthält jedoch einige Ergänzungen.
quelle
Eine gute Möglichkeit, dies für ein einfaches Bild zu tun, besteht darin, nur CSS zu verwenden, um den Hintergrund des HTML-Elements so festzulegen.
Wenn Sie Lust haben und die Deckkraft einstellen möchten , können Sie in IE9 + * eine transparente Hintergrundfarbe des Körpers festlegen. Dies funktioniert, indem halbtransparentes Weiß überlagert wird, um das Bild weißer zu machen und heller zu wirken. Zum Beispiel würde Weiß mit 75% Deckkraft (
rgba(255,255,255,.75)
) den folgenden Effekt erzeugen.position: relative
, während sich der Textkörper befindetposition: absolute
. Dies soll verhindern, dass sich die Hintergrundfarbe des Körpers eher wie ein Textmarker im Körper verhält.Dies könnte sogar auf etwas erweitert werden, das mit CSS-Filtern vergleichbar, aber immer noch sehr verschieden ist, indem der RGBA-Farbhintergrund des Körpers geändert wird.
rgba(0,255,0,.75)
Würde beispielsweise einen sehr grünen Farbton erzeugen, wie Sie im Code-Snippet sehen können.rgba(0,255,0,.75)
als Beispiel{red:0, green:255, blue:0, alpha:'75%'}
.* Eine vollständige Kompatibilitätstabelle finden Sie unter Kann ich verwenden. Beachten Sie jedoch auch, dass Sie auf "Alle anzeigen" klicken müssen, um zu sehen, dass IE9 dies unterstützt.
Nachtrag
Da ich die Frage bereits beantwortet habe, aber noch mehr hinzufügen möchte, betitele ich diesen Abschnitt Nachtrag und lasse ihn einige potenziell hilfreiche Informationen hinzufügen. Um den obigen Inhalt noch weiter zu extrapolieren, könnten Sie eine SVG als Hintergrundbild verwenden, um böse, großartige Dinge zu tun. Sie können beispielsweise einen Ladebildschirmhintergrund mit einem coolen Website-Symbol erstellen, wie Sie im folgenden Beispiel eines Base64-codierten SVG sehen können.
background-size: cover
CSS wird die Größe des SVG-Logos im Hintergrund auf die Größe des HTML-Elements angepasst.quelle
Fügen Sie in Ihrem CSS ...
In JavaScript verwenden ...
NB: Fügen Sie nach Bedarf Herstellerpräfixe hinzu, aber Chromium sollte ohne in Ordnung sein.
quelle
Nun, die einzige CSS-Methode, um nur Hintergrundtransparenz zu erzeugen, ist via,
RGBa
aber da Sie ein Bild verwenden möchten, würde ich empfehlen, Photoshop oder Gimp zu verwenden, um das Bild transparent zu machen und es dann als Hintergrund zu verwenden.quelle
opactiy: 1;
nicht nur RGBa.background-image
Stils für einen Container und das Festlegen einesopacity
Stils für dasselbe Element. Das würde auch den Text und andere Inhalte dieses Elements transparent machen. Probieren Sie dies aus, wenn Sie mir nicht glauben: w3schools.com/Css/tryit.asp?filename=trycss_transparencyIch habe gerade position = absolute, top = 0, width = 100% im #main hinzugefügt und den Opazitätswert auf #background gesetzt
Ich habe den Hintergrund auf ein Div vor dem Main angewendet.
quelle
Ich bin auf diesen Beitrag gestoßen, da ich das gleiche Problem hatte. Dann dachte ich mir, warum ich mit CSS herumspielen, Werte anpassen und auf Aktualisieren klicken sollte, wenn Sie die Deckkraft in Photoshop einfach anpassen können. Kopieren Sie das Bild, fügen Sie es als neue Ebene ein und bewegen Sie den Deckkraftregler.
quelle
Ich hatte ein ähnliches Problem und habe einfach das Hintergrundbild mit Photoshop aufgenommen und eine neue PNG-Datei mit der erforderlichen Deckkraft erstellt. Problem gelöst, ohne sich Gedanken darüber zu machen, ob mein CSS auf allen Geräten und Browsern funktioniert
quelle