技术频道导航
HTML/CSS
.NET技术
IIS技术
PHP技术
Js/JQuery
Photoshop
Fireworks
服务器技术
操作系统
网站运营
卡卡网是专业的网站测速平台,网速测试,测试网站速度,就来卡卡网 ~
问题反馈网络日志

【DiyVM】沙田机房/香港云/回国CN2线路/AMD EPYC/39元一月5M/CN2海外云主机 24元/月BGP+CN2海外云 低至25元/月海外主机 低至$2/月

DiyVM:香港VPS惊爆价36元一月
★站长变现★特色悬浮小图标广告
5M CN2 GIA云主机 24元起
【转化好产品,官方高价收量】
一一一云主机 26元起一一一
官方高价收量,每日稳定结算

一一云主机 24元 3折起一一
AWS核心代理U充值 免注册开户
海外CN2云 低至$2.5/月
海外云低至2折 298/年
免费测试★APK免杀 谷歌过保护
官方收量CPA/CPS长期稳定

海外主机 5M CN2 低至$2/月
恒创科技 一 海外服务器 ● 高速稳定
★解决安装报毒★谷歌过保护机制
CN2 GIA/1000Mbps $111/月
超级签★免杀★加固★满意付款
全球云主机 3天试用再买

【菠萝云】香港4G内存99元,马上开通
亿人互联-津/京BGP托管租用/VPS
苹果签名/APP封装/远控免杀
10M CN2海外云VPS 53元/月
一一站长/主播好变现一一有流量就来
站长变现 特色悬浮小图标广告

实力产品变现
实力产品变现
实力产品变现
实力产品变现
实力产品变现
实力产品变现

赞助商

分类目录

赞助商

最新文章

字体单位是相对测量单位,是根据其他一些值计算的,可以动态变化。与字体相关的测量单...
stroke-width设置形状的描边粗细,如果在 HTML 中,框架是从外边缘...
本文给大家介绍10款用SVG蒙版制作的图片转场/过渡动画,并分析如何实现它们。
CSS 数据类型<filter-function>代表可以改变输入图...
CSS box-shadow 属性用于在元素的框架上添加阴影效果。你可以在同一个...
drop-shadow() 是一个CSS 过滤器函数,其将投影效果应用于输入图像...
本文给大家介绍一个SVG实现的网页气泡动画效果。 

搜索

示例分解 CSS box-shadow 与 drop-shadow 的不同

作者:admin    时间:2024-4-17 21:10:35    浏览:108

网页设计师在工作中经常使用阴影,以前常常用 PNG 图像来伪造它们,后来随着CSS技术的发展,CSS里的box-shadowdrop-shadow是两个常用的阴影属性,咋一看,两者几分相似,但实际使用时两者是不同的,本文将通过示例来分解它们的区别。

下面是一个简单的三角形制作。

 

demodownload

HTML代码

  1. <div class="caret"></div>

CSS代码

  1. .caret {
  2.   border-left: solid 70px transparent; 
  3.   border-right: solid 70px transparent; 
  4.   border-bottom: solid 70px #fff; 
  5.   height: 0; 
  6.   width: 0; 
  7. }
  8.  
  9. body {
  10.   background: #ddd;
  11.   display: flex;
  12.   height: 100vh;
  13.   justify-content: center;
  14.   align-items: center;
  15. }

让我们用它来分解两者之间的差异。

box-shadow

增加box-shadow后,看到这样。

 

demodownload

CSS代码

  1. .caret {
  2.   border-left: solid 70px transparent; 
  3.   border-right: solid 70px transparent; 
  4.   border-bottom: solid 70px #fff;
  5.   box-shadow: 0 0 30px #333;
  6.   height: 0; 
  7.   width: 0; 
  8. }
  9.  
  10. body {
  11.   background: #ddd;
  12.   display: flex;
  13.   height: 100vh;
  14.   justify-content: center;
  15.   align-items: center;
  16. }

CSS 使用盒模型,其中元素的边缘被限制为矩形。即使在元素的形状看起来不是盒子的情况下,盒子仍然存在并且被box-shadow应用。

CSS filter drop-shadow (滤镜投影)

CSS 过滤器非常棒,在元素上添加视觉滤镜,CSS能做很多我们过去必须在 Photoshop 中进行模型制作的事情。

过滤器不绑定到盒模型,这意味着三角形的轮廓被识别,而其周围的透明度被忽略,以便预期的形状接收阴影。

 

demodownload

