文本与svg或css中的图像背景

时间:2012-06-01 07:55:34

标签: css svg

是否可以在svg或css中拥有文本背景?这意味着,每个角色都有背景? 这是一个例子:

text with background mask

我已经在photoshop中做了这个并制作了一个面具,我只是想知道我有可能在svg或css中?

2 个答案:

答案 0 :(得分:15)

以下是使用模式的示例。它使用带有图案填充的<tspan>元素,向您展示如果需要,可以在每个字符的基础上完成此操作:

演示:http://jsfiddle.net/xWNR3/2/

The text "Hello World" with each letter of the first word filled with one pattern, and each letter of the second word filled with another pattern, except the "r" which is filled with the first pattern.

<svg xmlns="http://www.w3.org/2000/svg" xmlns:x="http://www.w3.org/1999/xlink">
  <style>
    svg  { background:#ddd }
    text {
      font-family:Verdana; font-size:160pt; font-weight:bold;
      stroke:#000;
    }
  </style>
  <defs>
    <pattern id="p1" patternUnits="userSpaceOnUse" width="32" height="32">
      <image x:href="alphaball.png" width="32" height="32" />
    </pattern>
    <pattern id="p2" patternUnits="userSpaceOnUse" width="10" height="10">
      <image x:href="grid.gif" width="10" height="10" />
    </pattern>
  </defs>
  <text x="20" y="170" fill="url(#p1)">
    Hello
    <tspan x="20" y="350"
           fill="url(#p2)">Wo<tspan fill="url(#p1)">r</tspan>ld</tspan>
  </text>
</svg>

答案 1 :(得分:2)

除了robertc建议的答案中的模式之外,您还可以使用maskclipPath来执行此操作。

来自使用clipPath的svg测试套件的an example