背景与背景图片的相互融合
本帖最后由 马黑黑 于 2022-4-11 19:52 编辑 <br /><br /><p>CSS融合技术里除了有 mix-blend-mode 系列混合滤镜(用于融合元素与元素),还有背景融合滤镜 background-blend-mode 系列滤镜(用于融合背景,不与其上的元素融合),和前者一样,也有 16 种滤镜效果。我们后面的演示需要设定一个CSS类选择器 .bgBox :<br><br></p><pre><span style="color: red;">.bgBox </span>{
<span style="color: blue;">margin</span>: 10px auto 0;
<span style="color: blue;">width</span>: 500px;
<span style="color: blue;">height</span>: 300px;
<span style="color: blue;">padding</span>: 10px;
<span style="color: blue;">position</span>: relative;
<span style="color: blue;">background</span>: red url(<font color="#ff00ff">'/data/attachment/forum/202201/29/223322rnkonc43jlnsb44m.jpg'</font>) no-repeat center/cover;
}
</pre>
<p>上面的CSS,我们给 bgBox 类选择器设定了盒子的背景色和背景图片,我们的意图是想通过下面的HTML代码实现背景色与背景图片的融合:</p>
<p><br><<span style="color:darkred">div</span> <span style="color: red">class</span><span style="color: blue">=</span><span style="color: magenta">"bgBox"</span> <span style="color: red">style</span><span style="color: blue">=</span><span style="color: magenta">"background-blend-mode: darken;"</span>>No.5 darken<<span style="color: darkred">/div</span>><br></p>
<p><br>我们要写 16 行这样的HTML代码,以便观察不同滤镜下元素背景色与元素背景图片的融合效果。顺便提一下,很重要的:一是不同的背景色与图片融合的效果不尽一样;二是背景融合支持多种滤镜混合使用,方便时可以试试;三是元素的背景支持多个背景图片,这意味着多个背景图片之间也可以相互融合并且可以混合应用多种滤镜。</p><p><br></p><p>效果将在下楼展示,我用JS来生成HTML代码,它生成的代码是酱紫:</p><div class="blockcode"><blockquote><div class="bgBox" style="background-blend-mode: normal;">No.1 normal</div><br><div class="bgBox" style="background-blend-mode: multiply;">No.2 multiply</div><br><div class="bgBox" style="background-blend-mode: screen;">No.3 screen</div><br><div class="bgBox" style="background-blend-mode: overlay;">No.4 overlay</div><br><div class="bgBox" style="background-blend-mode: darken;">No.5 darken</div><br><div class="bgBox" style="background-blend-mode: lighten;">No.6 lighten</div><br><div class="bgBox" style="background-blend-mode: color-dodge;">No.7 color-dodge</div><br><div class="bgBox" style="background-blend-mode: color-burn;">No.8 color-burn</div><br><div class="bgBox" style="background-blend-mode: hard-light;">No.9 hard-light</div><br><div class="bgBox" style="background-blend-mode: soft-light;">No.10 soft-light</div><br><div class="bgBox" style="background-blend-mode: difference;">No.11 difference</div><br><div class="bgBox" style="background-blend-mode: exclusion;">No.12 exclusion</div><br><div class="bgBox" style="background-blend-mode: hue;">No.13 hue</div><br><div class="bgBox" style="background-blend-mode: saturation;">No.14 saturation</div><br><div class="bgBox" style="background-blend-mode: color;">No.15 color</div><br><div class="bgBox" style="background-blend-mode: luminosity;">No.16 luminosity</div></blockquote></div><p><br></p><p><br></p>
本帖最后由 马黑黑 于 2022-4-11 19:36 编辑 <br /><br /><style>
.mama { width: 100%; }
.bgBox {
margin: 10px auto 0;
width: 500px;
height: 300px;
padding: 10px;
position: relative;
background: orange url('/data/attachment/forum/202201/29/223322rnkonc43jlnsb44m.jpg') no-repeat center/cover;
}
</style>
<div class="mama"><p>background-blend-mode 16种滤镜:背景色与背景图片的融合效果:<br></div>
<script>
let mixarr = ['normal','multiply','screen','overlay','darken','lighten','color-dodge','color-burn','hard-light','soft-light','difference','exclusion','hue','saturation','color','luminosity'];
let hstr = '';
for(j=0; j<mixarr.length; j++){
hstr += `<div class="bgBox" style="background-blend-mode: ${mixarr};">No.${j+1} ${mixarr}</div>\n`;
}
document.querySelector('.mama').innerHTML += hstr;
console.log(hstr);
</script> 本帖最后由 马黑黑 于 2022-4-11 19:37 编辑
二楼代码:
<style>
<style>
.mama { width: 100%; }
.bgBox {
margin: 10px auto 0;
width: 500px;
height: 300px;
padding: 10px;
position: relative;
background: orange url('/data/attachment/forum/202201/29/223322rnkonc43jlnsb44m.jpg') no-repeat center/cover;
}
</style>
<div class="mama"><p>background-blend-mode 16种滤镜:背景色与背景图片的融合效果:<br></div>
<script>
let mixarr = ['normal','multiply','screen','overlay','darken','lighten','color-dodge','color-burn','hard-light','soft-light','difference','exclusion','hue','saturation','color','luminosity'];
let hstr = '';
for(j=0; j<mixarr.length; j++){
hstr += `<div class="bgBox" style="background-blend-mode: ${mixarr};">No.${j+1} ${mixarr}</div>\n`;
}
document.querySelector('.mama').innerHTML += hstr;
console.log(hstr);
</script>
又学习到了新的融合方法了,谢谢老黑。{:4_190:} 加林森 发表于 2022-4-11 20:52
又学习到了新的融合方法了,谢谢老黑。
是不是有点快 马黑黑 发表于 2022-4-11 20:56
是不是有点快
对你来说不快的,你是举一反三。我呢,得慢慢学习的。 加林森 发表于 2022-4-11 20:58
对你来说不快的,你是举一反三。我呢,得慢慢学习的。
最主要的吧,还是基础问题。比如说前景色,是哪一个设定,你若不懂,你就无法做更深入的探究 马黑黑 发表于 2022-4-11 20:59
最主要的吧,还是基础问题。比如说前景色,是哪一个设定,你若不懂,你就无法做更深入的探究
就是这个道理的。我不太懂,只有跟着你学习了。 加林森 发表于 2022-4-11 21:02
就是这个道理的。我不太懂,只有跟着你学习了。
我介绍的,不是基础知识,有点为难你了 马黑黑 发表于 2022-4-11 21:03
我介绍的,不是基础知识,有点为难你了
我不急的,慢慢来吧。 马老师深入探究的话,PS弱爆了{:4_190:} 朵拉 发表于 2022-4-11 21:25
马老师深入探究的话,PS弱爆了
不会呀,ps太专业,CSS的一点点滤镜只不过是小儿科 加林森 发表于 2022-4-11 21:10
我不急的,慢慢来吧。
挺好 马黑黑 发表于 2022-4-12 07:43
挺好
嗯嗯
页:
[1]