教你如何用CSS修改图片颜色(css改变背景图片颜色)

yumo6669个月前 (05-03)技术文章68

看到题目是不是吓了一跳?css竟然还有这个操作?还真是第一次听说~

原理嘛,其实很简单的,用到的就是 CSS3 滤镜filter中的drop-shadow,该滤镜可以给图片非透明区域添加投影。你可以理解为下图


它实现的效果看上去就像使原来的对象离开页面,然后在页面上显示出该对象的投影。是有一点类似box-shadow,但是二者还是有显著差别的,我后面会写一篇专门的文章来比较二者的差别。

先来看一下语法:

filter:drop-shadow(水平阴影偏移距离 垂直阴影偏移距离 投射的阴影颜色 );

我们准备一张背景色是透明的图片(图片尺寸40px X 40px),

用一个div将该图片包裹住,给图片添加

filter: drop-shadow(40px 40px yellow)

这段代码,代表投射出一个和该图片一样的形状,

三个参数分别代表:

水平向右移动40px,
垂直向下移动40px,
投射出的形状颜色为黄色。

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8" />
        <title></title>
        <style type="text/css">
            .box{
                width: 40px;
                height: 40px;
                border: 1px solid red;
                margin: 200px auto;
            }
            .pic{
                filter: drop-shadow(40px 40px yellow);
            }
        </style>
    </head>
    <body>
        <div class="box">
            <img src="img/delete.png" class="pic"/>
        </div>
    </body>
</html>

效果为


接下来我们稍微更改一下原代码,将原图设置在div外部并隐藏,变色后的投影放置在div中

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8" />
        <title></title>
        <style type="text/css">
            .box{
                width: 40px;
                height: 40px;
                border: 1px solid red;
                margin: 200px auto;
                text-indent: -40px;
                overflow: hidden;
            }
            .pic{
                filter: drop-shadow(40px 0px yellow);
            }
        </style>
    </head>
    <body>
        <div class="box">
            <img src="img/delete.png" class="pic"/>
        </div>
    </body>
</html>



如果想换成其他颜色,直接更改第三个参数就Ok了~是不是很简单


相关文章

CSS常用十六进制颜色代码对照表(十六进制颜色代码原理)

我们在做网页时,经常会用到十六进制颜色代码,一个漂亮的网页,它的颜色搭配必定有讲究,下表是一些常用的颜色及十六进制颜色代码对照,记录在此,以便查阅!...

简单的一行代码,为网站开启深色模式

Darkmode.js 使用 CSS mix-blend-mode 将深色模式带入任何网站,只需将代码加入网页 </body> 之前即可,网页右下方将出现一个可切换浅色模式或深色模式的按钮...

45个颜色网站,设计师必备指南(推介几个有颜色的网站)

颜色搭配不知所措?颜色参考找不到心仪网站?来!收下这份全面的色彩网址吧!配色是设计中非常重要的部分,好的配色不仅可以让我们的设计更加出彩,还能对用户产生情感影响,相信这些网站一定能对你们有所帮助~1....

Vue进阶(七十一):webpack实现一键动态切换主题色

前言项目中用了element-ui,有切换主题色的需求。但官方的方式,有几个问题:1、需要下载整个element-ui样式css,并替换其中的css样式颜色。文件较大,下载慢且影响性能。2、只能替换e...

什么是 RGB 颜色?(什么是rgb值)

#挑战30天在头条写日记#如果您曾经听过一个人提到RGB并想知道他们在说什么,那么他们很可能在谈论颜色。RGB代表红色,绿色和蓝色,这是我们今天使用的任何交互式技术必不可少的三个组成部分。Werner...