详解CSS3 filter:drop-shadow滤镜与box-shadow区别与应用


Posted in HTML / CSS onAugust 24, 2020

要使用标准的CSS3实现某元素的投影效果,有两个套路,第一个就是使用常见的box-shadow, 第二个就是使用CSS3的filter阴影滤镜drop-shadow,那这两个阴影实现有什么具体的差异呢?

一、兼容性不一

CSS3 box-shadow从IE9浏览器开始就支持了,兼容性如下截图:

详解CSS3 filter:drop-shadow滤镜与box-shadow区别与应用

filter中的drop-shadowIE13才开始支持,移动端Android4.4才开始支持。兼容性如下图:

详解CSS3 filter:drop-shadow滤镜与box-shadow区别与应用

二、同样的参数值,表现效果有差异

filter中的drop-shadow语法如下:

filter: drop-shadow(x偏移, y偏移, 模糊大小, 色值);

filter:drop-shadow(5px 5px 10px black)

表示右下5像素偏移,10像素模糊的黑色阴影。眼见为实,看下面的图片示意。

详解CSS3 filter:drop-shadow滤镜与box-shadow区别与应用

但是,如果使用同样参数值的box-shadow,例如:

box-shadow: 5px 5px 10px black;

会发现,box-shadow的阴影距离更小,色值要更深:

详解CSS3 filter:drop-shadow滤镜与box-shadow区别与应用

三、drop-shadow没有内阴影效果

box-shadow支持inset内阴影,如:

box-shadow: inset 5px 5px 10px black;

但是,drop-shadow却没有。

四、阴影 vs 盒阴影

drop-shadow有一个很厉害的特性,也就这一个特性,让其以后有足够的机会大放异彩!那就是,drop-shadow才是真正意义上的投影,而box-shadow只是盒阴影而已。

什么意思呢?

下面我们用CSS border写一个虚线框,例如:

border: 10px dashed #fa608d;
    height: 50px;
    width: 50px;

详解CSS3 filter:drop-shadow滤镜与box-shadow区别与应用

然后,我们分别应用box-shadowdrop-shadow滤镜:

box-shadow: 5px 5px 10px black;
 filter: drop-shadow(5px 5px 10px black);

box-shadow:

详解CSS3 filter:drop-shadow滤镜与box-shadow区别与应用

filter:drop-shadow:

详解CSS3 filter:drop-shadow滤镜与box-shadow区别与应用

box-shadow顾名思意“盒阴影”,只是盒子的阴影;你想啊,这盒子中间明明是透明的,结果,阴影的时候,居然光线没有穿透;但是drop-shadow就符合真实世界的投影,非透明的颜色,我就有投影;透明部分,光线穿过,没投影,而什么盒子不盒子的,跟我没有任何关系。

drop-shadow不仅可以穿透代码构建的元素的透明部分,PNG图片的透明部分也是可以穿透的,如下图:

详解CSS3 filter:drop-shadow滤镜与box-shadow区别与应用

六、drop-shadow的实际应用

我们实现带有箭头指向的浮层面板的时候,考虑到兼容性,三角基本上都是使用border绘制的,没法box-shadow,但是,矩形部分设计师希望是有阴影的,

箭头没有阴影,蒙混过关。现在,有了drop-shadow,阴影就真的变成了阴影了。

CSS代码:
.box {
    margin: 40px; padding: 50px;
    background-color: #fff;
    position: relative;
    font-size: 24px;
}
.cor {
    position: absolute;
    left: -40px;
    widtd: 0; height: 0;
    overflow: hidden;
    border: 20px solid transparent;
    border-right-color: #fff;
}
.box-shadow {
    box-shadow: 5px 5px 10px black;
}
.drop-shadow {
    filter: drop-shadow(5px 5px 10px black);
}
HTML代码:
<div class="box box-shadow">
    <i class="cor"></i>
    box-shadow
</div>
<div class="box drop-shadow">
    <i class="cor"></i>
    filter: drop-shadow
</div>

详解CSS3 filter:drop-shadow滤镜与box-shadow区别与应用

到此这篇关于详解CSS3 filter:drop-shadow滤镜与box-shadow区别与应用的文章就介绍到这了,更多相关CSS3 filter:drop-shadow与box-shadow内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章,希望大家以后多多支持三水点靠木!

HTML / CSS 相关文章推荐
CSS3 透明色 RGBA使用介绍
Aug 06 HTML / CSS
使用CSS3美化HTML表单的技巧演示
May 17 HTML / CSS
Css3新特性应用之形状总结
Dec 08 HTML / CSS
CSS3实现点击放大的动画实例代码
Feb 27 HTML / CSS
canvas实现图片马赛克的示例代码
Mar 26 HTML / CSS
HTML5的结构和语义(2):结构
Oct 17 HTML / CSS
HTML5之SVG 2D入门1—SVG(可缩放矢量图形)概述
Jan 30 HTML / CSS
基于html5 DeviceOrientation 实现微信摇一摇功能
Sep 25 HTML / CSS
关于HTML5 Placeholder新标签低版本浏览器下不兼容的问题分析及解决办法
Jan 27 HTML / CSS
基于zepto的插件之移动端无缝向上滚动并上下触摸滑动实例代码
Dec 20 HTML / CSS
详解html2canvas截图不能截取圆角图片的解决方案
Jan 30 HTML / CSS
解析CSS 提取图片主题色功能(小技巧)
May 12 HTML / CSS
css3实现动画的三种方式
Aug 24 #HTML / CSS
使用CSS3实现字体颜色渐变的实现
Aug 10 #HTML / CSS
CSS3实现线性渐变用法示例代码详解
Aug 07 #HTML / CSS
CSS3 input框的实现代码类似Google登录的动画效果
Aug 04 #HTML / CSS
纯CSS3+DIV实现小三角形边框效果的示例代码
Aug 03 #HTML / CSS
纯CSS3实现鼠标滑过按钮动画第二节
Jul 16 #HTML / CSS
css3实现小箭头各种图形效果
Jul 08 #HTML / CSS
You might like
snoopy 强大的PHP采集类使用实例代码
2010/12/09 PHP
自写的利用PDO对mysql数据库增删改查操作类
2018/02/19 PHP
PHP进阶学习之反射基本概念与用法分析
2019/06/18 PHP
表单项的name命名为submit、reset引起的问题
2007/12/22 Javascript
JSQL  一个 web DB 的封装
2010/05/05 Javascript
浅析javascript闭包 实例分析
2010/12/25 Javascript
Jquery颜色选择器ColorPicker实现代码
2012/11/14 Javascript
JavaScript在XHTML中的用法详解
2013/04/11 Javascript
jquery插件开发之实现google+圈子选择功能
2014/03/10 Javascript
jquery实现带缩略图的可定制高度画廊效果(5种)
2015/08/28 Javascript
js数组常见操作及数组与字符串相互转化实例详解
2015/11/10 Javascript
nodejs入门教程三:调用内部和外部方法示例
2017/04/24 NodeJs
解决vue 引入子组件报错的问题
2018/09/06 Javascript
vue-cli 3 全局过滤器的实例代码详解
2019/06/03 Javascript
JS操作Fckeditor的一些常用方法(获取、插入等)
2020/02/19 Javascript
Python语言编写电脑时间自动同步小工具
2013/03/08 Python
老生常谈python之鸭子类和多态
2017/06/13 Python
python urllib urlopen()对象方法/代理的补充说明
2017/06/29 Python
Python应用领域和就业形势分析总结
2019/05/14 Python
python函数声明和调用定义及原理详解
2019/12/02 Python
tensorflow使用L2 regularization正则化修正overfitting过拟合方式
2020/05/22 Python
Python爬虫之App爬虫视频下载的实现
2020/12/08 Python
Python 实现进度条的六种方式
2021/01/06 Python
python绘制汉诺塔
2021/03/01 Python
美国在线医疗分销商:MedEx Supply
2020/02/04 全球购物
古驰英国官网:GUCCI英国
2020/03/07 全球购物
Linux管理员面试题 Linux admin interview questions
2014/11/01 面试题
薪酬专员岗位职责
2014/02/18 职场文书
节能环保家庭事迹材料
2014/08/27 职场文书
2014党委书记四风问题对照检查材料思想汇报
2014/09/22 职场文书
党的群众路线查摆剖析材料
2014/10/10 职场文书
2015年党支部书记工作总结
2015/05/21 职场文书
大学毕业谢师宴致辞
2015/07/27 职场文书
停车场管理制度范本
2015/08/05 职场文书
企业廉洁教育心得体会
2016/01/20 职场文书
OpenCV-Python实现人脸美白算法的实例
2021/06/11 Python