在svg/vml或画布形状周围投下阴影

at.*_*at. 2 html5 svg vml canvas css3

在使用svg(用于IE7/8兼容性的vml)或使用html5的画布创建的形状下创建的形状下创建阴影是否容易?我正在寻找一个带阴影的箭头.

Eri*_*röm 6

这是一个显示如何获得阴影的svg示例:

  <defs>
    <filter id="dropshadow" height="130%">
      <feGaussianBlur in="SourceAlpha" stdDeviation="3"/> 
      <feOffset dx="2" dy="2" result="offsetblur"/> 
      <feMerge> 
        <feMergeNode/>
        <feMergeNode in="SourceGraphic"/> 
      </feMerge>
    </filter>
  </defs>
  <polygon points="58.263,0.056 100,41.85 58.263,83.641 30.662,83.641 62.438,51.866 0,51.866 0,31.611 62.213,31.611 30.605,0 58.263,0.056" fill="#EEEEEE" filter="url(#dropshadow)"/>
Run Code Online (Sandbox Code Playgroud)

重要的是:

  1. <filter>定义(SVG滤镜可以做很多事情不仅仅是阴影效果的)
  2. 要使用过滤器,请通过url(#id)语法过滤器通过CSS"过滤器"属性或表示属性引用它,如上例所示