it-swarm.com.de

So wenden Sie eine Farbe auf ein SVG-Textelement an

Okay ... ich werde hier verrückt. Ich habe angefangen, mit SVG zu experimentieren. Die Arbeit mit SVG und das Anwenden von CSS-Klassen funktioniert wie ein Zauber. Ich kann nur nicht herausfinden, was ich falsch mache, aber ich kann die Klasse nicht dazu bringen, an einem SVG-Textelement zu arbeiten. Ich habe es ganz ausgezogen und das habe ich bekommen:

<!DOCTYPE html>
<html>
<head>
    <meta charset='UTF-8'>
    <title>Playground</title>
</head>
<body>
    <style type="text/css">
        .mainsvg {
            height: 320px;
            border: 1px solid red;
            width: 400px;
        }
        .caption {
            color: yellow;
        }
    </style>
    <h2>SVG - Sandbox</h2>
    <div>
        <svg xmlns="http://www.w3.org/2000/svg" version="1.1" class="mainsvg">
            <text x="65" y="40" class="caption">Fact</text>
        </svg>
    </div>
</body>
</html>

Laut http://www.w3.org/TR/SVG/styling.html#ClassAttribute sollte dies funktionieren ...

Irgendwelche Tipps, was zu ändern ist, oder eine Alternative?

58

Das Festlegen der Klasse ist korrekt, aber die CSS-Farbeigenschaft hat keine Auswirkungen auf SVG. SVG verwendet die Eigenschaften fill und stroke . In Ihrem Fall müssen Sie wahrscheinlich nur die Farbe ändern, um sie zu füllen. Dies zeigt in Firefox gelben Text für mich an.

<!DOCTYPE html>
<html>
<head>
    <meta charset='UTF-8'>
    <title>Playground</title>
</head>
<body>
    <style type="text/css">
        .mainsvg {
            height: 320px;
            border: 1px solid red;
            width: 400px;
        }
        .caption {
            fill: yellow;
        }
    </style>
    <h2>SVG - Sandbox</h2>
    <div>
        <svg xmlns="http://www.w3.org/2000/svg" version="1.1" class="mainsvg">
            <text x="65" y="40" class="caption">Fact</text>
        </svg>
    </div>
</body>
</html>
73
Robert Longson