Ich mache eine reaktionsschnelle Website für die Schule und meine Frage ist:
Wie stelle ich eine maximale Zeichenlänge der Sätze (mit CSS) auf meiner Website ein (z. B. 75 Zeichen), damit die Sätze bei einem sehr großen Bildschirm nicht weiter als 75 Zeichen gehen.
Ich habe versucht, eine maximale Breite zu erreichen, aber das bringt mein Layout durcheinander. Ich verwende Flexbox- und Medienabfragen, um darauf zu reagieren.
textarea
oderinput
gibt es eine maximale Länge ( dasmaxlength="50"
ist in der HTML) Eigenschaft für sie oder würden Sie Javascript verwenden. Ich glaube auch, dass ich das falsch verstanden habe. Wenn Sie eine Breite festlegen, wird der Satz gezwungen, in die nächste Zeile zu fallen, wenn er das Ende erreicht. Dies ist das Standardverhalten.Antworten:
Sie können jederzeit eine Methode zum Abschneiden verwenden, indem Sie a
max-width
und einen solchen Überlaufellipsis
festlegenEin Beispiel: http://jsfiddle.net/3czeyznf/
Schauen Sie sich für eine mehrzeilige Kürzung eine
flex
Lösung an. Ein Beispiel mit Kürzung in 3 Zeilen.Ein Beispiel: https://codepen.io/srekoble/pen/EgmyxV
quelle
Es gibt einen CSS-Längenwert von
ch
.Von MDN
Dies kann ungefähr das sein, wonach Sie suchen.
quelle
ch
Gerät) scheint bei Chrome 50, IE11 oder FF45 nicht (wie erwartet) für mich zu funktionieren?!height
und gesetztoverflow:hidden
. Ich mochte die Auslassungspunkte, aber ich konnte sie nur zum Laufen bringen, wenn ich sie einstelltewhite-space:no-wrap
. In meinem Fall kann der Text umbrochen werden, wobei ein bestimmtes Zeichenlimit in seinem Container nicht überschritten wird.Versuchen Sie dies, um Zeichen abzuschneiden, nachdem Sie sie auf die maximale Breite eingestellt haben. Ich habe in diesem Fall 75ch verwendet
Zum mehrzeiligen Abschneiden folgen Sie bitte dem Link.
Ein Beispiel: https://codepen.io/srekoble/pen/EgmyxV
Wir werden dafür Webkit CSS verwenden. Kurz gesagt, WebKit ist eine HTML / CSS-Webbrowser-Rendering-Engine für Safari / Chrome. Dies kann brower-spezifisch sein, da jeder Browser von einer Rendering-Engine zum Zeichnen der HTML / CSS-Webseite unterstützt wird.
quelle
max-width:100%;
für den Wrapper div verwenden. Sie haben also ein reaktionsschnelles Abschneiden.Beispielcode:
quelle
Mit Chrome können Sie die Anzahl der mit " -webkit-line-clamp " angezeigten Zeilen einstellen :
Für mich ist es also eine Erweiterung, damit es perfekt ist. Weitere Informationen finden Sie hier: https://medium.com/mofed/css-line-clamp-the-good-the-bad-and-the-straight-up -broken-865413f16e5
quelle
Mit CSS ist das nicht möglich, dafür müssen Sie das Javascript verwenden. Sie können die Breite des p zwar auf bis zu 30 Zeichen einstellen und die nächsten Buchstaben werden automatisch angezeigt, aber auch dies ist nicht so genau und variiert, wenn die Zeichen in Großbuchstaben geschrieben sind.
quelle
HTML
jQuery
CSS
ERGEBNIS
Jsfiddle
quelle
Reine CSS-Lösung zum Abschneiden mehrzeiliger Zeichen
Ich hatte ein ähnliches Problem und fand diese ausgezeichnete CSS-Lösung von Hackingui.com . Sie können den Artikel zur Information lesen, aber unten ist der Hauptcode.
Ich habe es getestet und es funktioniert perfekt. Hoffentlich findet es jemand nützlich, bevor er sich für JS- oder serverseitige Optionen entscheidet
quelle
Moderne CSS-Grid-Antwort
Zeigen Sie den voll funktionsfähigen Code auf CodePen an . Angesichts des folgenden HTML:
Sie können CSS Grid verwenden, um drei Spalten zu erstellen und den Container anzuweisen, für die mittlere Spalte, die unseren Absatz enthält, eine maximale Breite von 70 Zeichen zu verwenden.
So sieht es aus (Checkout CodePen für ein voll funktionsfähiges Beispiel):
Hier ist ein weiteres Beispiel, in dem Sie mit minmax einen Wertebereich festlegen können. Auf kleinen Bildschirmen wird die Breite auf 50 Zeichen und auf großen Bildschirmen auf 70 Zeichen eingestellt.
quelle
ch
für Spalten verwenden können. Schön.rrdOvr
. ;)Dieser Beitrag ist für eine CSS-Lösung gedacht, aber der Beitrag ist ziemlich alt. Für den Fall, dass andere darauf stoßen und ein modernes JS-Framework wie Angular 4+ verwenden, gibt es eine einfache Möglichkeit, dies über Angular Pipes zu tun, ohne dies zu tun mit CSS herumspielen.
Es gibt wahrscheinlich auch "React" - oder "Vue" -Methoden, um dies zu tun. Dies ist nur, um zu zeigen, wie es innerhalb eines Rahmens gemacht werden könnte.
truncate-text.pipe.ts
app.component.html
quelle
Probieren Sie meine Lösung auf zwei verschiedene Arten aus.
quelle