Text with image background in svg or css

2020-01-31 04:00发布

Is it possible to have background for text in svg or css? it means , every character have background? here is the example:

text with background mask

I have made this in photoshop and made a mask, i just wonder i it is possible in svg or css?

标签: css svg
2条回答
虎瘦雄心在
2楼-- · 2020-01-31 04:31

Here is an example using a pattern. It uses <tspan> elements with patterned fill to show you how this may be done on a per-character basis, if desired:

Demo: 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>
查看更多
对你真心纯属浪费
3楼-- · 2020-01-31 04:33

You can use a mask or a clipPath to do this too, in addition to the way with patterns as in the answers robertc suggested.

Here's an example from the svg testsuite using clipPath.

查看更多
登录 后发表回答