如果有使用过Photoshop的同学对blend
混合模式应该是非常熟悉了,我们都知道混合模式是非常强大,也是p图时非常常用的一个功能。但是你们有没有想象过可以在浏览器的CSS中直接使用呢?对我们不需要设计师给我们做图,我们前端也可以实现混合模式了。
在CSS中我们不只可以对background
背景加入混合模式,我们可以对任何一个元素的自带背景加入混合模式,让你可以做出很多之前没有想过的效果和排版。
往一个元素加入混合模式,我们只需要使用到一个CSS属性mix-blend-mode
即可。
简单实现原理:
首先我们只需要加一个h1标题标签
<h1>混合模式:颜色减淡</h1>
然后我们给h1
标签加入mix-blend-mode
中的颜色减弱模式color-dodge
,但是要注意的是我们需要给body
和html
加入背景颜色background: white
,要不你会发现这个效果会无效。因为h1
我们没有给颜色,会自动往上级继承,并且混合模式是针对背景颜色的过滤,所以body和html需要有背景颜色才行。
h1 { mix-blend-mode: color-dodge; font-family: yahei; font-size: 5rem; text-align: center; margin: 0; padding: 20vh 200px; color: #D1956C; } html, body { margin: 0; background-color: white; } body { background-image: url(https://images.unsplash.com/photo-1505567745926-ba89000d255a?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=3302&q=80); background-repeat: no-repeat; background-size: cover; min-height: 100vh; overflow: hidden; }
换换背景图和h1
标签的字体颜色就可以弄出各种不同的特效了。
🌟知识总结
- mix-blend-mode — CSS 属性描述了元素的内容应该与元素的直系父元素的内容和元素的背景如何混合。