Hintergrundfarbe des Textes in SVG

64

Ich möchte den Hintergrund von svg text ähnlich wie background-color in css färben

Ich konnte nur Dokumentation zu fill finden, die den Text selbst einfärbt.

Ist es überhaupt möglich?

    
Nick Ginanto 19.03.2013, 13:30
quelle

7 Antworten

63

Nein, das ist nicht möglich, SVG-Elemente haben keine background-... Präsentationsattribute .

Um diesen Effekt zu simulieren, könnten Sie ein Rechteck hinter dem Textattribut mit fill="green" oder etwas Ähnlichem (Filter) zeichnen. Mit JavaScript können Sie Folgendes tun:

%Vor%     
Roger 01.06.2013, 13:14
quelle
43

Sie könnten einen Filter verwenden, um den Hintergrund zu generieren.

%Vor%
    
Robert Longson 23.06.2015 21:03
quelle
12

Nein, Sie können keine Hintergrundfarbe zu SVG-Elementen hinzufügen. Sie können dies programmatisch mit d3 tun.

%Vor%     
nnattawat 24.06.2014 04:48
quelle
4

Die Lösung, die ich verwendet habe, ist:

%Vor%

Ein doppeltes Textelement wird mit den Attributen stroke und stroke-width platziert. Der Strich sollte mit der Hintergrundfarbe übereinstimmen, und die Strichbreite sollte gerade groß genug sein, um einen "Klecks" zu erzeugen, auf den der eigentliche Text geschrieben werden kann.

Ein bisschen wie ein Hack und es gibt potenzielle Probleme, aber funktioniert für mich!

    
bartelski 27.01.2017 19:58
quelle
1

Antwort von Robert Longson (@RobertLongson) mit Änderungen:

%Vor%

und wir haben kein Bluring und keine schwere "getBBox" :) Die Auffüllung erfolgt durch Leerstellen im Textelement mit Filter. Es hat für mich funktioniert

    
Roman Belov 14.03.2017 10:24
quelle
0

das ist mein Lieblings-Hack (nicht sicher, dass es funktionieren sollte). Es verweist auf ein Element, das noch nicht angezeigt wird, und es funktioniert ziemlich gut

%Vor%
    
Calimero100582 19.09.2017 20:10
quelle
0

Anstatt ein <text> -Tag zu verwenden, verwenden Sie <foreignObject> Tag kann verwendet werden, was XHTML-Inhalte mit CSS ermöglicht.

    
Chris G 10.01.2018 18:58
quelle

Tags und Links