Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
CSS或SVG文本剪辑/掩码_Css_Svg - Fatal编程技术网

CSS或SVG文本剪辑/掩码

CSS或SVG文本剪辑/掩码,css,svg,Css,Svg,我不确定这是否可行,但有没有办法使文本成为剪辑路径或遮罩 示例:如果在另一层文字的上方有一层文字,则让顶层“剔除”下层文字,这样背景就可以看穿。请看下面的链接(对不起,我还没有足够的代表来发布图片),我真的不想要字母周围的边框,但我添加了它来尝试并描述我试图实现的目标 请注意,底部的“This is some text”字符串在顶层重叠处缺少颜色。文本的顶层是透明的,但也会“删除”或在与底层文本重叠的任何地方应用透明度 您可以使用过滤器来完成此操作。理想情况下,我们只需要使用两个feImage来

我不确定这是否可行,但有没有办法使文本成为剪辑路径或遮罩

示例:如果在另一层文字的上方有一层文字,则让顶层“剔除”下层文字,这样背景就可以看穿。请看下面的链接(对不起,我还没有足够的代表来发布图片),我真的不想要字母周围的边框,但我添加了它来尝试并描述我试图实现的目标

请注意,底部的“This is some text”字符串在顶层重叠处缺少颜色。文本的顶层是透明的,但也会“删除”或在与底层文本重叠的任何地方应用透明度


您可以使用过滤器来完成此操作。理想情况下,我们只需要使用两个feImage来导入源文本并将它们组合在一起。但是Firefox还不支持这一点,所以对于跨浏览器,我们只能使用“绿色屏幕”类型的效果和对源文本的一些仔细定位。这有点像用象枪杀苍蝇。但它确实有效:


删除文本?
没问题。。。。

请解释您目前是如何做到这一点的,这张图片中的两个示例中的哪一个是理想的结果,并请提供您当前制作的文本的代码。透明度是绝对必要的,还是可以让前面的文本与背景颜色相同?对不起,所需的结果是文本的底线。这里有一个更好的例子。我想获得第一个结果,但将circle-o设置为白色就完成了。如果有背景色或图像,你最终会看到白色的圆圈,我希望它是透明的,这样你就能看到后面的图像或颜色。我知道我可以很容易地画一个圆圈用作遮罩,但我希望我可以使用字形作为遮罩,这样我就可以使用任何字形,而不必使用自定义形状。您是否有理由认为用包含一些文本的
元素替换
元素不起作用?你试过了吗?用面具贴出你目前掌握的密码。这正是我要找的!谢谢
  <svg>
  <filter id="knockoutSpecial">
    <feOffset dy="150" result="pos-text"/>
    <feComposite operator="out" in2="SourceGraphic" in="pos-text" result="cut-red"/>
    <feColorMatrix in="cut-red" result="recolor1" type="matrix" values="0 0 0 0 1
                          0 0 0 0 0.0
                          0 0 0 0 0.1
                          0 0 0 1 0"/>    
    <feColorMatrix in="SourceGraphic" result="empty-red" type="matrix" values="1 0 0 0 0
                          0 1 0 0 0
                          0 0 1 0 0
                          0 -5 0 1 0"/>
    <feColorMatrix in="empty-red" result="recolor2" type="matrix" values="0 0 0 0 0.5
                          0 0 0 0 0.5
                          0 0 0 0 0.5
                          0 0 0 1 0"/>
    <feComposite operator="over" in="recolor1" in2="recolor2"/>
  </filter>

  <g filter="url(#knockoutSpecial)">
    <text x="0" y="-50" font-size="84" font-weight="bold" fill="red">Cutting out text?</text>
    <text stroke="blue" stroke-width="2" fill="green" x="40" y="120" font-size="84" font-weight="bold" font-family="helvetica">No Problem....</text>
  </g>
</svg>