Подтвердить что ты не робот

Как применить класс CSS к элементу SVG Text

Хорошо... Я схожу с ума. Я начал экспериментировать с SVG. Работа с SVG и применение классов CSS к нему работает как шарм. Я просто не могу понять, что я делаю неправильно, но я просто не могу заставить класс работать над текстовым элементом svg. Я убрал все это, и вот что я получил:

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

В соответствии с http://www.w3.org/TR/SVG/styling.html#ClassAttribute это должно работать...

Любые подсказки/советы о том, что нужно изменить, или альтернатива?

4b9b3361

Ответ 1

Настройка класса верна, но свойство цвета CSS не влияет на SVG. SVG использует fill и stroke свойства. В вашем случае вам, вероятно, просто нужно изменить цвет для заполнения. Это отображает желтый текст для меня в 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>