Ich habe ein Problem mit Auslassungspunkten. Hier ist mein HTML:
<div id="wrapper">
<span id="firstText">This text should be effected by ellipsis</span>
<span id="lastText">this text should not change size</span>
</div>
Gibt es eine Möglichkeit, dies mit reinem CSS zu tun? Folgendes habe ich versucht:
#firstText
{
overflow: hidden;
white-space:nowrap;
text-overflow:ellipsis;
}
#lastText
{
white-space:nowrap;
overflow:visible;
}
So wird es gezeigt:
Dieser Text sollte durch Auslassungspunkte dieses Textes erfolgen
Dies ist zwar das Ergebnis, das ich möchte:
Dieser Text sollte e ... sein Text sollte die Größe nicht ändern
Sie können dies erreichen, indem Sie die Reihenfolge Ihrer Spannweiten ändern und der ersten Spannweite ein Float-Recht geben. Auf diese Weise müssen Sie für keines Ihrer Elemente eine Breite festlegen:
#firstText { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } #lastText { float:right; white-space:nowrap; }
<div id="wrapper"> <span id="lastText">this text should not change size</span> <span id="firstText">This text should be effected by ellipsis</span> </div>
quelle
display: block;
scheint den Unterschied zu machen.Es gibt noch einen kleinen Fall, der nicht behandelt wird:
Wenn Sie eine unbekannte oder dynamische Wrappergröße haben und möchten, dass das erste Kind den gesamten verfügbaren Speicherplatz außer den Auslassungspunkten belegt, wenn dieser noch zu lang ist.
Hier ist meine Lösung mit
flex
CSS-Eigenschaften:#wrapper{ display: inline-flex; flex-flow:row nowrap; max-width:100%; /* or width:100% if you want the spans to take all available space */ } #firstText{ flex:1; white-space:pre; overflow: hidden; text-overflow: ellipsis; } #lastText{ white-space:nowrap; }
quelle
max-width
sollte das einfach seinwidth
oder dasinline-flex
sollte einfach seinflex
.Sie könnten es so vortäuschen: Ändern Sie Ihr
span
zudiv
und ändern Sie Ihr CSS:#firstText { float: left; width: 250px; height: 20px; overflow: hidden; white-space:nowrap; text-overflow:ellipsis; } #lastText { float: left; white-space:nowrap; overflow:visible; }
quelle