Hinweis: Ich möchte keine Schriftgröße basierend auf der Größe des Ansichtsfensters skalieren - meine Frage ist anders.Schriftgröße basierend auf Inhalt skalieren (CSS oder JS)
Meine HTML/CSS/JS-App stellt dem Benutzer im Wesentlichen ein Zustandsdiagramm zur Verfügung. Es gibt eine Nachricht auf dem Bildschirm mit einer Reihe von Tasten. Das Drücken jeder Taste führt zu einem anderen Bildschirm - und so weiter - in der Tat sehr einfache Vorstellung.
Der Text für jeden Bildschirm als jede Schaltfläche stammt aus der Datenbank.
Das Design ist so, dass die Tastengrößen festgelegt sind (ich habe keine Kontrolle darüber). Sie sind groß genug, um so ziemlich alles zu ermöglichen, auf das die Anwendung stoßen kann - auf Englisch.
Kürzlich musste ich Swahili-Unterstützung hinzufügen - und plötzlich wurde etwas, das 2 Wörter, 15 Zeichen in Englisch ist 5 Wörter mit fast 50 Zeichen in Swahili - und es passt nicht in den Knopf. Das ist ziemlich schlecht - und doch gibt es nur eine Handvoll solcher langen Button-Labels. Leider, da sie dynamisch sind (von der DB), kann ich nicht viel in Bezug auf Vorhersagen tun, was es sein wird.
Die Sache, die ich tun kann, ist, die Schriftgröße zu verkleinern, um den Text innerhalb der Taste zu passen. Die Verwendung von vw
, vh
usw. Einheiten funktioniert nicht, da der Text unabhängig von der Größe des Darstellungsbereichs auf eine feste Größe skaliert werden sollte.
Ich kann mir keine CSS-Lösung vorstellen. Ich kann mir ein paar JS-Lösungen für das Problem vorstellen (z. B. den Text platzieren und dann weiter herunterskalieren, bis es passt - obwohl ich mir nicht ganz sicher bin, wie ich feststellen kann, dass es passt).
Ich kann das nicht einfach herausfinden. Irgendwelche Ideen? Ich bin mit CSS3 und HTML5 zufrieden und benötige dies nur für die neuesten Versionen von Chrome und Safari.
wenn Sie den Text in ein SVG-Element setzen können - https://css-tricks.com/svg-text-typographic-designs/ – Aprillion
@ Aprillion Hm, interessante Idee. Leider unterstützt SVG keinen automatischen Zeilenumbruch. Im Moment erlaubt die Schaltfläche bis zu 3 Textzeilen, automatische Umbruch, vertikal und horizontal zentriert. –
Sind Sie in Ordnung, wenn Sie ein Dummy-Element für Berechnungszwecke verwenden? (Ich kann eine Lösung haben, wenn Sie sind) – treyhakanson