Ich weiß, dass Sie eine Kombination von CSS-Regeln verwenden können, um Text mit Auslassungspunkten (...) zu beenden, wenn es Zeit zum Überlaufen ist (außerhalb der Grenzen der Eltern).
Ist es möglich (Sie können einfach Nein sagen), den gleichen Effekt zu erzielen, aber lassen Sie den Text in mehr als einer Zeile umbrechen?
div {
width: 300px;
height: 42px;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
Wie Sie sehen können, endet der Text mit Auslassungspunkten, wenn er breiter als die Breite des Divs ist. Es ist jedoch noch genügend Platz für den Text vorhanden, um ihn in eine zweite Zeile zu setzen und fortzufahren. Dies wird durch unterbrochen white-space: nowrap
, was erforderlich ist, damit die Auslassungspunkte funktionieren.
Irgendwelche Ideen?
PS: Keine JS-Lösungen, wenn möglich reines CSS.
Antworten:
Ich bin mir nicht sicher, ob Sie DIESES gesehen haben , aber Chris Coyier ausgezeichnete CSS-Tricks.com hat einen Link zu diesem einer Weile zurück , und es ist eine reine CSS - Lösung , die genau erfüllt , was Sie suchen.
(Klicken, um auf CodePen anzuzeigen)
HTML:
CSS:
Eine reine CSS-Lösung zu sein bedeutet natürlich, dass sie auch ziemlich kompliziert ist, aber sie funktioniert sauber und elegant. Ich gehe davon aus, dass Javascript nicht in Frage kommt, da dies mit Javascript viel einfacher zu erreichen (und wahrscheinlich abbaubarer) ist.
Als zusätzlichen Bonus gibt es eine herunterladbare Zip-Datei des gesamten Prozesses (wenn Sie alles verstehen wollen), aber auch eine SASS-Mixin-Datei, damit Sie sie einfach in Ihren Prozess einbinden können.
Hoffe das hilft!
http://www.mobify.com/blog/multiline-ellipsis-in-pure-css/
quelle
Einfache CSS-Eigenschaften können den Trick machen. Das Folgende gilt für eine dreizeilige Ellipse.
quelle
Schauen Sie sich diese reine CSS-Version an: http://codepen.io/martinwolf/pen/qlFdp
quelle
text-overflow
unddisplay
Regeln?CSS unten sollte den Trick machen.
Nach der zweiten Zeile enthält der Text ...
quelle
overflow:hidden
Meine Lösung verwendet die von amcdnl wieder, aber mein Fallback besteht darin, eine Höhe für den Textcontainer zu verwenden:
quelle
-webkit-line-clamp
funktioniert nicht für IE11, Edge oder Firefox.Verwenden Sie dies, wenn oben nicht funktioniert
quelle
Basierend auf einer Antwort, die ich in stackoveflow gesehen habe, habe ich dieses WENIGER-Mixin erstellt ( verwenden Sie diesen Link, um den CSS-Code zu generieren ):
Verwendung
quelle
Es scheint eleganter, zwei Klassen zu kombinieren. Sie können die
two-lines
Klasse löschen , wenn nur eine Zeile angezeigt werden muss:quelle
Das Beschränken auf wenige Zeilen funktioniert in fast allen Browsern, aber in Firefox & IE wird kein Auslassungszeichen (3 Punkte) angezeigt. Demo - http://jsfiddle.net/ahzo4b91/1/
quelle
Ich habe eine Kombination aus Line-Clamp- und Line-Height-Arbeiten gefunden: D.
quelle
In meiner eckigen App hat der folgende Stil für mich funktioniert, um Auslassungspunkte für den Textüberlauf in der zweiten Zeile zu erzielen :
Hoffe es hilft jemandem.
quelle
Für diejenigen, die in scss arbeiten , müssen Sie
!autoprefixer
den Anfang des Kommentars hinzufügen , damit er für postcss erhalten bleibt:Ich habe mich diesem Problem gestellt, deshalb habe ich es hier gepostet
Referenz
quelle
Sie können einen aufgelösten Effekt anstelle von Auslassungspunkten verwenden, reines CSS und sieht professioneller aus:
Hier habe ich angenommen, dass Ihre Hintergrundfarbe weiß ist.
quelle
Dies ist ein totaler Hack, aber es funktioniert:
http://jsfiddle.net/2wPNg/
Es hat Probleme ... es könnte einen Brief unangenehm abschneiden und es wird wahrscheinlich einige seltsame Ergebnisse auf einer reaktionsfähigen Site haben.
quelle
Hier ist ein einfaches Skript zum Verwalten der Auslassungspunkte mit jQuery. Es überprüft die tatsächliche Höhe des Elements und erstellt einen ausgeblendeten ursprünglichen Knoten und einen abgeschnittenen Knoten. Wenn der Benutzer auf klickt, wechselt er zwischen den beiden Versionen.
Einer der großen Vorteile ist, dass die "Ellipse" erwartungsgemäß nahe am letzten Wort liegt.
Wenn Sie reine CSS-Lösungen verwenden, erscheinen die drei Punkte vom letzten Wort entfernt.
quelle
Sie sind sich nicht sicher, was Ihr Ziel ist, aber möchten Sie, dass der Text in die zweite Zeile kommt?
Hier ist Ihre jsFiddle: http://jsfiddle.net/8kvWX/4/ hat gerade Folgendes entfernt:
Ich bin mir nicht sicher, ob Sie danach suchen oder nicht.
Grüße,
Mee
quelle