CSS代码

  1. .caret {
  2.   border-left: solid 70px transparent; 
  3.   border-right: solid 70px transparent; 
  4.   border-bottom: solid 70px #fff;
  5.   filter: drop-shadow(0 0 30px #333);
  6.   height: 0; 
  7.   width: 0; 
  8. }
  9.  
  10. body {
  11.   background: #ddd;
  12.   display: flex;
  13.   height: 100vh;
  14.   justify-content: center;
  15.   align-items: center;
  16. }
x

决定使用哪种方法

答案完全取决于你。上面的三角形的简单示例可能看起来filter: drop-shadow()更好,但这并不是对两种方法的好处甚至可能性的公平比较。这只是它们在特定情况下不同行为的说明。

就像开发中的大多数事情一样,使用哪种方法的答案取决于你。以下是并排比较,以帮助区分两者以及何时最好选择其中之一。 

  Box Shadow Drop Shadow
规格 CSS 背景和边框模块级别 3 滤镜效果模块级别 1
浏览器支持 很好
支持扩散半径 是,作为可选的第四个值
模糊半径 计算基于像素长度 计算基于SVG滤镜的stdDeviation属性
支持嵌入阴影
表现 非硬件加速 在支持它的浏览器中进行硬件加速。如果没有它,这将是一个沉重的负担。

包起来

box-shadowfilter: drop-shadow()之间的区别实际上可以归结为 CSS 盒模型。一个看到它,另一个忽视它。两者在浏览器支持、性能等方面还存在其他差异,但两者处理盒模型的方式是关键差异。

另一个关键区别,drop-shadow()的半径分布的计算方式与box-shadow甚至与text-shadow不同,这意味着可能在box-shadow中指定的扩展半径与drop-shadow的默认扩展值不是一一对应的,因此在某些情况下两者并不是彼此相等的替换。

让我们用其他一些很好的例子来说明这一点。下面是两个有关工具提示和图标的实际示例。

示例1

 

demodownload

完整HTML代码

  1. <!DOCTYPE html>
  2. <html>
  3.  
  4. <head>
  5.   <meta charset="UTF-8">
  6.  
  7. <style>
  8. body{
  9.   background: #D5D5D5;
  10.   font-family: museo-300;
  11.   font-size: 1.5rem;
  12.   text-align: center;
  13. }
  14. .tri, .flecha {display: inline-block;margin: 15px;}
  15.  
  16. .tri {
  17. text-align: left;
  18. width: 250px;
  19. height: 100px;
  20. background: #fff;
  21. position: relative;
  22. padding: 15px;
  23. box-sizing: border-box;
  24. }
  25. .tri:after {
  26. content:'';
  27. height: 0;
  28. width: 0;
  29. border-width: 20px 20px 20px 0;
  30. border-style: solid;
  31. border-color: rgba(255,255,255,0) rgba(255,255,255,1) rgba(255,255,255,0) rgba(255,255,255,0);
  32. position: absolute;
  33. top: 15px;
  34. left: -20px;
  35. }
  36.  
  37. .flecha {
  38.   position: relative;
  39.   margin: -20px 110px 0;
  40.   width: 0;
  41.   height: 0;
  42.   border-top: 90px solid transparent;
  43.   border-right: 90px solid #FFC000;
  44.   -webkit-transform: rotate(10deg);
  45.   -moz-transform: rotate(10deg);
  46.   -ms-transform: rotate(10deg);
  47.   -o-transform: rotate(10deg);
  48. }
  49. .flecha:after {
  50.   content: "";
  51.   position: absolute;
  52.   border: 0 solid transparent;
  53.   border-top: 30px solid #FFC000;
  54.   border-radius: 200px 0 0 0;
  55.   top: -119px;
  56.   left: -98px;
  57.   width: 120px;
  58.   height: 120px;
  59.   -webkit-transform: rotate(45deg);
  60.   -moz-transform: rotate(45deg);
  61.   -ms-transform: rotate(45deg);
  62.   -o-transform: rotate(45deg);
  63. }
  64.  
  65. .drop-shadow {
  66.     filter: drop-shadow(0px 0px 10px rgba(0,0,0,.5));
  67. }
  68. .box-shadow {box-shadow: 0px 0px 10px rgba(0,0,0,.5)}
  69. </style>
  70.  
  71.  
  72. </head>
  73.  
  74. <body>
  75. <div class="tri drop-shadow">filter: drop-shadow</div>
  76. <div class="tri box-shadow">box-shadow</div>
  77. <div style="clear:both"></div>
  78. <div class="flecha drop-shadow"></div>
  79. <div class="flecha box-shadow"></div>
  80. </body>
  81.  
  82. </html>

示例2

 

demodownload

完整HTML代码

  1. <!DOCTYPE html>
  2. <html>
  3.  
  4. <head>
  5.   <meta charset="UTF-8">
  6.  
  7. <style>
  8. body{
  9. background: #ccc;
  10. }
  11. .box{
  12. margin: 40px;
  13. padding: 50px;
  14. background-color: #fff;
  15. position: relative;
  16. font-size: 24px;
  17. }
  18. .cor{
  19. position: absolute;
  20. left:-40px; 
  21. width: 0;
  22. height: 0;
  23. overflow: hidden;
  24. border: 20px solid transparent;
  25. border-right-color:#fff;
  26. }
  27. .box-shadow{
  28. box-shadow:5px 5px 10px black;
  29. }
  30. .drop-shadow{
  31. filter:drop-shadow(5px 5px 10px black);
  32. }
  33. </style>
  34.  
  35. </head>
  36.  
  37. <body translate="no">
  38.   <div class="box box-shadow">
  39. <i class="cor"></i>
  40. box-shadow
  41. </div>
  42.  
  43. <div class="box drop-shadow">
  44. <i class="cor"></i>
  45. filter:drop-shadow
  46. </div>
  47.  
  48. </body>
  49.  
  50. </html>

总结

本文详细分解了 CSS box-shadowdrop-shadow 的不同,希望本文对你有所帮助。

相关文章

标签: box-shadow  drop-shadow  
x
广告: 【限时】云主机 24元/月