<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 â¨2020å¹´1æâ©.
<blend-mode> CSS æ°æ®ç±»åæè¿°å½å
ç´ éå æ¶ï¼é¢è²åºå½å¦ä½åç°ãå®è¢«ç¨äº background-blend-mode å mix-blend-mode 屿§ã
è¯æ³
<blend-mode> æ°æ®ç±»å使ç¨ä»ä¸æ¹å表ä¸éæ©çå
³é®åå¼å®ä¹ã
å¼
normal-
æç»é¢è²æ¯é¡¶å±é¢è²ï¼æ 论åºå±é¢è²æ¯ä»ä¹ãå ¶ææç±»ä¼¼äºä¸¤å¼ ä¸éæç纸éå ï¼overlappingï¼å¨ä¸èµ·ã
multiply-
æç»é¢è²ä¸ºé¡¶å±é¢è²ä¸åºå±é¢è²ç¸ä¹çç»æã妿å å é»è²å±ï¼åæç»å±å¿ 为é»è²å±ï¼å å ç½è²å±ä¸ä¼é æååãå ¶ææç±»ä¼¼äºå¨éæèèä¸éå å°å·ç两个å¾åã
screen-
æç»çé¢è²æ¯å转é¢è²ï¼é¡¶å±é¢è²ååºå±é¢è²ï¼ï¼ç¸ä¹å®ä»¬å¹¶å转该å¼çç»æãé»è²å±ä¸ä¼é æååï¼ç½è²å±å¯¼è´ç½è²æç»å±ãå ¶ææç±»ä¼¼äºæå°å°æå½±å±å¹ä¸ç两个å¾åã
overlay-
妿åºå±é¢è²æ¯é¡¶å±é¢è²æ·±ï¼åæç»é¢è²æ¯
multiplyçç»æï¼å¦æåºå±é¢è²æ¯é¡¶å±é¢è²æµ ï¼åæç»é¢è²æ¯screençç»æãæ¤æ··åæ¨¡å¼ç¸å½äºé¡¶å±ä¸åºå±äºæ¢åçhard-lightã darken-
æç»é¢è²æ¯ç±æ¯ä¸ªé¢è²ééä¸ï¼é¡¶åºä¸¤å±é¢è²ä¸çææå¼æç»æçé¢è²ã
lighten-
æç»é¢è²æ¯æ¯ä¸ªé¢è²ééä¸ï¼é¡¶åºä¸¤å±é¢è²ä¸çæäº®å¼æç»æçé¢è²ã
color-dodge-
æç»é¢è²æ¯å°åºå±é¢è²é¤ä»¥é¡¶å±é¢è²çåè²çç»æãé»è²åæ¯ä¸ä¼é æååã忝妿æ¯èæ¯çåè²ï¼ä¼å¾å°ç½è²ï¼fully lit colorï¼å®å ¨äº®èµ·çé¢è²ï¼åºå½ä¸ºç½è²ï¼ãæ¤æ··å模å¼ç±»ä¼¼äº
screenï¼ä½æ¯ï¼åæ¯åªéè¦åèæ¯çåè²ä¸æ ·äº®ï¼æç»å¾åå°±ä¼åä¸ºå ¨ç½ã color-burn-
æç»é¢è²æ¯å转åºå±é¢è²ï¼å°å转åçå¼é¤ä»¥é¡¶å±é¢è²ï¼åå转é¤ä»¥åçå¼å¾å°çç»æãç½è²ç忝ä¸ä¼å¯¼è´ååï¼åæ¯å¦ææ¯èæ¯çåè²ï¼ä¼å¾å°é»è²ãæ¤æ··å模å¼ç±»ä¼¼äº
multiplyï¼ä½æ¯ï¼åæ¯åªéè¦åèæ¯çåè²ä¸æ ·æï¼æç»å¾åå°±ä¼åä¸ºå ¨é»ã hard-light-
妿顶å±é¢è²æ¯åºå±é¢è²æ·±ï¼åæç»é¢è²æ¯
multiplyçç»æï¼å¦æé¡¶å±é¢è²æ¯åºå±é¢è²æµ ï¼åæç»é¢è²æ¯screençç»æãæ¤æ··åæ¨¡å¼ç¸å½äºé¡¶å±ä¸åºå±äºæ¢åçoverlayãå ¶ææç±»ä¼¼äºå¨èæ¯å±ä¸æåºä¸çåºç¼çèå ç¯ã soft-light-
æç»é¢è²ç±»ä¼¼äº
hard-lightçç»æï¼ä½æ´å æåä¸äºãæ¤æ··å模å¼ç表ç°ç±»ä¼¼hard-lightãå ¶ææç±»ä¼¼äºå¨èæ¯å±ä¸æåºä¸ç忣çèå ç¯ã difference-
æç»é¢è²æ¯ä¸¤ç§é¢è²ä¸è¾æµ çé¢è²åå»ä¸¤ç§é¢è²ä¸è¾æ·±çé¢è²å¾å°çç»æãé»è²å±ä¸ä¼é æååï¼èç½è²å±ä¼å转å¦ä¸å±çé¢è²ã
exclusion-
æç»é¢è²ç±»ä¼¼äº
differenceï¼ä½å¯¹æ¯åº¦æ´ä½ä¸äºãådifferenceç¸åï¼é»è²å±ä¸ä¼é æååï¼èç½è²å±ä¼å转å¦ä¸å±çé¢è²ã hue-
æç»é¢è²ç±é¡¶å±é¢è²çè²è°ååºå±é¢è²ç饱å度ä¸äº®åº¦ç»æã
saturation-
æç»é¢è²ç±é¡¶å±é¢è²ç饱å度ååºå±é¢è²çè²è°ä¸äº®åº¦ç»æã饱å度为é¶ç纯ç°è²èæ¯å±ä¸ä¼é æååã
color-
æç»é¢è²ç±é¡¶å±é¢è²çè²è°ä¸é¥±å度ååºå±é¢è²çäº®åº¦ç»æãæ¤ææä¿çäºç°åº¦çº§å«ï¼å¯ç¨äºä¸ºåæ¯çè²ã
luminosity-
æç»é¢è²ç±é¡¶å±é¢è²ç亮度ååºå±é¢è²çè²è°å饱ååº¦ç»æãæ¤æ··åæ¨¡å¼ç¸å½äºé¡¶å±ä¸åºå±äºæ¢åç
colorã
æè¿°
对äºåºç¨è¯¥æ¨¡å¼çå±ä¸çæ¯ä¸ªåç´ ï¼æ··å模å¼éç¨åæ¯åèæ¯çé¢è²ï¼å¯¹å®ä»¬è¿è¡è®¡ç®ï¼å¹¶è¿åä¸ä¸ªæ°çé¢è²å¼ã
æ··åæ¨¡å¼ä¹é´çååä¸ä¼è¢«æå¼ãä»»ä½ååé½ä¼ç«å³åçã
å½¢å¼è¯æ³
<blend-mode> =
normal |
multiply |
screen |
overlay |
darken |
lighten |
color-dodge |
color-burn |
hard-light |
soft-light |
difference |
exclusion |
hue |
saturation |
color |
luminosity
示ä¾
>示ä¾ï¼ä½¿ç¨ânormalâ
#div {
width: 300px;
height: 300px;
background: url("br.png"), url("tr.png");
background-blend-mode: normal;
}
示ä¾ï¼ä½¿ç¨âmultiplyâ
#div {
width: 300px;
height: 300px;
background: url("br.png"), url("tr.png");
background-blend-mode: multiply;
}
示ä¾ï¼ä½¿ç¨âscreenâ
#div {
width: 300px;
height: 300px;
background: url("br.png"), url("tr.png");
background-blend-mode: screen;
}
示ä¾ï¼ä½¿ç¨âoverlayâ
#div {
width: 300px;
height: 300px;
background: url("br.png"), url("tr.png");
background-blend-mode: overlay;
}
示ä¾ï¼ä½¿ç¨âdarkenâ
#div {
width: 300px;
height: 300px;
background: url("br.png"), url("tr.png");
background-blend-mode: darken;
}
示ä¾ï¼ä½¿ç¨âlightenâ
#div {
width: 300px;
height: 300px;
background: url("br.png"), url("tr.png");
background-blend-mode: lighten;
}
示ä¾ï¼ä½¿ç¨âcolor-dodgeâ
#div {
width: 300px;
height: 300px;
background: url("br.png"), url("tr.png");
background-blend-mode: color-dodge;
}
示ä¾ï¼ä½¿ç¨âcolor-burnâ
#div {
width: 300px;
height: 300px;
background: url("br.png"), url("tr.png");
background-blend-mode: color-burn;
}
示ä¾ï¼ä½¿ç¨âhard-lightâ
#div {
width: 300px;
height: 300px;
background: url("br.png"), url("tr.png");
background-blend-mode: hard-light;
}
示ä¾ï¼ä½¿ç¨âsoft-lightâ
#div {
width: 300px;
height: 300px;
background: url("br.png"), url("tr.png");
background-blend-mode: soft-light;
}
示ä¾ï¼ä½¿ç¨âdifferenceâ
#div {
width: 300px;
height: 300px;
background: url("br.png"), url("tr.png");
background-blend-mode: difference;
}
示ä¾ï¼ä½¿ç¨âexclusionâ
#div {
width: 300px;
height: 300px;
background: url("br.png"), url("tr.png");
background-blend-mode: exclusion;
}
示ä¾ï¼ä½¿ç¨âhueâ
#div {
width: 300px;
height: 300px;
background: url("br.png"), url("tr.png");
background-blend-mode: hue;
}
示ä¾ï¼ä½¿ç¨âsaturationâ
#div {
width: 300px;
height: 300px;
background: url("br.png"), url("tr.png");
background-blend-mode: saturation;
}
示ä¾ï¼ä½¿ç¨âcolorâ
#div {
width: 300px;
height: 300px;
background: url("br.png"), url("tr.png");
background-blend-mode: color;
}
示ä¾ï¼ä½¿ç¨âluminosityâ
#div {
width: 300px;
height: 300px;
background: url("br.png"), url("tr.png");
background-blend-mode: luminosity;
}
æ··åæ¨¡å¼æ¯è¾
å¨ä»¥ä¸ç¤ºä¾ä¸ï¼æä»¬æä¸ä¸ªå¸¦æä¸¤å¼ èæ¯å¾çï¼å¨çº¿æ§æ¸åä¹ä¸æä¸ä¸ª Firefox ç logoï¼ç <div>ãå®çä¸é¢ï¼æä»¬æä¾ä¸ä¸ª <select> èåï¼å
è®¸ä½ æ¹ååºç¨å° <div> ä¸ç background-blend-modeï¼ä½ å¯ä»¥åæ¤æ¯è¾ä¸åçæ··åæ¨¡å¼ææã
HTML
<div></div>
<p>éæ© 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;
});
ç»æ
è§è
| Specification |
|---|
| Compositing and Blending Level 2 > # ltblendmodegt > |
æµè§å¨å ¼å®¹æ§
åè§
- CSS åæåæ··åæ¨¡åå®ä¹äº
<blend-mode>å¼ã - ä½¿ç¨æ¤æ°æ®ç±»åç屿§ï¼
background-blend-modeåmix-blend-mode
å ¶ä»ç½ç«ä¸å¯¹åç§æ··å模å¼ç说æä¸ä»ç»ï¼
- Wikipedia ä¸çæ··åæ¨¡å¼
- Adobe æä¾ç Blending modes in Adobe Photoshop