html的图片滤镜效果,使用 CSS 实现图片的滤镜效果
它如何工作的
使用一个或多个较新的CSS属性(background-blend-mode, mix-blend-mode, 或者 filter)可以让我们惊艳地处理单个图片效果。
这是用于CSS图像效果演示的灯塔的图像,这是未编辑过的背景图像,后面我们使用 CSS 对其进行图像效果演示。
混合: 在大多数这些效果中,单个 background-image url 可以重复一次或多次使用,并使用CSS混合模式(multiply, overlay, screen, difference,等的)与其自身混合。
滤镜: 在其中的一些效果中,CSS filter(滤镜) 属性被用于进一步精细化的输出。像 grayscale()(灰度), brightness()(亮度), 和 contrast()(对比度) 这样的函数可以对图片效果进行调整,以便使你使用的图像获得更好的效果。 CSS Filter 具体效果可以查看这篇文章。
实现: 你可以在 CodePen 查看效果的实现,或向下滚动到实现部分。
改进: 这些效果可以被进一步增强,你可以自己尝试一下。
可靠性: 默认情况下,原图显示无任何影响。当 CSS @supports 检测到支持所需的 CSS 属性和效果值时,那么效果将被启用。这是一个相当精确的,本地的和轻量级的功能检测。
下载: 这些效果的完整 CSS 库可以下载,未压缩版(12.8kb)或 压缩版(8.7kb)。使用 gzip 压缩后,整个图像效果库小于1300字节。
GitHub:该项目可在 GitHub 上获得。
实现
在每个 CSS / SCSS 片段中,将 photo.jpg 替换为你自己使用的图片URL。
示例HTML
在这个实现中,
标签只是用作占位符,示例中使用 CSS 的 visibility: hidden; 是为了为效果设置正确的宽高比,例如示例辅助的 CSS:
.preview {
margin: 10px 20px 20px;
}
.preview img{
width: 100%;
vertical-align: top!important;
margin: 0!important;
visibility: hidden!important;
opacity: 0;
}
实际使用时建议设置 width,height 和 alt 属性值。
示例中使用的 SCSS ,你可以将其转化为 CSS 。你也可以在 CodePen 中尝试这些效果。
Pencil(铅笔画效果)
See the Pen pencil(铅笔画效果) by feiwen8772 (@feiwen8772) on CodePen.0
SCSS 转换后的 CSS:
.pencil-effect {
background-image: url(photo.jpg);
background-size: cover;
background-position: center;
}
@supports (filter: invert(1)) and (background-blend-mode: difference) {
.pencil-effect {
background-image: url(photo.jpg), url(photo.jpg);
background-blend-mode: difference;
background-position: calc(50% - 1px) calc(50% - 1px), calc(50% + 1px) calc(50% + 1px);
filter: brightness(2) invert(1) grayscale(1);
box-shadow: inset 0 0 0 1px black;
}
}
Watercolor(水彩画效果)
See the Pen watercolor(水彩画效果) by feiwen8772 (@feiwen8772) on CodePen.dark
SCSS 转换后的 CSS:
.watercolor-effect {
background-image: url(photo.jpg);
background-size: cover;
background-position: center;
}
@supports (filter: blur(2px)) and (mix-blend-mode: multiply) {
.watercolor-effect {
position: relative;
overflow: hidden;
}
.watercolor-effect:before, .watercolor-effect:after {
display: block;
content: "";
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
background-size: cover;
}
.watercolor-effect:before {
background-image: url(photo.jpg), url(photo.jpg);
background-blend-mode: difference;
background-position: calc(50% - 1px) calc(50% - 1px), calc(50% + 1px) calc(50% + 1px);
filter: brightness(2) invert(1) grayscale(1);
box-shadow: inset 0 0 0 1px black;
}
.watercolor-effect:after {
background-image: url(photo.jpg);
background-position: center;
mix-blend-mode: multiply;
filter: brightness(1.3) blur(2px) contrast(2);
}
}
Emboss(浮雕画效果)
See the Pen Emboss(浮雕画效果) by feiwen8772 (@feiwen8772) on CodePen.dark
SCSS 转换后的 CSS:
.emboss-effect {
background-image: url(photo.jpg);
background-size: cover;
background-position: center;
}
@supports (filter: invert(1)) and (background-blend-mode: difference, screen) {
.emboss-effect {
background-image: url(photo.jpg), url(photo.jpg), url(photo.jpg);
background-blend-mode: difference, screen;
background-position: calc(50% - 1px) calc(50% - 1px), calc(50% + 1px) calc(50% + 1px), center;
filter: brightness(2) invert(1) grayscale(1);
}
}
Colored Pencil(彩笔画效果)
SCSS 转换后的 CSS:
.colored-pencil-effect {
background-image: url(photo.jpg);
background-size: cover;
background-position: center;
}
@supports (filter: invert(1)) and (mix-blend-mode: color) {
.colored-pencil-effect {
position: relative;
}
.colored-pencil-effect:before, .colored-pencil-effect:after {
display: block;
content: "";
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
background-size: cover;
box-shadow: inset 0 0 0 1px black;
}
.colored-pencil-effect:before {
background-image: url(photo.jpg), url(photo.jpg);
background-blend-mode: difference;
background-position: calc(50% - 1px) calc(50% - 1px), calc(50% + 1px) calc(50% + 1px);
filter: brightness(2) invert(1) grayscale(1);
}
.colored-pencil-effect:after {
background: inherit;
mix-blend-mode: color;
}
}
Chalkboard(粉笔画效果)
See the Pen Chalkboard(粉笔画效果) by feiwen8772 (@feiwen8772) on CodePen.dark
SCSS 转换后的 CSS:
.chalkboard-effect {
background-image: url(photo.jpg);
background-size: cover;
background-position: center;
}
@supports (filter: grayscale(1)) and (background-blend-mode: difference) {
.chalkboard-effect {
background-image: url(photo.jpg), url(photo.jpg);
background-blend-mode: difference;
background-position: calc(50% - 1px) calc(50% - 1px), calc(50% + 1px) calc(50% + 1px);
filter: brightness(1.5) grayscale(1);
}
}
Colored Chalkboard(彩色粉笔画效果)
SCSS 转换后的 CSS:
.colored-chalkboard-effect {
background-image: url(photo.jpg);
background-size: cover;
background-position: center;
}
@supports (filter: brightness(2)) and (background-blend-mode: color, difference) {
.colored-chalkboard-effect {
background-image: url(photo.jpg), url(photo.jpg), url(photo.jpg);
background-size: cover;
background-position: calc(50% - 1px) calc(50% - 1px), calc(50% + 1px) calc(50% + 1px), center;
background-blend-mode: color, difference;
filter: brightness(2);
}
}
Airbrush(喷绘效果)
See the Pen Airbrush(喷绘效果) by feiwen8772 (@feiwen8772) on CodePen.dark
SCSS 转换后的 CSS:
.airbrush-effect {
background-image: url(photo.jpg);
background-size: cover;
background-position: center;
}
@supports (filter: blur(5px) contrast(5)) and (mix-blend-mode: multiply) {
.airbrush-effect {
position: relative;
overflow: hidden;
}
.airbrush-effect:after {
display: block;
content: '';
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: inherit;
filter: brightness(1.5) saturate(100) blur(5px) contrast(5);
mix-blend-mode: multiply;
}
}
Hallucination (幻影效果)
SCSS 转换后的 CSS:
.hallucination-effect {
background-image: url(photo.jpg);
background-size: cover;
background-position: center;
}
@supports (mix-blend-mode: multiply) {
.hallucination-effect {
position: relative;
overflow: hidden;
background-color: magenta;
background-blend-mode: screen;
}
.hallucination-effect:before, .hallucination-effect:after {
display: block;
content: "";
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: inherit;
mix-blend-mode: multiply;
transform: scale(1.05);
}
.hallucination-effect:before {
background-color: yellow;
background-blend-mode: screen;
transform-origin: top left;
}
.hallucination-effect:after {
background-color: cyan;
background-blend-mode: screen;
transform-origin: bottom right;
}
}
Flannel(法兰绒巾效果)
See the Pen Flannel(法兰绒巾效果) by feiwen8772 (@feiwen8772) on CodePen.dark
SCSS 转换后的 CSS:
.flannel-effect {
background-image: url(photo.jpg);
background-size: cover;
background-position: center;
}
@supports (background-blend-mode: overlay) {
.flannel-effect {
background-image: url(photo.jpg), url(photo.jpg), url(photo.jpg);
background-position: center;
background-size: 100%, 100000% 100%, 100% 100000%;
background-blend-mode: overlay;
}
}
Low Ink (horizontal) (缺墨打印效果-水平)
SCSS 转换后的 CSS:
.low-ink-x-effect {
background-image: url(photo.jpg);
background-size: cover;
background-position: center;
}
@supports (background-blend-mode: screen, overlay) {
.low-ink-x-effect {
background-image: url(photo.jpg), url(photo.jpg), url(photo.jpg);
background-size: 100% 100%, 10000% 100%;
background-blend-mode: screen, overlay;
}
}
Low Ink (vertical) (缺墨打印效果-垂直)
SCSS 转换后的 CSS:
.low-ink-y-effect {
background-image: url(photo.jpg);
background-size: cover;
background-position: center;
}
@supports (background-blend-mode: screen, overlay) {
.low-ink-y-effect {
background-image: url(photo.jpg), url(photo.jpg), url(photo.jpg);
background-size: 100% 100%, 100% 1000%;
background-blend-mode: screen, overlay;
}
}
Collage(拼贴画效果)
See the Pen Collage(拼贴画效果) by feiwen8772 (@feiwen8772) on CodePen.dark
SCSS 转换后的 CSS:
.collage-effect {
background-image: url(photo.jpg);
background-size: cover;
background-position: center;
}
@supports (background-blend-mode: overlay) {
.collage-effect {
background-image: url(photo.jpg), url(photo.jpg), url(photo.jpg), url(photo.jpg), url(photo.jpg), url(photo.jpg);
background-size: 200%, 80%, 60%, 50%, 40%, 100%;
background-position: 50%, 80%, 30%, 0;
background-blend-mode: overlay;
background-repeat: no-repeat;
}
}
Mosaic(马赛克效果)
See the Pen Mosaic(马赛克效果) by feiwen8772 (@feiwen8772) on CodePen.dark
SCSS 转换后的 CSS:
.mosaic-effect {
background-image: url(photo.jpg), url(photo.jpg);
background-size: cover, 5% 5%;
background-position: center;
background-blend-mode: overlay;
}
Photo Border(照片框效果)
SCSS 转换后的 CSS:
.photo-border-effect {
background-image: url(photo.jpg), url(photo.jpg);
background-position: center;
background-size: 60%, 20%;
background-repeat: no-repeat, repeat;
}
Infrared(红外线效果)
See the Pen Infrared(红外线效果) by feiwen8772 (@feiwen8772) on CodePen.dark
SCSS 转换后的 CSS:
.infrared-effect {
background-image: url(photo.jpg);
background-size: cover;
background-position: center;
filter: hue-rotate(180deg) saturate(2);
}
Night Vision(红外夜视效果)
SCSS 转换后的 CSS:
.night-vision-effect {
background-image: url(photo.jpg), radial-gradient(#0F0, #000), repeating-linear-gradient(transparent 0, rgba(0, 0, 0, 0.1) 2.5px, transparent 5px);
background-size: cover;
background-position: center;
background-blend-mode: overlay;
}
Warhol(Warhol效果)
See the Pen Warhol(Warhol效果) by feiwen8772 (@feiwen8772) on CodePen.dark
SCSS 转换后的 CSS:
.warhol-effect {
background-image: url(photo.jpg);
background-size: cover;
background-position: center;
}
@supports (background-blend-mode: color) {
.warhol-effect {
background-image: linear-gradient(#14EBFF 0, #14EBFF 50%, #FFFF70 50%, #FFFF70 100%), linear-gradient(#FF85DA 0, #FF85DA 50%, #AAA 50%, #AAA 100%), url(photo.jpg);
background-size: 50% 100%, 50% 100%, 50% 50%;
background-position: top left, top right;
background-repeat: no-repeat, no-repeat, repeat;
background-blend-mode: color;
}
}
Selective color(Selective color效果)
SCSS 转换后的 CSS:
.selective-color-effect {
background-image: url(photo.jpg);
background-size: cover;
background-position: center;
}
@supports (filter: brightness(3)) and (mix-blend-mode: color) {
.selective-color-effect {
position: relative;
}
.selective-color-effect:before, .selective-color-effect:after {
display: block;
content: "";
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: inherit;
background-color: red;
background-blend-mode: screen;
mix-blend-mode: color;
filter: brightness(3);
}
}
Mirror (horizontal)(镜像效果-水平)
SCSS 转换后的 CSS:
.mirror-x-effect {
background-image: url(photo.jpg);
background-size: cover;
background-position: center;
}
@supports (transform: scaleX(-1)) {
.mirror-x-effect {
position: relative;
}
.mirror-x-effect:before, .mirror-x-effect:after {
display: block;
content: "";
position: absolute;
top: 0;
bottom: 0;
background: inherit;
}
.mirror-x-effect:before {
left: 0;
right: 50%;
transform: scaleX(-1);
}
.mirror-x-effect:after {
left: 50%;
right: 0;
}
}
Mirror (vertical)(镜像效果-垂直)
SCSS 转换后的 CSS:
.mirror-y-effect {
background-image: url(photo.jpg);
background-size: cover;
background-position: center;
}
@supports (transform: scaleY(-1)) {
.mirror-y-effect {
position: relative;
}
.mirror-y-effect:before, .mirror-y-effect:after {
display: block;
content: "";
position: absolute;
left: 0;
right: 0;
background: inherit;
}
.mirror-y-effect:before {
top: 0;
bottom: 50%;
transform: scaleY(-1);
}
.mirror-y-effect:after {
top: 50%;
bottom: 0;
}
}
更多相关有趣的CSS
html的图片滤镜效果,使用 CSS 实现图片的滤镜效果相关推荐
- html悬浮的图片居中,HTML/CSS:图片居中(水平居中和垂直居中)
css图片水平居中 1.利用margin: 0 auto实现图片水平居中 利用margin: 0 auto实现图片居中就是在图片上加上css样式margin: 0 auto 如下: 2.利用文本的水平 ...
- css图片过大,CSS解决图片过大撑破DIV的方法
一.防止图片撑破DIV方法一 原始处理方法是将要展示的图片进行处理.比如你的DIV宽度为500px(像素),那你上传的图片或放入网页的图片宽度就要小于500px,也就是你图片需要图片软件剪切.等比例缩 ...
- html文字图片同一行,CSS控制图片和文字在同一行显示且对齐的3种方法
CSS控制图片和文字在同一行显示且对齐的3种方法 在 HTML 代码中,有时会需要在文字旁边加上一个图标. 默认情况,是图片置顶对齐,文字置底对齐,所以通常图片高,文字低,不能水平居中对齐. 常见欢思 ...
- html中图片太大了,css背景图片太大的坏处与解决方法
在制作网页的过程中,有时候我们为了页面的个性.漂亮,会给通过CSS给网页设置一个很大的背景图片,可是背景图片太大的话不但会给我们的访客带来一些烦恼,还会对搜索引擎不友好,导致排名的降低,实在是得不偿失 ...
- html背景图片的隐藏,CSS隐藏图片背景上方的文字内容
使用CSS样式隐藏图片作为背景图片上方的文字内容 此类问题我们常见于LOGO处使用,我们想让图片作为背景,而图片上方放A链接文字内容,但html锚文本功能仍然正常也能鼠标点击使用. 一.用到的CSS单 ...
- html 设置图片左对齐,CSS设置图片的对齐
CSS设置图片的对齐 横向对齐方式 图片的水平对齐方式和文字的水平对齐方式基本相同,分别是左.中.右三种方式,不同的是,图片的水平对齐通常不能直接通过设置图片的text-align属性设置,而是,通过 ...
- html如何让文字图片同高,css里图片和文字如何等高
css里设置图片和文字等高的方法:1.添加css属性"vertical-align:middle;":2.将图片和文字分别套上一个div,然后利用margin属性实现图片和文字等高 ...
- html删除图片效果,html+css实现图片右上角加删除叉、图片删除按钮
这篇文章主要介绍了html+css 实现图片右上角加删除叉.图片删除按钮,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下 为了纪录下,以后可能用到 ...
- html5如何将图片堆叠代码,css实现图片堆叠效果的方法介绍
css实现图片堆叠效果的方法介绍 发布时间:2020-04-03 13:49:30 来源:亿速云 阅读:51 作者:小新 今天小编给大家分享的是css实现图片堆叠效果的方法介绍,很多人都不太了解,今天 ...
- html实现图片切割,利用CSS切割图片技术来动态显示图片
利用CSS切割图片来切换图片 .img2 { position:absolute; clip:rect(0px 20px 20px 0px); } .img1 { position:absolute; ...
最新文章
- 写给云栖社区在做网站的朋友一点干货
- 想获得50亿专项激励?关于穿山甲新星助推计划你必须了解的几件事
- GSMA公布2016年亚洲移动大奖提名名单
- 支付宝支付 第三集:搭建项目及测试(含代码)
- puppet-dashboard 安装(草稿)
- mysql服务等待应答超时_MySQL-Communications link failure异常分析及解决方法
- bzoj1412[ZJOI2009]狼和羊的故事
- outlook 发送邮件!
- 换根dp求树所有节点的最小深度
- 倍福嵌入式控制器PLC各型号简介
- Django在根据models生成数据库表时报 __init__() missing 1 required positional argument 'on_d...
- 长沙学院计算机系课程表,长沙交通学院研究生200—200学年度第学期课程表.doc...
- Python+matplotlib绘制散点图模拟心型图案
- 用程序去掉文件和文件夹的只读属性
- Display yuv formatted video by shader
- 网页脚本基本java语法_JSP学习(一)JSP基础语法
- java hex2bin_hex2bin / bin2hex / pack / unpack 的理解及应用
- Windows勒索病毒防范、解决方法全攻略
- Android集成华为Push及注意事项
- 电话交换机原理(企业运用方案)
热门文章
- 手机解锁方法:8个顶级的 Android 手机解锁软件
- Wise Owl Says… by Brian O'Kane
- 交换机、光纤收发器+光纤终端盒、接线端子的通俗理解
- 各种ADSL路由器端口映射设置
- 避免回调地狱的解决方案 async/await:用同步的方式去写异步代码
- 深入研读“ReDet: A Rotation-equivariant Detector for Aerial Object Detection”学习笔记
- linux 文件系统简析
- 业务应用系统运维服务
- Python 搜索、排序、复杂度分析
- 前端面试题个人汇总(精简知识要点 总结话术) / 前端小知识 保持学习 (年终奖年终奖 心心念念年终奖)