Поскольку я хочу использовать функции CSS в CSS, элемента svg <text>
недостаточно.
Вы можете использовать CSS на <text>
или на самом деле на любом элементе SVG. Единственное существенное отличие состоит в том, что вы должны использовать fill
вместо color
, если вам нужно изменить цвет текста. Где будет жить CSS, будет зависеть от того, как вы планируете внедрить изображение на сайте. Если SVG встроен, то есть с помощью тега <img>
, стили должны быть встроены в сам файл SVG с использованием тега <defs>
, как показано ниже.
<svg width="400" height="110">
<defs>
<style>
.my-custom-text {
fill: #fff;
font-weight: bold;
}
.cyan {
fill: #0ff;
}
</style>
</defs>
<g>
<rect width="300" height="100" style="fill:rgb(0,0,255);stroke-width:3;stroke:rgb(0,0,0)" />
<text x="15" y="25" class="my-custom-text">My custom <tspan class="cyan">text</tspan></text>
</g>
</svg>
Если вы встраиваете SVG, вы можете думать о том, что он работает как HTML - он и его дочерние элементы являются просто обычными элементами HTML и могут бытьцеленаправленный, как и любой другой элемент. Это означает, что CSS может быть размещен везде, где вы обычно его размещаете - как внешний документ или в любом теге <style>
.
И если ничего не помогает, вы всегда можете просто расположить HTML-содержимое вышеизображение в отдельном контейнере и стиль его таким образом.