html - 使用文本在形状上创建蒙版

标签 html css svg

我有一个svg形状和我有一些文字。我本质上希望形状在形状内具有文本的轮廓。

这是我的代码:

<g class="monogram">
    <mask id="rSquare" x="0" y="0" width="34" height="34">
        <text fill="#ffffff" x="0" y="0" font-family="verdana" font-size=
"26">LI</text>
    </mask>
    <rect mask="url(#rSquare)" height="34" rx="4" ry="4" width="34" fill="#fff"/>
</g>

所以,rect本质上是一个带有圆形边框的正方形。所以最好我想要 rSquare拥有 fill颜色和text在形状内透明,在其中创建轮廓。

我该如何解决这个问题?我以为上面的例子会起作用,但事实并非如此......

谢谢!

最佳答案

您遇到各种问题:

  • 掩码单位默认为 objectBoundingBox,但从外观上看,您使用的是 userSpaceOnUse 单位
  • 如果您想在某个形状上切一个洞,该洞应该是黑色的,这样 mask 就不会应用到那里。
  • 文本超出了页面边缘,我增加了它的 y 位置,以便它出现在蒙版内(默认情况下,文本的原点是字形单元格的左下角)

毕竟我明白了......

<svg>
  <g class="monogram">
    <mask id="rSquare" x="0" y="0" width="34" height="34" maskUnits="userSpaceOnUse">
        <rect width="34" height="34" fill="white"/>
        <text fill="black" x="4" y="26" font-family="verdana" font-size="26">LI</text>
    </mask>
    <rect mask="url(#rSquare)" height="34" rx="4" ry="4" width="34" fill="blue"/>
</g>
</svg>

关于html - 使用文本在形状上创建蒙版,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41652788/

相关文章:

javascript - .hover() 不适用于触摸

html - 无法更改 aside 标签 html5 中元素的背景

svg - SVG 中文本元素的垂直对齐方式

svg - SVG对象可以同时具有填充颜色和填充图案吗?

SVG 文本稍微偏离中心

javascript - 使用javascript检查用户是否输入了正确的值

javascript - 在 <p> 中获取下拉框更改值(来自 MySQL)

javascript - 如何重用 HTML 用户界面元素?

css - 尝试构建正确的 xpath

html - 弹出窗口内的滚动条