<blend-mode>
Baseline
Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since Januar 2020.
Der <blend-mode>
CSS Datentyp beschreibt, wie Farben erscheinen sollen, wenn sich Elemente überlappen. Er wird in den Eigenschaften background-blend-mode
und mix-blend-mode
verwendet.
Syntax
Der <blend-mode>
Datentyp wird unter Verwendung eines Schlüsselwortwertes definiert, der aus der unten stehenden Liste ausgewählt wird.
Werte
normal
-
Die Endfarbe ist die obere Farbe, unabhängig davon, welche Farbe die untere hat. Der Effekt ist wie bei zwei undurchsichtigen Papierstücken, die sich überlappen.
multiply
-
Die Endfarbe ist das Ergebnis der Multiplikation der oberen und unteren Farben. Eine schwarze Schicht führt zu einer schwarzen Endschicht, und eine weiße Schicht führt zu keiner Veränderung. Der Effekt ist wie bei zwei Bildern, die auf transparentem Film gedruckt werden und sich überlappen.
screen
-
Die Endfarbe ist das Ergebnis der Invertierung der Farben, ihrer Multiplikation und der Invertierung dieses Wertes. Eine schwarze Schicht führt zu keiner Veränderung, und eine weiße Schicht führt zu einer weißen Endschicht. Der Effekt ist wie bei zwei Bildern, die auf eine Projektionsleinwand scheinen.
overlay
-
Die Endfarbe wird durch
multiply
erzielt, wenn die untere Farbe dunkler ist, oder durchscreen
, wenn die untere Farbe heller ist. Dieser Mischmodus entsprichthard-light
, aber mit vertauschten Ebenen. darken
-
Die Endfarbe besteht aus den dunkelsten Werten jedes Farbkanals.
lighten
-
Die Endfarbe besteht aus den hellsten Werten jedes Farbkanals.
color-dodge
-
Die Endfarbe ist das Ergebnis der Division der unteren Farbe durch das Inverse der oberen Farbe. Ein schwarzer Vordergrund führt zu keiner Veränderung. Ein Vordergrund mit der inversen Farbe des Hintergrunds führt zu einer vollständig beleuchteten Farbe. Dieser Mischmodus ist ähnlich wie
screen
, aber der Vordergrund muss nur so hell wie das Inverse des Hintergrunds sein, um eine vollständig beleuchtete Farbe zu erzeugen. color-burn
-
Die Endfarbe ergibt sich aus der Invertierung der unteren Farbe, Division des Wertes durch die obere Farbe und Invertierung dieses Wertes. Ein weißer Vordergrund führt zu keiner Veränderung. Ein Vordergrund mit der inversen Farbe des Hintergrunds führt zu einem schwarzen Endbild. Dieser Mischmodus ist ähnlich wie
multiply
, aber der Vordergrund muss nur so dunkel wie das Inverse des Hintergrunds sein, um das Endbild schwarz zu machen. hard-light
-
Die Endfarbe wird durch
multiply
erzielt, wenn die obere Farbe dunkler ist, oder durchscreen
, wenn die obere Farbe heller ist. Dieser Mischmodus entsprichtoverlay
, aber mit vertauschten Ebenen. Der Effekt ist ähnlich dem Strahlen eines harten Scheinwerfers auf den Hintergrund. soft-light
-
Die Endfarbe ähnelt
hard-light
, aber weicher. Dieser Mischmodus verhält sich ähnlich wiehard-light
. Der Effekt ist ähnlich dem Strahlen eines diffusen Scheinwerfers auf den Hintergrund. difference
-
Die Endfarbe ist das Ergebnis der Subtraktion der dunkleren der beiden Farben von der helleren. Eine schwarze Schicht hat keinen Effekt, während eine weiße Schicht die Farbe der anderen Schicht umkehrt.
exclusion
-
Die Endfarbe ähnelt
difference
, aber mit weniger Kontrast. Ebenso wie beidifference
hat eine schwarze Schicht keinen Effekt, während eine weiße Schicht die Farbe der anderen Schicht umkehrt. hue
-
Die Endfarbe hat den Farbton der oberen Farbe, während sie die Sättigung und Helligkeit der unteren Farbe verwendet.
saturation
-
Die Endfarbe hat die Sättigung der oberen Farbe, während sie den Farbton und die Helligkeit der unteren Farbe verwendet. Ein reiner grauer Hintergrund, der keine Sättigung hat, hat keinen Effekt.
color
-
Die Endfarbe hat den Farbton und die Sättigung der oberen Farbe, während sie die Helligkeit der unteren Farbe verwendet. Der Effekt erhält Graustufen und kann verwendet werden, um den Vordergrund einzufärben.
luminosity
-
Die Endfarbe hat die Helligkeit der oberen Farbe, während sie den Farbton und die Sättigung der unteren Farbe verwendet. Dieser Mischmodus entspricht
color
, jedoch mit vertauschten Ebenen.
Beschreibung
Für jedes Pixel unter den Ebenen, auf die es angewendet wird, nimmt ein Mischmodus die Farben des Vorder- und Hintergrunds, führt eine Berechnung durch und gibt einen neuen Farbwert zurück.
Änderungen zwischen Mischmodi werden nicht interpoliert. Jede Änderung tritt sofort ein.
Formale Syntax
<blend-mode> =
normal |
multiply |
screen |
overlay |
darken |
lighten |
color-dodge |
color-burn |
hard-light |
soft-light |
difference |
exclusion |
hue |
saturation |
color |
luminosity
Beispiele
>Beispiel mit "normal"
#div {
width: 150px;
height: 150px;
background: url("br.png"), url("tr.png");
background-blend-mode: normal;
}
Stellen Sie andere Werte für background-blend-mode
ein, um unterschiedliche Ergebnisse zu erzielen.
Vergleich zwischen verschiedenen Werten mit background-blend-mode
.container {
width: 720px;
height: 760px;
display: grid;
grid: auto-flow 190px / repeat(4, 180px);
border-top: 1px solid #d8d8d8;
border-left: 1px solid #d8d8d8;
}
.container > div {
border-right: 1px solid #d8d8d8;
border-bottom: 1px solid #d8d8d8;
}
.container div div {
margin-left: 15px;
width: 150px;
height: 150px;
background: url("br.png"), url("tr.png");
}
.container div p {
line-height: 30px;
margin: 0;
color: #a33333;
text-align: center;
}
const list = [
"normal",
"multiply",
"screen",
"overlay",
"darken",
"lighten",
"color-dodge",
"color-burn",
"hard-light",
"soft-light",
"difference",
"exclusion",
"hue",
"saturation",
"color",
"luminosity",
];
const containerElem = document.querySelector(".container");
list.forEach((item) => {
const innerElem = document.createElement("div");
innerElem.style.backgroundBlendMode = item;
const textElem = document.createElement("p");
textElem.innerText = item;
const outerElem = document.createElement("div");
outerElem.appendChild(textElem);
outerElem.appendChild(innerElem);
containerElem.appendChild(outerElem);
});
Erstellen Sie mehrere div
-Elemente, indem Sie eine Liste durchlaufen, und setzen Sie für jedes ein anderes backgroundBlendMode
-Wert.
Vergleich zwischen verschiedenen Werten mit mix-blend-mode
Im folgenden Beispiel erstellen wir mehrere <div>
-Elemente, indem wir eine Liste durchlaufen und für jedes einen anderen mixBlendMode
-Wert setzen.
Vergleich der Mischmodi
Im folgenden Beispiel haben wir ein <div>
mit zwei darauf gesetzten Hintergrundbildern – ein Firefox-Logo über einem linearen Verlauf. Darunter haben wir ein <select>
-Menü bereitgestellt, das es Ihnen ermöglicht, den auf das <div>
angewendeten background-blend-mode
zu ändern, sodass Sie die verschiedenen Effekte der Mischmodi vergleichen können.
HTML
<div></div>
<p>Choose a blend-mode:</p>
<select>
<option selected>normal</option>
<option>multiply</option>
<option>screen</option>
<option>overlay</option>
<option>darken</option>
<option>lighten</option>
<option>color-dodge</option>
<option>color-burn</option>
<option>hard-light</option>
<option>soft-light</option>
<option>difference</option>
<option>exclusion</option>
<option>hue</option>
<option>saturation</option>
<option>color</option>
<option>luminosity</option>
</select>
CSS
div {
width: 300px;
height: 300px;
background:
url("https://mdn.dev/archives/media/attachments/2020/07/29/17350/3b4892b7e820122ac6dd7678891d4507/firefox.png")
no-repeat center,
linear-gradient(to bottom, blue, orange);
}
JavaScript
const selectElem = document.querySelector("select");
const divElem = document.querySelector("div");
selectElem.addEventListener("change", () => {
divElem.style.backgroundBlendMode = selectElem.value;
});
Ergebnis
Spezifikationen
Specification |
---|
Compositing and Blending Level 2> # ltblendmodegt> |
Browser-Kompatibilität
Loading…
Siehe auch
- Das CSS Compositing und Blending Modul, das die
<blend-mode>
Werte definiert. - Eigenschaften, die diesen Datentyp verwenden:
background-blend-mode
,mix-blend-mode
Beschreibung zu verschiedenen Mischmodi auf anderen Websites:
- Blend modes auf Wikipedia
- Blending modes in Adobe Photoshop von Adobe