Das Beschränken der Ausgabe auf zwei Textzeilen ist mit CSS möglich, wenn Sie das line-height
und height
des Elements festlegen und Folgendes festlegen overflow:hidden;
:
#someDiv {
line-height: 1.5em;
height: 3em;
overflow: hidden;
}
--- jsFiddle DEMO ---
Alternativ können Sie das CSS text-overflow
und die white-space
Eigenschaften verwenden, um Ellipsen hinzuzufügen. Dies scheint jedoch nur für eine einzelne Zeile zu funktionieren.
#someDiv {
line-height: 1.5em;
height: 3em;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
width: 100%;
}
Und eine Demo:
--- jsFiddle DEMO ---
Das Erreichen mehrerer Textzeilen und Ellipsen scheint der Bereich von Javascript zu sein.
white-space: nowrap;
bricht es, wenn Sie es auskommentieren, funktioniert es.Eine weitere einfache und schnelle Lösung
.giveMeEllipsis { overflow: hidden; text-overflow: ellipsis; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: N; /* number of lines to show */ line-height: X; /* fallback */ max-height: X*N; /* fallback */ }
Der Verweis auf die ursprüngliche Frage und Antwort ist hier
quelle
box-orient
ist veraltet oder überholt .mat-card-content
in aflexbox container
Das beste, das ich gesehen habe, das nur CSS ist und reagiert, stammt aus dem Mobify Developer Blog - CSS-Ellipse: So verwalten Sie mehrzeilige Ellipsen in reinem CSS :
JS Fiddle Beispiel
CSS:
html, body, p { margin: 0; padding: 0; font-family: sans-serif;} .ellipsis { overflow: hidden; height: 200px; line-height: 25px; margin: 20px; border: 5px solid #AAA; } .ellipsis:before { content:""; float: left; width: 5px; height: 200px; } .ellipsis > *:first-child { float: right; width: 100%; margin-left: -5px; } .ellipsis:after { content: "\02026"; box-sizing: content-box; -webkit-box-sizing: content-box; -moz-box-sizing: content-box; float: right; position: relative; top: -25px; left: 100%; width: 3em; margin-left: -3em; padding-right: 5px; text-align: right; background: -webkit-gradient(linear, left top, right top, from(rgba(255, 255, 255, 0)), to(white), color-stop(50%, white)); background: -moz-linear-gradient(to right, rgba(255, 255, 255, 0), white 50%, white); background: -o-linear-gradient(to right, rgba(255, 255, 255, 0), white 50%, white); background: -ms-linear-gradient(to right, rgba(255, 255, 255, 0), white 50%, white); background: linear-gradient(to right, rgba(255, 255, 255, 0), white 50%, white); }
Html:
<div class="ellipsis"> <div class="blah"> <p>Call me Ishmael. Some years ago – never mind how long precisely – having little or no money in my purse, and nothing particular to interest me on shore, I thought I would sail about a little and see the watery part of the world. It is a way I have of driving off the spleen, and regulating the circulation. Whenever I find myself growing grim about the mouth; whenever it is a damp, drizzly November in my soul; whenever I find myself involuntarily pausing before coffin warehouses, and bringing up the rear of every funeral I meet; and especially whenever my hypos get such an upper hand of me, that it requires a strong moral principle to prevent me from deliberately stepping into the street, and methodically knocking people's hats off – then, I account it high time to get to sea as soon as I can.</p> </div> </div>
quelle
Ich glaube, dass die Nur-CSS-Lösung nur
text-overflow: ellipsis
für eine Zeile gilt, sodass Sie diesen Weg nicht gehen können:.yourdiv { line-height: 1.5em; /* Sets line height to 1.5 times text size */ height: 3em; /* Sets the div height to 2x line-height (3 times text size) */ width: 100%; /* Use whatever width you want */ white-space: normal; /* Wrap lines of text */ overflow: hidden; /* Hide text that goes beyond the boundaries of the div */ text-overflow: ellipsis; /* Ellipses (cross-browser) */ -o-text-overflow: ellipsis; /* Ellipses (cross-browser) */ }
Haben Sie http://tpgblog.com/threedots/ für jQuery ausprobiert ?
quelle
display: block
undmin-height: 13px
undmax-height: 26px
für die Höheneinstellung für eine<td>
Nur CSS-Lösung für Webkit
// Only for DEMO $(function() { $('#toggleWidth').on('click', function(e) { $('.multiLineLabel').toggleClass('maxWidth'); }); })
.multiLineLabel { display: inline-block; box-sizing: border-box; white-space: pre-line; word-wrap: break-word; } .multiLineLabel .textMaxLine { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden; } /* Only for DEMO */ .multiLineLabel.maxWidth { width: 100px; }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <div class="multiLineLabel"> <span class="textMaxLine">This text is going to wrap automatically in 2 lines in case the width of the element is not sufficiently wide.</span> </div> <br/> <button id="toggleWidth">Toggle Width</button>
quelle
Nur CSS
line-height: 1.5; white-space: normal; overflow: hidden; text-overflow: ellipsis; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical;
quelle
Versuchen Sie so etwas: http://jsfiddle.net/6jdj3pcL/1/
<p>Here is a paragraph with a lot of text ...</p> p { line-height: 1.5em; height: 3em; overflow: hidden; width: 300px; } p::before { content: '...'; float: right; margin-top: 1.5em; }
quelle
In der Regel ist ein einzeiliges Abschneiden recht einfach
.truncate-text { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
Das Abschneiden von zwei Zeilen ist etwas schwieriger, aber es kann mit CSS durchgeführt werden. Dieses Beispiel ist in Sass.
@mixin multiLineEllipsis($lineHeight: 1.2rem, $lineCount: 2, $bgColor: white, $padding-right: 0.3125rem, $width: 1rem, $ellipsis-right: 0) { overflow: hidden; /* hide text if it is more than $lineCount lines */ position: relative; /* for set '...' in absolute position */ line-height: $lineHeight; /* use this value to count block height */ max-height: $lineHeight * $lineCount; /* max-height = line-height * lines max number */ padding-right: $padding-right; /* place for '...' */ white-space: normal; /* overwrite any white-space styles */ word-break: break-all; /* will break each letter in word */ text-overflow: ellipsis; /* show ellipsis if text is broken */ &::before { content: '...'; /* create the '...'' points in the end */ position: absolute; right: $ellipsis-right; bottom: 0; } &::after { content: ''; /* hide '...'' if we have text, which is less than or equal to max lines and add $bgColor */ position: absolute; right: 0; width: $width; height: 1rem * $lineCount; margin-top: 0.2rem; background: $bgColor; /* because we are cutting off the diff we need to add the color back. */ } }
quelle
Siehe http://jsfiddle.net/SWcCt/ .
Stellen Sie einfach
line-height
die Hälfte vonheight
:line-height:20px; height:40px;
Um arbeiten zu können,
text-overflow: ellipsis
benötigen Sie natürlich auch:overflow:hidden; white-space: pre;
quelle
text-overflow: ellipsis
funktioniert aber nur für Inline-Boxen, die die Line-Box überlaufen. Ohnewhite-space: pre
würden sie einfach zur nächsten Zeilenbox gehen. Und dann ist ein manueller Zeilenumbruch erforderlich. Ich glaube nicht, dass es eine perfekte Lösung gibt.Verwenden Sie den folgenden Link zum Umbrechen in zwei Zeilen. Überprüfen Sie den Link
Fügen Sie Auslassungspunkte (...) in das HTML-Tag ein, wenn der Inhalt zu breit ist
Das braucht die unten stehende Abfrage
http://www.jeremymartin.name/projects.php?project=jTruncate
quelle
@Asiddeen bn Mohammeds Lösung funktionierte für mich mit einer kleinen Modifikation des CSS
.text { line-height: 1.5; height: 6em; white-space: normal; overflow: hidden; text-overflow: ellipsis; display: block; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
quelle