Gewusst wie: Reduzieren Sie schriftart,-Größe, wenn Sie eine Linie Pausen
Habe ich eine Spanne innerhalb eines div und der div bleiben muss 200 Pixel breit und der text muss in eine Zeile passen innerhalb der div. Der text innerhalb der Spanne ist dynamisch generiert, so kann ich vielleicht wissen, welche Inhalte brechen in eine neue Zeile und welche nicht.
HTML:
<div style="width:200px">
<span style="font-size:12px;">This sentence is too large to fit within the div.</span>
</div>
Nutzen, wenn ich die CSS-Eigenschaft white-space:nowrap;
die Worte verschütten auf der Außenseite des div, die wir natürlich nicht wollen.
Wie würde ich das reduzieren der font-size (oder zoom), basierend auf, wenn die Linie bricht, oder nicht? Ich würde lieber eine CSS-Antwort, aber ich verstehe, wenn außerhalb der CSS-Fähigkeiten.
- Was ist der Grund für den Wunsch, es zu machen, alle auf einer Linie?
- Möchten Sie vielleicht einen Blick auf ein third-party-lib wie fittext fittextjs.com. Als alternative, können Sie
overflow: hidden; text-overflow: ellipsis
zu zwingen, den text mit Auslassungszeichen und nicht verschütten außerhalb des div w3schools.com/cssref/css3_pr_text-overflow.asp - stackoverflow.com/questions/687998/...
- Es muss in einer Zeile stehen, damit es nicht Durcheinander mit der Gestaltung der Seite @ShanRobertson.
- Der gesamte text muss voll sichtbar sein, da dies wichtige Informationen für den Benutzer @floribon. Und ein plugin einfach nicht tun, die Seite nimmt schon mehr Zeit als ich möchte, es zu laden, so dass ich nicht wollen, um keine Anrufe mehr zu Bibliotheken.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Einen ziemlich fiesen Art: loop-Verringerung der überquellenden Spannweite bis zu seinem weniger, dass die div-Breite;
JS:
HTML:
Ich würde vorschlagen, Lesung über CSS viewport-Einheiten. Das ist wahrscheinlich so nah an einer guten Lösung finden Sie in reinem CSS.
http://css-tricks.com/viewport-sized-typography/
versuchen Sie dies, und fügen text hinzu, um das Ergebnis zu sehen
Einen sehr speziellen Fall - wenn Sie an einer festen div-Größe und sind mit Angular.js:
definieren Sie eine Funktion, die testet, ob es ein Wort ist, das eingeschlossen werden (weil Sie wissen, wie viele Zeichen eine Zeile nehmen kann) und einen string zum angeben einer css-Klasse, die eine kleinere Schriftgröße:
In Ihrer Vorlage hinzufügen einer css-Klasse, die nennen diese Funktion, die Sie definiert und so Ihre Klasse, "long-Wort-Titel", die angewendet werden können, wo nötig:
Fügen Sie css-Regel für kleinere text zu Ihrem stylesheet