【问题标题】:Not able to get an responsive SVG image mask to work in Firefox无法让响应式 SVG 图像蒙版在 Firefox 中工作
【发布时间】:2016-04-26 10:55:28
【问题描述】:

我尝试使用 SVG 屏蔽 Firefox 中的图像。图片是响应式的,所以遮罩也应该是响应式的。

使用简单的 SVG 圆形遮罩和 maskUnits="objectBoundingBox"maskContentUnits="objectBoundingBox" 属性,SVG 遮罩可以按预期工作。看到这个fiddle

但是当我从 Illustrator 导出路径并以与简单 SVG 圆形蒙版相同的方式包含它时,它不起作用。 当我删除 maskUnits="objectBoundingBox"maskContentUnits="objectBoundingBox" 属性时,图像被屏蔽,但没有响应。看到这个fiddle

我尝试包含 Illustrator 使用的 viewbox 属性,以恢复响应能力,但这样做不会。

有谁知道如何让响应式 SVG 图像蒙版工作?

我在 OSX 上使用当前的 Firefox 45.0.2。谢谢!

【问题讨论】:

    标签: css firefox svg responsive


    【解决方案1】:

    请试试这个 fiddle,虽然我只在平方 SVG(高度=宽度)上测试了我的计算器,但是当我在你的案例中尝试最高尺寸值 800px 时,它运行良好。 p>

    HTML:

    <svg height="0" viewBox="0 0 800 500">
      <mask id="m1" maskUnits="objectBoundingBox" maskContentUnits="objectBoundingBox">
        <path d="M0,0.05C0.03375,0.03,0.08625,0.00625,0.15125,0.0025,0.25375-0.0025,0.27375,0.04625,0.3775,0.04875c0.12125,0.0025,0.15-0.065,0.25375-0.0425,0.06125,0.0125,0.0675,0.04125,0.12625,0.055C0.84625,0.08375,0.9325,0.0425,0.99875,0V0.625L0,0.625V0.05Z" style="fill:white"/>
      </mask>
    </svg>
    <img src="https://placebear.com/800/500" id="test" alt="">
    

    CSS:

    #test { width: 100%; height: auto; mask: url(#m1); }
    

    如果您有任何问题,请告诉我。

    【讨论】:

    • 谢谢你,ProllyGeek。这个测试用例适用于您的计算器。但是当我使用更复杂的掩码(SVG 路径中有一些 NaN)时它不起作用,即使我使用平方 SVG。这是original mask,有没有机会通过计算器把它带出来?
    • @Thomasz 很有趣,我会处理这个错误并修复它,我希望,也许我应该将代码上传到 github,并让人们帮助解决它。
    • 你有什么消息吗?我认为当你把它带到工作中时,你会用你的计算器拯救生命!感谢您的所有努力。
    • @Thomasz 这是非常忙碌的一周,但我会在周末继续工作,不用担心:) 干杯。
    • 这方面有更新吗?我想我的计算器可能也有一个太复杂的掩码......
    猜你喜欢
    • 1970-01-01
    • 2020-03-13
    • 2013-04-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-14
    • 2014-11-13
    • 2017-10-28
    相关资源
    最近更新 更多