css filter: drop-shadow() 高级阴影结果

张春  金牌会员 | 2024-12-17 23:45:09 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 842|帖子 842|积分 2526

CSS 中的阴影结果主要通过 box-shadow 和 text-shadow 实现。它们分别用于为元素的边框和文字添加阴影结果。以下是它们的具体用法和示例:
1. box-shadow:元素阴影
box-shadow 用于为块级元素添加阴影,支持多种参数控制阴影的样式。
语法
  1. box-shadow: [水平偏移] [垂直偏移] [模糊半径] [扩展半径] [颜色];
复制代码


  • 程度偏移(必选):阴影在程度方向的位移(正值向右,负值向左)。
  • 垂直偏移(必选):阴影在垂直方向的位移(正值向下,负值向上)。
  • 含糊半径(可选):控制阴影的含糊程度(值越大越含糊,默以为 0)。
  • 扩展半径(可选):控制阴影的扩展范围(正值扩展,负值紧缩)。
  • 颜色(可选):阴影的颜色(支持任何有效的颜色值,如 rgba、# 等)。
示例
  1. /* 基本阴影 */
  2. div {
  3.   box-shadow: 10px 10px 20px rgba(0, 0, 0, 0.5);
  4. }
  5. /* 内阴影 */
  6. div {
  7.   box-shadow: inset 5px 5px 10px rgba(0, 0, 0, 0.3);
  8. }
  9. /* 多重阴影 */
  10. div {
  11.   box-shadow: 5px 5px 15px rgba(0, 0, 0, 0.5), -5px -5px 10px rgba(255, 255, 255, 0.8);
  12. }
复制代码
2. text-shadow:文字阴影
text-shadow 用于为文字添加阴影结果,语法与 box-shadow 雷同,但没有扩展半径参数。
语法
  1. text-shadow: [水平偏移] [垂直偏移] [模糊半径] [颜色];
复制代码


  • 程度偏移:阴影在程度方向的位移。
  • 垂直偏移:阴影在垂直方向的位移。
  • 含糊半径(可选):控制阴影的含糊程度。
  • 颜色(可选):阴影的颜色。
示例
  1. /* 基本文字阴影 */
  2. h1 {
  3.   text-shadow: 2px 2px 5px rgba(0, 0, 0, 0.5);
  4. }
  5. /* 多重文字阴影 */
  6. h1 {
  7.   text-shadow: 2px 2px 5px rgba(0, 0, 0, 0.5), -2px -2px 5px rgba(255, 255, 255, 0.8);
  8. }
  9. /* 霓虹灯效果 */
  10. h1 {
  11.   text-shadow: 0 0 5px #ff00ff, 0 0 10px #ff00ff, 0 0 20px #ff00ff;
  12. }
复制代码
3. filter: drop-shadow() 一种高级阴影结果
filter: drop-shadow() 是 CSS 中的一种高级阴影结果,与 box-shadow 雷同,但有更机动的应用场景。它主要用于为元素(尤其是图像或透明背景元素)添加阴影结果,并能跟随元素的轮廓形状,而不仅限于矩形边框。
drop-shadow 的语法
  1. filter: drop-shadow(offset-x offset-y blur-radius color);
复制代码


  • offset-x:阴影的程度偏移量(正值向右,负值向左)。
  • offset-y:阴影的垂直偏移量(正值向下,负值向上)。
  • blur-radius:含糊半径(可选,默认值为 0,值越大越含糊)。
  • color:阴影颜色(可选,默认是元素的文本颜色)。
示例解析:filter: drop-shadow(0 0 10px #fff)


  • 0 0:阴影没有程度或垂直偏移。
  • 10px:含糊半径为 10 像素,阴影边沿柔和。
  • #fff:阴影颜色为白色。
该结果通常用于创建发光结果,尤其适用于深色背景或必要突出显示的元素。
发光按钮
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4.   <meta charset="UTF-8">
  5.   <meta name="viewport" content="width=device-width, initial-scale=1.0">
  6.   <title>Drop Shadow Example</title>
  7.   <style>
  8.     button {
  9.       padding: 10px 20px;
  10.       font-size: 18px;
  11.       color: #fff;
  12.       background-color: #000;
  13.       border: none;
  14.       border-radius: 5px;
  15.       cursor: pointer;
  16.       filter: drop-shadow(0 0 10px #fff);
  17.       transition: filter 0.3s ease;
  18.     }
  19.     button:hover {
  20.       filter: drop-shadow(0 0 20px #00f);
  21.     }
  22.   </style>
  23. </head>
  24. <body style="background-color: #333; display: flex; justify-content: center; align-items: center; height: 100vh;">
  25.   <button>Glow Button</button>
  26. </body>
  27. </html>
复制代码
发光图片
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4.   <meta charset="UTF-8">
  5.   <meta name="viewport" content="width=device-width, initial-scale=1.0">
  6.   <title>Drop Shadow Image</title>
  7.   <style>
  8.     img {
  9.       width: 200px;
  10.       filter: drop-shadow(0 0 15px #fff);
  11.       transition: filter 0.3s ease;
  12.     }
  13.     img:hover {
  14.       filter: drop-shadow(0 0 30px #0ff);
  15.     }
  16.   </style>
  17. </head>
  18. <body style="background-color: #000; display: flex; justify-content: center; align-items: center; height: 100vh;">
  19.   <img src="https://via.placeholder.com/200" alt="Glowing Image">
  20. </body>
  21. </html>
复制代码
留意事项

  • 透明地区支持:drop-shadow 会考虑元素的透明部门,而 box-shadow 不会。
  • 性能影响:filter 属性大概会对性能有轻微影响,尤其是在动画中频仍使用时。
  • 浏览器兼容性:drop-shadow 在当代浏览器(如 Chrome、Firefox、Edge、Safari)中支持良好,但在 IE 中不支持。


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

张春

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表