Verwendung von Google Fonts mit SVG <object>
Ich bin Einbettung von SVGs in meine Seite mit der <object>
tag, und Sie sollten nutzen Sie Google Schriftarten (z.B. Roboto). Jedoch, die SVGs sind nicht Kommissionierung diese Schriften und statt Standard-system-fonts.
Was mache ich falsch? Nicht jedes SVG verlangen, dass die Schrift selbst eingebettet werden in <style>
?
Beispiel-code:
<head>
<link href='https://fonts.googleapis.com/css?family=Roboto:400,100,100italic,300,300italic,400italic,500,500italic,700,700italic,900,900italic' rel='stylesheet' type='text/css'>
</head>
<body>
<object width="250" height="200" type="image/svg+xml" data="img/popup_image.svg"></object>
</body>
SVG-snippet:
<text font-size="14" fill="#333" font-family="Roboto">Words go here</text>
- Wie sieht dein code Aussehen?
- Ich bin mir nicht sicher, ob ich verstehe Ihre Frage. Wie ich schon sagte, ist es mit dem object-tag, um zu zeigen, SVG, und dass die SVG auf Google Fonts für seinen <text> Attribute. Ich werde aktualisieren, meine Frage oben, falls ich mich nicht klar ist.
- Nein, das wird nicht funktionieren....es ist wie der Versuch, ändern Sie die schriftart in einem Bild mit CSS...wird nicht passieren. Wenn der SVG war inline-es würde wahrscheinlich obwohl.
- Sie müssen das link-element in der gleichen Datei wie die svg-ich.e in popup_image.svg
- Können Sie uns einen link oder ein Beispiel für diese Arbeit?
- Was ist verwirrend Sie darum, die
<link>
element in die SVG-Datei. - Ich denke, wo und wie genau. In einem
<defs></defs>
? Innerhalb einer<style>
? Suche gerade nach einem Beispiel für die richtige syntax, weil es wirft Fehler, tun diese beiden Dinge. - Sie können es überall Sie mögen.
- Das ist einfach falsch.
- Wirklich!?: Lesen Sie diese w3c-Diskussion
Du musst angemeldet sein, um einen Kommentar abzugeben.
Browser behandelt SVG-text als normale HTML-text. In anderen Worten, alle text-Elemente in der SVG muss gestylt werden wie normale HTML-Elemente (wie ein
<span>
zum Beispiel). Sie müssen das einbetten der schriftart in der SVG in form einer CSS -@import
. Schauen Sie durch die XML von Ihrer SVG für die<defs>
Abschnitt. Dann fügen Sie diesen code in es:Aktualisieren Sie als Nächstes Ihre
<text>
element wie diesem:Wenn Sie weitere Informationen wünschen, können Sie versuchen, diese website: http://nimbupani.com/about-fonts-in-svg.html. Es hat einige ziemlich gute Informationen über fonts im embedded-SVGs. Ein Beispiel dazu finden Sie hier: https://github.com/marians/test-webfonts-in-svg.
@import url:()
scheint zu funktionieren... immer noch testen obwohl.CDATA
erforderlich. Verwenden Sie einfach:@import url('https://fonts.googleapis.com/css?family=Sonsie+One');
. Ein Beispiel-Vergleich finden Sie hier: github.com/marians/test-webfonts-in-svgEinige Vorschläge, wenn Sie möchten, dass Ihr logo portable-und offline verfügbar, sollten Sie verbrauchen und einbetten die kleinste version der schriftart möglich.
Erste, optimieren Sie die Schriftgröße, indem Sie nur ziehen in die Konturstärken und Zeichen, die Sie tatsächlich benötigen.
Also statt dieser:
Kondensieren die Optionen und fügen Sie auch die
?text=abc
param nur greifen eine Teilmenge von Zeichen wie diese:In Ihrem svg, können Sie eine
@font-face
Deklaration im stylesheet in der<defs>
tag wie diesem:Schnappen Sie sich die Datei durch navigieren zu den google fonts stylesheet und das herunterladen der aktuellen .woff2-Datei. Sie können konvertieren Sie es in einem b64-string mit base64-encoder oder Lesen Sie mehr unter Konvertieren und Rendern von web fonts zu base64. Nehmen Sie die Zeichenfolge, und fügen Sie es in Ihre Datei. Nur für Klarheit, Sie konnte auch angeben, unicode-Bereich auf die schriftart explizit zu machen, dass Sie nur ziehen Sie in einigen Zeichen
HTML:
Siehe Auch: