Ich möchte ein Rechteck um einen Text in SVG legen. Die Höhe des Textes ist mir bekannt (das font-size
Attribut des text
Elements). Die Breite hängt jedoch vom tatsächlichen Inhalt ab. Die Verwendung von getBBox()
oder getComputedTextLength()
sollte funktionieren. Aber das funktioniert nur nach dem Rendern.Abrufen der Textbreite in SVG vor dem Rendern
Gibt es eine Möglichkeit, das auf eine andere Art zu spezifizieren? Zum Beispiel definieren die x
und width
Attribute relativ zu anderen Werten? So etwas habe ich in der SVG Spec nicht gefunden.
Was ist falsch mit der Messung nach dem Rendern? –
@RobertLongson Codekomplexität und visuelles Springen. Ich erstelle das gesamte Dokument dynamisch. Alle Objekte sollten vorbereitet, dann zum Dokument hinzugefügt und gerendert werden. Bei der Berechnung nach dem Rendern müsste ich unfertige Objekte rendern und nach dem Rendern ändern. Dies würde zu einem visuellen Springen führen. – radlan
Fügen Sie Ihren Code der Frage hinzu? Versuchen Sie, die bbox und die Textlänge eines noch nicht in das Dokument eingefügten Elements zu erhalten? –