共计 1070 个字符,预计需要花费 3 分钟才能阅读完成。
看到题目是不是吓了一跳?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 了~ 是不是很简略