SVG制作内阴影

1、在css中可以通过 box-shadow: inset 0 0 8px #f00 的方式去设置内阴影
2、在svg中应该怎么实现呢?这就不得不说svg中的滤镜功能,这里只谈内阴影的制作,至于其他的滤镜请自行百度搜索学习。

下面直接看代码:

<svg>
    <filter id="innershadow" x0="-50%" y0="-50%" width="200%" height="200%">
        <feComponentTransfer in="SourceAlpha">
            <feFuncA type="table" tableValues="1 0" />
        </feComponentTransfer>
        <feGaussianBlur stdDeviation="4" />
        <feOffset dx="0" dy="0" result="offsetblur" />
        <feFlood floodColor="#7059ef" floodOpacity="1" result="color" />
        <feComposite in2="offsetblur" operator="in" />
        <feComposite in2="SourceAlpha" operator="in" />
        <feMerge>
            <feMergeNode in="SourceGraphic" />
            <feMergeNode />
        </feMerge>
    </filter>
</svg>
//使用方式
<polygon id="leftpoly" filter="url(#innershadow)" className="polygon" />

详细的svg介绍可以看这里:
https://developer.mozilla.org/zh-CN/docs/Web/SVG/Attribute

上面的代码就是一个完整的svg内阴影滤镜,下面对部分做一下简单的介绍

feComponentTransfer 调整亮度、对比度、色彩平衡 包括<feFuncR>, <feFuncB>, <feFuncG>, and <feFuncA>.

feGaussianBlur 高斯模糊

feOffset 整个阴影的偏移

feFlood 指定颜色和透明度

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值