140 votes

Comment appliquer une couleur à un élément SVG Text

Bon... Je deviens fou ici. J'ai commencé à expérimenter avec SVG. Travailler avec SVG et lui appliquer des classes CSS fonctionne comme un charme. Je n'arrive pas à trouver ce que je fais mal, mais je n'arrive pas à faire fonctionner la classe sur un élément texte SVG. J'ai tout démonté et voilà ce que j'ai obtenu :

<!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>

Selon http://www.w3.org/TR/SVG/styling.html#ClassAttribute cela devrait fonctionner...

Des conseils sur ce qu'il faut changer, ou une alternative ?

171voto

Robert Longson Points 24231

La définition de la classe est correcte mais la propriété de couleur CSS n'a aucun effet sur le SVG. SVG utilise remplir y AVC propriétés. Dans votre cas, vous avez probablement juste besoin de changer la couleur en remplissage. Cela affiche du texte jaune pour moi dans Firefox.

<!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>

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X