《css揭秘》笔记(十三),染色效果
2020-07-18 05:19
567 查看
染色效果
染色效果,为一幅灰度图片(或是被转换为灰度模式的彩色图片)添加染色效果,可以为不同风格的额照片带来视觉上的一致性。
基于滤镜的解决方案
sepia(),降低饱和度的橙黄色染色效果,几乎像素的色相值会被收敛到35~40.
使用
saturate()滤镜可以给像素提升饱和度,具体饱和度取决于实际情况。
hue-rotate滤镜可以为每个像素的色相以指定度数进行偏移。
.box1{ filter: sepia(1) saturate(3) hue-rotate(290deg); }
<div class="box1"> <img src="./img/66.png" alt=""> </div>
上述代码的作用效果是:
混合模式解决方案
混合模式控制了上层元素的颜色与下层颜色进行混合的方式,用它来实现染色效果,需要用到的混合模式是
luminosity,这种
luminosity混合模式会保留上层元素的HSL高度信息,并从它的下层吸取色相饱和度信息。把下层元素设置成我们想要的主色调,而把待处理的图片放在上层并设置成这种混合模式,本质上就是在染色。
如果要对一个元素设置混合模式,有两个属性可以发挥作用:
min-blend-mode可以为整个元素设置混合模式,
background-blend-mode可以为每层背景单独设置混合模式。
有两种方式可以处理我们的图片:
-
第一种选择,把需要处理的图片包裹进一个容器中,并把容器的背景色设置成我们想要的主色调。
-
第二种选择,不用图片元素,而是用
<div>
元素,把这个元素第一层背景设置成要染色的图片,并把第二层背景设置我们想要的主色调。
针对第一种情况,假如这个图片是个超链接,那么它会被包裹进
<a>元素中,为
<a>元素的背景颜色设置成主色调颜色,在为图片
<img>使用混合模式就能得到染色的图片效果。
.box2{ display: inline-block; background: hsl(355, 100%, 50%); } .box2>img{ mix-blend-mode: luminosity; }
我们如果想要给混合模式的图片设置一个从单色样式变化到彩色样式的css过渡效果,可以考虑使用
background-blend-mode为图片设置混合模式后,先让过渡前的图片与我们想要的主色调的颜色混合,再让过渡后的图片与透明色混合,以此形成一个过渡效果。
.box3{ width: 220px; height: 150px; background-size: cover; background-color: hsl(355, 100%, 50%); background-blend-mode: luminosity; background-image: url(./img/66.png); transition: .5s background-color; } .box3:hover{ background-color: transparent; }
需要注意的是这种方式不够理想,图片大小会被写死,语义上这个元素不是图片,不会被读屏器读出来。
本文是《css揭秘》一书的笔记,如果侵犯到了原著作者的权益,请联系我删除。
相关文章推荐
- ((ios开发学习笔记 十三))实现九宫格效果(附带源码)
- android 开发零起步学习笔记(十三):Android 实现多页界面左右滑动切换效果
- AgoBot 僵尸网络研究笔记(十三)
- 我的OpenCV学习笔记(四):给图像加上水印效果
- Android 开发笔记 动画效果 --Animation 动画专题研究 一
- Android 学习笔记十三 通过绝对路径得到uri
- 学习笔记(01):ShaderGraph从入门到实战-干扰效果
- 机器学习实战笔记——利用KNN算法改进约会网站的配对效果
- 【android开发笔记】为Button的背景图片添加边框式样式效果
- JQuery笔记(五) 圆角表格的效果
- OllyDbg 使用笔记 (十三)
- Android笔记 之 旋转木马的音乐效果
- (笔记)电路设计(十三)之振荡电路的应用
- 《统计学习方法》笔记(十三)--EM
- ios学习笔记---用View动画仿UC浏览器菜单栏弹出效果
- java之jvm学习笔记十三(jvm基本结构)
- 安卓智慧上海学习笔记系列——禁用ViewPager页面切换效果及不自动加载下一页数据
- Mysql学习笔记十三——列的默认值
- java 设计模式学习笔记十三 observer设计者模式
- 现代OpenGL+Qt学习笔记之六:绘制可旋转、带光照效果的三维物体