フィルターを使用して、text
要素の1つの単語にのみ背景色を適用しようとしています。feFloodフィルターを適用すると、<tspan>は期待どおりに機能しません
何が起こっているのかは、洪水がすべての親要素を埋めることであり、テキストの一部を隠すことさえあります。
DEFS
<filter x="0" y="0" width="1" height="1" id="colorMe">
<feFlood flood-color="red"/>
<feComposite in="SourceGraphic"/>
</filter>
STYLE
.colorMe {
filter: url(#colorMe);
fill: #ccc;
}
text{
fill: #fff;
font: 40px Verdana, Helvetica, Arial, sans-serif;
}
私は、私はそれだけでtspan
を埋めるだろうと推測フラッディングするx,y,width,height
が含まれていなかったとして - それは、クラスとしてこれらを含めることは困難ですさまざまなサイズの要素に動的に追加されます
ただ1つの単語に背景色を追加する方法はありますか?
コード以下のスニペットとhere's a fiddle too
ALL CODE
<?xml version="1.0"?>
<svg width="450" height="40" viewBox="0 0 450 40"
xmlns="http://www.w3.org/2000/svg" version="1.1">
\t <defs>
\t <filter x="0" y="0" width="1" height="1" id="colorMe">
<feFlood flood-color="red"/>
<feComposite in="SourceGraphic"/>
</filter>
\t </defs>
<style>
.colorMe {
\t \t filter: url(#colorMe);
\t \t fill: #ccc;
\t }
text{
fill: #fff;
font: 40px Verdana, Helvetica, Arial, sans-serif;
}
\t </style>
<text x="15" y="30">You are
\t <tspan class="colorMe">not</tspan>
\t me
</text>
</svg>
'filters'は2016年でも' tspan'には向いていませんが、2つの 'text'要素が必要ですが、ブラウザーやフォントによっては色分けされた' text'が多少ずれて見えることがあります。 –