Mit CSS können Sie den Hintergrund von Elementen steuern. Sie können eine background-color festlegen, um ihn mit einer Volltonfarbe zu füllen, eine background-image, um ihn (Sie haben es erraten) mit einem Bild zu füllen, oder sogar beides
body {
background-color: red;
background-image: url(pattern.png);
}
Hier ist ein Beispiel, bei dem ich eine SVG-Bilddatei als Hintergrund verwende, eingebettet als Data-URL direkt in CSS.
Siehe den Pen Hintergrundfarbe und Bild zusammen von Chris Coyier (@chriscoyier) auf CodePen.
Das ist nur ein einzelnes Bild, das wiederholt wird, aber wir können tatsächlich mehrere Hintergrundbilder festlegen, wenn wir wollen. Das machen wir, indem wir die Werte mit Kommas trennen.
body {
background-image:
url(image-one.jpg),
url(image-two.jpg);
}
Wenn wir es so belassen, wird image-one.jpg image-two.jpg wiederholen und vollständig abdecken. Aber wir können sie auch einzeln steuern, mit anderen Hintergrund-Eigenschaften.
body {
background-image:
url(image-one.jpg),
url(image-two.jpg);
background-position:
top right, /* this positions the first image */
bottom left; /* this positions the second image */
background-repeat:
no-repeat; /* this applies to both images */
}
Sehen Sie, wie background-position *auch* durch Kommas getrennte Werte hat? Diese werden individuell auf jedes Bild angewendet. Und wie background-repeat nur einen Wert hat? Wir hätten auch zwei Werte auf die gleiche Weise verwenden können, aber indem wir nur einen Wert verwenden, wird er auf beide angewendet.
Hier ist ein Beispiel mit vier separaten Bildern, eines in jeder Ecke, leicht versetzt
Siehe den Pen Beispiel für mehrere Hintergründe von Chris Coyier (@chriscoyier) auf CodePen.
Schade, dass man Hintergrundbilder nicht drehen oder spiegeln kann, sonst hätten wir nur eines verwenden können. Wir können jedoch ganze Elemente (oder Pseudo-Elemente) drehen und spiegeln, so dass wir in solchen Fällen mit einem einzigen Bild auskommen können!
Siehe den Pen Bild spiegeln, damit Sie nur eines verwenden können von Chris Coyier (@chriscoyier) auf CodePen.
Nur ein paar weitere Dinge, die man hier beachten sollte
- Die Stapelreihenfolge mehrerer Hintergründe ist „erstes ist oben“.
- Verläufe werden über
background-imageangewendet, sodass sie Teil von all dem sein können. Zum Beispiel könnten Sie einen transparenten Verlauf über einem Rasterbild festlegen.
Siehe den Pen Getöntes Bild mit mehreren Hintergründen von Chris Coyier (@chriscoyier) auf CodePen.
Super Sachen! Ich habe mich abonniert!
Gibt es eine Möglichkeit, Fallback-Bilder anzugeben, wenn das Format nicht unterstützt wird? Ich möchte WebP-Bilder in CSS verwenden, mit einem JPG-Fallback.
https://stackoverflow.com/questions/37588017/fallback-background-image-if-default-doesnt-exist
Wahrscheinlich wird etwas JavaScript benötigt: https://css-tricks.de/using-webp-images/#article-header-id-4 oder verwenden Sie ein Bild-CDN wie Cloudinary, bei dem Sie einrichten können, um sicherzustellen, dass es das beste Format liefert, das es mit einer einzigen URL kann.
Hallo Dusan Milko. Die von Ihnen verlinkte StackOverflow-Frage beantwortet meine Frage nicht. Ich möchte einen Fallback, wenn das Bildformat des ersten Bildes nicht unterstützt wird. Die StackOverflow-Frage spricht von einem Fallback, wenn das erste Bild nicht existiert.
Danke Chris Coyier für die Beantwortung meiner Frage.
Vielen Dank Chris! Ich hätte nie gedacht, dass das möglich und so einfach wäre. Und danke für deine Arbeit und Tutorials, ich schätze sehr, was du tust. Ich habe viel von deinen Tipps und Tricks gelernt.
Hallo, wird es eine „Sammlung“ dieser CSS-Grundlagen geben? Ich bin zuversichtlich in meinem Wissen über die Grundlagen, aber es ist immer schön, sie gelegentlich wieder aufzufrischen.
Das ist eine tolle Idee! Es könnte für uns sinnvoll sein, sie zumindest so zu taggen, dass sie gruppiert werden.
Gute Idee, dem Hintergrundbild einen Verlauf zu geben. Danke fürs Teilen.
Hallo, wie sieht es mit mehreren Hintergründen und automatischer Änderung in einem Intervall von Sekunden aus? Gibt es dafür einen Trick?
Für so etwas würde ich wahrscheinlich einen Slider in Betracht ziehen. Der richtige Ansatz könnte davon abhängen, mehr Kontext zu erfahren, aber CodePen hat eine Menge Beispiele, aus denen man lernen kann: https://codepen.io/search/pens?q=image+slider&limit=all&type=type-pens
div#bg {background-image
url(image-one.jpg),
url(image-two.jpg);
background-attachment: fixed, fixed;
background-position: center, center;
background-repeat: no-repeat, no-repeat;
background-size: cover, cover;
min-height: 100%;}
das, was ich frage, ist, wie man mit CSS3 zwischen Bild eins und Bild zwei in einem bestimmten Intervall wechselt
Kann das mit Inline-Styles gemacht werden?