Textüberlauf: Auslassungspunkte funktionieren nicht


263

Folgendes habe ich versucht (siehe hier ):

body {
    overflow: hidden;
}

span {
    border: solid 2px blue;
    white-space: nowrap;
    text-overflow: ellipsis;
}

Im Wesentlichen möchte ich, dass die Spanne mit Auslassungspunkten verkleinert wird, wenn das Fenster klein gemacht wird. Was habe ich falsch gemacht?


6
die Voraussetzungen, damit Ellipsen funktionieren: stackoverflow.com/a/33061059/3597276
Michael Benjamin

Das Problem, das ich hatte, als ich dachte, dass es nicht funktioniert, war, dass ich die Breite nicht lang genug eingestellt habe (10px). Also habe ich die Auslassungspunkte abgeschnitten, doh!
Rod

Antworten:


458

Sie benötigen CSS overflow, width(oder max-width) display, und white-space.

http://jsfiddle.net/HerrSerker/kaJ3L/1/

span {
    border: solid 2px blue;
    white-space: nowrap;
    text-overflow: ellipsis;
    width: 100px;
    display: block;
    overflow: hidden
}

Nachtrag Wenn Sie einen Überblick über Techniken zum Festklemmen von Leitungen (mehrzeilige Überlaufellipsen) wünschen, besuchen Sie diese CSS-Tricks-Seite: https://css-tricks.com/line-clampin/

Addendum2 (Mai 2019)
Wie dieser Link behauptet, wird Firefox 68 -webkit-line-clamp(!) Unterstützen.


12
Das White-Space-Grundstück fehlte mir. Vielen Dank.
nebulousGirl

65
Es ist schade, dass Sie die white-space: nowrap;Immobilie brauchen . Jetzt können Sie nur eine Textzeile mit ... anstelle eines Blocktextes beenden.
Sven van Zoelen

3
Heute unterstützen alle gängigen
kazy

1
@basZero Multiline Ellipsis wird nicht nur mit CSS unterstützt. Sie müssen andere Maßnahmen ergreifen
yunzen

1
Sie müssen eine Breite angeben, damit der Container gebunden wird. Sie müssen Überlauf: Ausgeblendet festlegen, damit der Browser den Überlauftext ausblendet, und dann Textüberlauf: Auslassungspunkte festlegen, um den Browser anzuweisen, wie das Ausblenden von Textüberläufen besonders behandelt werden soll.
Michael Angstadt

46

Stellen Sie sicher, dass Sie ein Blockelement und eine maximale Größe haben, und setzen Sie den Überlauf auf ausgeblendet. (Getestet in IE9 und FF 7)

http://jsfiddle.net/uh9zD/

div {
    border: solid 2px blue;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    width: 50px;
}

5
Scheint wie dieser Leerraum: Nowrap-Eigenschaft kann im Allgemeinen auch für alles mit Leerzeichen erforderlich sein.
Kzqai

Genaues Duplikat des obigen Kommentars.
nebulousGirl

@nebulousGirl: Eigentlich war Kzqais Kommentar früher als der, der in HerrSerkers Kommentaren gepostet wurde.
Lepe

Es gibt eine Eigenart im IE - der IE umschließt kein zweites Wort (getestet in IE 11) ... Go figure. Funktioniert wie erwartet in jedem anderen Browser (einschließlich der guten alten Opera 12).
Nux

1
@Nux Dies funktioniert auch nicht wie erwartet im MS Edge Browser
yunzen

21

Für mehrere Zeilen in Chrome verwenden Sie:

display: inline-block;
overflow: hidden;
text-overflow: ellipsis;
display: -webkit-box;
-webkit-line-clamp: 2; // max nb lines to show
-webkit-box-orient: vertical;

Inspiriert von Youtube ;-)


Dies ist eine sehr interessante Lösung. Es verwendet -webkit-*Eigenschaften, wird jedoch in allen gängigen Browsern unterstützt. Weitere Informationen finden Sie hier: css-tricks.com/almanac/properties/l/line-clamp
dkniffin

5

Ich hatte ein Problem mit Auslassungspunkten unter Chrom. White-Space einschalten: Nowrap schien das Problem zu beheben.

max-width: 95px;
max-height: 20px;
overflow: hidden;
display: inline-block;
text-overflow: ellipsis;
border: solid 1px black;
font-size: 12pt;
text-align: right;
white-space: nowrap;

4
word-wrap: break-word;

dies und nur das hat mir den Job gemacht

<pre> </pre> 

Etikett

alles andere konnte die Auslassungspunkte nicht erfüllen ....


3

Nur ein Headsup für jeden, der darüber stolpern könnte ... Mein h2 hat geerbt

text-rendering: optimizelegibility; 
//Changed to text-rendering: none; for fix

das erlaubte keine Auslassungspunkte. Anscheinend ist das sehr schwierig, oder?


2

Fügen Sie diesen Code unten hinzu, wo Sie möchten

Beispiel

p{
   display: block; /* Fallback for non-webkit */
   display: -webkit-box;
   max-width: 400px;
   margin: 0 auto;
   -webkit-line-clamp: 2;
   -webkit-box-orient: vertical;
   overflow: hidden;
   text-overflow: ellipsis;
 }

2

Für mehrere Zeilen

In Chrome können Sie dieses CSS anwenden, wenn Sie Auslassungspunkte auf mehrere Zeilen anwenden müssen.

Sie können Ihrem CSS auch eine Breite hinzufügen , um ein Element mit einer bestimmten Breite anzugeben:

.multi-line-ellipsis {
    overflow: hidden;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
}
<p class="multi-line-ellipsis">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</p>


1

Sie können versuchen, Auslassungspunkte zu verwenden, indem Sie Folgendes in CSS hinzufügen:

.truncate {
  width: 250px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

Es scheint jedoch, dass dieser Code nur für einzeiliges Trimmen gilt. Weitere Möglichkeiten zum Trimmen von Text und Anzeigen von Auslassungspunkten finden Sie auf dieser Website: http://blog.sanuker.com/?p=631


0

Fügen Sie die folgenden Zeilen in CSS hinzu, damit die Auslassungspunkte funktionieren

 p {
     display: block; // change it as per your requirement
     overflow: hidden;
     text-overflow: ellipsis;
     white-space: nowrap;
   }

0

Für diejenigen von uns, die keine feste Breite verwenden möchten funktioniert es auch mit display: inline-grid. Zusammen mit den erforderlichen Eigenschaften fügen Sie einfach hinzudisplay

span {
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
    display: inline-grid;
}
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.