SVG feColorMatrix doesn't work in safari

给你一囗甜甜゛ 提交于 2019-12-07 10:39:06

问题


I have a fairly simple setup where I want to alter the color of the svg image by using an svg filter:

<svg style="height: 0;">
  <filter id="hover" color-interpolation-filters="sRGB"
          x="0" y="0" height="100%" width="100%">
    <feColorMatrix type="matrix"
                   values="
                           0 0 0 0 0
                           0 0 0 0 0.68
                           0 0 0 0 0.94
                           0 0 0 1 0
                           "
                   />
  </filter>
</svg>

<img style="-webkit-filter: url('#hover'); filter: url('#hover');" 
     src="https://upload.wikimedia.org/wikipedia/commons/8/81/Wikimedia-logo.svg" alt="" />

Please see the attached codepen for details.

It's working in firefox and chrome, but I can't seem to find the problem in safari. According to caniuse, support should be ok.


回答1:


So, this is going to seem silly - but it's the initial linebreak in your filter that's throwing it off. Correcting it to:

<feColorMatrix type="matrix"
               values="0 0 0 0 0
                       0 0 0 0 0.68
                       0 0 0 0 0.94
                       0 0 0 1 0
                       "
               />

... works perfectly. (Incidentally, at one point, IE couldn't handle linebreaks in the values array in any position - you had to put them all on one line.)



来源:https://stackoverflow.com/questions/39332798/svg-fecolormatrix-doesnt-work-in-safari

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!