Для веб-проекта я использую SVG с библиотекой svg.js, чтобы облегчить мою жизнь. Библиотека svg.js отлично работает и генерирует правильный SVG, поэтому я уверен, что все работает на этом фронте.Укажите шрифт из файла шрифта в SVG, используя svg.js
Для этого проекта, я могу сослаться на шрифт, как это в моем файле CSS:
@font-face {
font-family: 'FreeUniversal';
src: url('../fonts/freeuniversal-regular.ttf');
font-weight: normal;
font-style: normal;
}
Этот шрифт затем взял правильно и отображается для различных элементов в моем HTML-коде.
Мой вопрос в том, как я могу это сделать в SVG, используя библиотеку svg.js? Я понимаю, что я могу установить текущий шрифт и так далее, как это:
sCurrentSvgShape.attr({
'font-family': inFontName,
'font-size': inFontSize });
И это работает для веб-безопасных шрифтов, как «Helvetica» или «Курьере» или «Санс». Но я хочу знать, как я могу установить семейство шрифтов, которое ссылается на мой конкретный файл шрифта, как я могу в CSS.
Я понимаю CSV имеет синтаксис, чтобы сделать это, например:
<defs>
<style type="text/css">
<![CDATA[
@font-face {
font-family: Delicious;
src: url('http://nimbupani.com/demo/svgfonts/delicious-roman.otf');
}
]]>
</style>
</defs>
Итак, что это лучший способ, чтобы включить это в svg.js? Нужно ли вручную создавать эти узлы «defs» вручную? Есть ли поддержка в библиотеке для этого?
Это не похоже на работу, хотя я нашел то, что делает работу, исследуя ваши ответ. Я пробовал ваш первый подход, который, кажется, генерирует правильную вставку CSS, когда я пытаюсь. Однако шрифт не найден. Однако, если я применил элемент «style» к текстовому элементу SVG напрямую и ссылку «font-family: xxmyfontxx;» там, он работает, я предполагаю, потому что браузер затем выбирает это через правило CSS в моем обычном файле CSS ... Я все равно хотел бы, чтобы это работало по пути того, что вы предложили, - что я «Сейчас я чувствую себя взломанным. –
Я не знаю, нужно ли включать материал CDATA в свой вопрос. Также я не знаю, должен ли тег стиля быть в теге defs. Однако: использование правил sss в svg довольно распространено. Возможно, вы даже можете записать его в свой файл css – Fuzzyma
Да, я тоже пробовал его с частью CDATA, но это, похоже, не имело никакого значения. Возможно, мне следовало бы просто дать моему тексту класс, и CSS позаботится об этом; это тоже должно хорошо работать. Просто кажется, что чит не делает все в SVG, особенно зная, что он должен работать :) Спасибо! –