Box Größe bekannt. Textstringlänge unbekannt. Passen Sie den Text an die Box an, ohne das Seitenverhältnis zu beeinträchtigen.Pure SVG Weg, Text in eine Box zu passen
Nach einem Abend googeln und die SVG-Spezifikation zu lesen, ich bin ziemlich sicher, dass dies ohne Javascript nicht möglich ist. Am ehesten konnte ich TextLength und lengthAdjust Textattribute verwenden, aber das streckt den Text nur entlang einer Achse.
<svg width="436" height="180"
style="border:solid 6px"
xmlns="http://www.w3.org/2000/svg">
<text y="50%" textLength="436" lengthAdjust="spacingAndGlyphs">UGLY TEXT</text>
</svg>
Ich bin mir bewusst, SVG Scaling Text to fit container und fitting text into the box
Ich habe eine Schleife in Javascript gemacht, die die Schriftgröße erhöht, bis getBBox zeigt, dass es nicht mehr passt. Hässlich, so hoffend, dass es noch einen anderen Weg geben würde. – Bemmu
Ich habe auch versucht, die gleiche Funktionalität zu funktionieren. Die beste Methode, die ich gefunden habe, war die gleiche, die du gemacht hast. Durchstreichen Sie JS und ändern Sie die Schriftart, bis sie passt. Aber selbst in Schriften gibt es immer noch ein paar Leerzeichen oben und unten, so dass Sie es scheinbar nicht richtig finden. – Chad
Das ist zum Kotzen, es scheint so eine einfache Sache, aber die Spezifikation ist klar, dass es nur in eine Richtung streckt.Nachdem ich herumgespielt hatte, konnte ich es näher bringen, indem ich nur die Y-Skala mit Hilfe der Transformation änderte, alias: 'transform =" scale (0,5) "' - http://jsfiddle.net/G5L8W/ – streetlogics