详解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 相关文章推荐
浅析rem和em和px vh vw和% 移动端长度单位
Apr 28 HTML / CSS
CSS3的column-fill属性对齐列内容高度的用法详解
Jul 01 HTML / CSS
css3 伪类选择器快速复习小结
Sep 10 HTML / CSS
html5+CSS3+JS实现七夕言情功能代码
Aug 28 HTML / CSS
HTML 5 input placeholder 属性如何完美兼任ie
May 12 HTML / CSS
详解使用HTML5 Canvas创建动态粒子网格动画
Dec 14 HTML / CSS
浅谈html5 video 移动端填坑记
Jan 15 HTML / CSS
关于iframe跨域使用postMessage的实现
Oct 29 HTML / CSS
浅谈Html5页面打开app的一些思考
Mar 30 HTML / CSS
HTML里显示pdf、word、xls、ppt的方法示例
Apr 14 HTML / CSS
AmazeUI 手机版页面的顶部导航条Header与侧边导航栏offCanvas的示例代码
Aug 19 HTML / CSS
html+css实现赛博朋克风格按钮
May 26 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
PHP 上传文件大小限制
2009/07/05 PHP
PHP crypt()函数的用法讲解
2019/02/15 PHP
开发 Internet Explorer 右键功能表(ContextMenu)
2013/07/03 Javascript
删除Javascript Object中间的key
2014/11/18 Javascript
JavaScript获取表单enctype属性的方法
2015/04/02 Javascript
jQuery插件Zclip实现完美兼容个浏览器点击复制内容到剪贴板
2015/04/30 Javascript
浅谈下拉菜单中的Option对象
2015/05/10 Javascript
使用vue实现点击按钮滑出面板的实现代码
2017/01/10 Javascript
浏览器调试动态js脚本的方法(图解)
2018/01/19 Javascript
解决vue打包之后静态资源图片失效的问题
2018/02/21 Javascript
vue 1.0 结合animate.css定义动画效果
2018/07/11 Javascript
uni-app使用countdown插件实现倒计时
2020/11/01 Javascript
Python enumerate遍历数组示例应用
2008/09/06 Python
python使用三角迭代计算圆周率PI的方法
2015/03/20 Python
python字典的常用操作方法小结
2016/05/16 Python
Python3之文件读写操作的实例讲解
2018/01/23 Python
python 文件查找及内容匹配方法
2018/10/25 Python
python numpy实现多次循环读取文件 等间隔过滤数据示例
2020/03/14 Python
20行Python代码实现视频字符化功能
2020/04/13 Python
基于python模拟bfs和dfs代码实例
2020/11/19 Python
python Scrapy框架原理解析
2021/01/04 Python
css3教程之倾斜页面
2014/01/27 HTML / CSS
伦敦一家西班牙童装精品店:La Coqueta
2018/02/02 全球购物
static全局变量与普通的全局变量有什么区别
2014/05/27 面试题
中专药剂专业应届毕的自我评价
2013/12/27 职场文书
公司人力资源的自我评价
2014/01/02 职场文书
上课看小说检讨书
2014/02/22 职场文书
学习决心书
2014/03/11 职场文书
平安建设工作方案
2014/06/02 职场文书
2014年九一八事变演讲稿
2014/09/14 职场文书
python爬虫selenium模块详解
2021/03/30 Python
ORACLE数据库对long类型字段进行模糊匹配的解决思路
2021/04/07 Oracle
apache基于端口创建虚拟主机的示例
2021/04/24 Servers
Windows环境下实现批量执行Sql文件
2021/10/05 SQL Server
聊聊Lombok中的@Builder注解使用教程
2021/11/17 Java/Android
SQL中的连接查询详解
2022/06/21 SQL Server