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

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

看到题目是不是吓了一跳?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了~是不是很简单


相关文章

生成引人注目色彩的小型Javascript脚本——randomColor

介绍randomColor是一个生成随机颜色的JavaScript脚本,对于写代码的我们来说,生成一个随机颜色或许并不复杂,但是想要生成一个比较吸引人的随机颜色可能是需要花费一番功夫的,但如果已经有人...

HTML页面精简代码只需做好这5步(html页面精简代码只需做好这5步程序)

网站打开速度慢?网站加载图片慢?网站容易卡顿?身为站长和网站用户的你有没有遇到过这种情况?没错,这些都是网站页面体积惹的祸。解决办法是通过技术手段去掉臃肿杂乱的代码,减小网页文件大小,加快网页加载速度...

菜鸟级的Obsidian样式调整(obsidian中文设置)

今天收到一位网友留言,说按照我文章《终于可以说说我的Obsidian人生管理系统了》中说的弄了一下,却达不到同样的显示效果。不知所指的是不是下图中标题的彩色文字。虽然说,每个选择Obsidian的人,...

04大学生爱编程,学习HTML网页开发教程 做程序员大神

做全栈攻城狮-每日更新原创IT编程技术及日常实用视频。主要内容:这是HTML课程的第四课,主要讲解HTML的文字标签和格式标签。在今天我们做一个属于自己的简历。上节回顾在上一节中主要讲解了HTML的标...

Canvas怎样修改线条的宽度、颜色和形状?

在Canvas中,线的默认颜色为黑色,宽度为lpx,但我们可以使用相关属性为线添加不同的样式。下面我们将从宽度、描边颜色、端点形状3方面详细讲解线条样式的设置方法。1.设置线条宽度使用lineWidt...

VS Code 1.39 发布,Web 版 VS Code 可能不远了

微软发布了 VS Code 1.39,该版本的一些关键亮点包括:Text selections displayed in minimap - 缩略图中也会展示编辑区域被选择的代码块Toggle reg...