CSS text-overflow: ellipsis
in der zweiten Zeile, ist das möglich? Ich kann es nicht im Netz finden.
Beispiel:
was ich will ist wie folgt:
I hope someone could help me. I need
an ellipsis on the second line of...
aber was passiert ist folgendes:
I hope someone could help me. I ...
Antworten:
Voraussetzung für die
text-overflow: ellipsis;
zur Arbeit ist eine einzeilige Versionwhite-space
(pre
,nowrap
usw.). Dies bedeutet, dass der Text niemals die zweite Zeile erreicht.Ergo. In reinem CSS nicht möglich.
Meine Quelle, als ich gerade genau das Gleiche suchte: http://www.quirksmode.org/css/textoverflow.html (Quirksmode ftw!)
BEARBEITEN Wenn die guten CSS-Götter http://www.w3.org/TR/css-overflow-3/#max-lines implementieren , können wir dies in reinem CSS mit
fragments
(neu) undmax-lines
(neu) gefährden . Weitere Informationen finden Sie unter http://css-tricks.com/line-clampin/.EDIT 2 WebKit / Blink hat
line-clamp
:-webkit-line-clamp: 2
setzt Auslassungspunkte in die 2. Zeile.quelle
Dies sollte in Webkit-Browsern funktionieren :
quelle
overflow: hidden
damit dies funktioniert.Wie andere bereits geantwortet haben, gibt es keine reine CSS-Lösung. Es gibt ein sehr einfach zu verwendendes jQuery- Plugin namens dotdotdot . Es verwendet die Breite und Höhe des Containers, um zu berechnen, ob Ellipsen abgeschnitten und hinzugefügt werden müssen.
Hier ist eine jsFiddle .
quelle
Ich fand, dass Skeeps Antwort nicht genug war und auch einen
overflow
Stil brauchte :quelle
Wenn jemand SASS / SCSS verwendet und auf diese Frage stößt, könnte dieses Mixin hilfreich sein:
Dadurch werden nur die Auslassungspunkte in Webkit-Browsern hinzugefügt. Ruhe schneidet es einfach ab.
quelle
/* autoprefixer: off */
zu/*! autoprefixer: off */
sonst-webkit-box-orient: vertical;
nach der Kompilierung entfernt zu werden, was bedeutet , die Auslassungs nie gezeigtVerwenden Sie einfach Line-Clamp für die Browser, die dies unterstützen (die meisten modernen Browser), und greifen Sie bei älteren auf 1 Zeile zurück.
quelle
Was für eine Schande, dass Sie es nicht über zwei Zeilen zum Laufen bringen können! Wäre fantastisch, wenn das Element ein Anzeigeblock wäre und eine Höhe von 2em oder so hätte, und wenn der Text überläuft, würde es eine Ellipse zeigen!
Für einen einzelnen Liner können Sie verwenden:
Für mehrere Zeilen können Sie möglicherweise eine Polyfüllung wie jQuery autoellipsis verwenden, die sich auf github http://pvdspek.github.com/jquery.autoellipsis/ befindet.
quelle
dotdotdot
in einem anderen Beitrag erwähnt.Ich bin kein JS-Profi, aber ich habe ein paar Möglichkeiten herausgefunden, wie Sie dies tun können.
Der HTML:
Dann schneiden Sie es mit jQuery auf eine bestimmte Anzahl von Zeichen ab, lassen aber das letzte Wort wie folgt:
Das Ergebnis sieht folgendermaßen aus:
Oder Sie können es einfach auf eine bestimmte Anzahl von Zeichen wie folgt kürzen:
Das Ergebnis sieht folgendermaßen aus:
Hoffe das hilft ein bisschen.
Hier ist die jsFiddle .
quelle
Hier ist ein gutes Beispiel in reinem CSS.
quelle
Ich habe bereits das jQuery-Condense-Plugin verwendet , das anscheinend das tun kann, was Sie wollen. Wenn nicht, gibt es verschiedene Plugins , die Ihren Anforderungen entsprechen könnten.
Bearbeiten: Haben Sie eine Demo gemacht - beachten Sie, dass ich die jquery.condense.js auf der Demo verlinkt habe, die die Magie macht, also volle Anerkennung an den Autor dieses Plugins :)
quelle
Es handelt sich um ein nicht standardmäßiges CSS, das in der aktuellen Version von CSS nicht behandelt wird (Firefox unterstützt es nicht). Versuchen Sie stattdessen JavaScript zu verwenden.
quelle
Reine CSS-Methode zum Trimmen von mehrzeiligem Text mit Auslassungspunkten
Passen Sie die Höhe des Textcontainers und die Steuerlinie an, um sie durch -webkit-line-clamp zu unterbrechen: 2;
quelle
Ich habe dieses Problem schon einmal kennengelernt und es gibt keine reine CSS-Lösung
Deshalb habe ich (unter anderem) eine kleine Bibliothek entwickelt, um dieses Problem zu lösen. Die Bibliothek bietet Objekte zum Modellieren und Durchführen von Textwiedergabe auf Buchstabenebene. Sie können beispielsweise einen Textüberlauf emulieren: Auslassungspunkte mit einer beliebigen Grenze (nicht erforderlich, eine Zeile)
Weitere Informationen finden Sie unter http://www.samuelrossille.com/home/jstext.html. Dort finden Sie einen Screenshot, ein Tutorial und einen Download-Link.
quelle
Wenn jemand versucht, die Line-Clamp in der Flexbox zum Laufen zu bringen , ist dies etwas schwieriger - insbesondere, wenn Sie Foltertests mit wirklich langen Worten durchführen. Die einzigen wirklichen Unterschiede in diesem Code-Snippet bestehen
min-width: 0;
im Flex-Element, das abgeschnittenen Text enthält, undword-wrap: break-word;
. Ein Tipp an https://css-tricks.com/flexbox-truncated-text/ für den Einblick. Haftungsausschluss: Dies ist immer noch Webkit nur soweit ich weiß.http://codepen.io/AlgeoMA/pen/JNvJdx (Codepen-Version)
quelle
Alle Antworten hier sind falsch, es fehlt ihnen ein wichtiges Stück, die Höhe
quelle
Eine reine CSS-Methode, die auf -webkit-line-clamp basiert und mit Webkit funktioniert:
quelle
Kein wirklich einfacher Weg, dies zu tun. Verwenden Sie die Bibliothek Clamp.js .
quelle
Ich habe eine Lösung gefunden, aber Sie müssen eine grobe Zeichenlänge kennen, die in Ihren Textbereich passt, und dann ein ... mit dem vorhergehenden Leerzeichen verbinden.
Ich habe das so gemacht:
Code:
Hier ist eine Geige - http://jsfiddle.net/GYsW6/1/
quelle