2009-07-01 6 views
3

Ich habe Text, der in einer einzelnen Zeile in einem Container mit fester Breite angezeigt wird. Wenn der Text nicht in der Breite des Containers enthalten sein kann, wird der Überlauf ausgeblendet. Jede Kombination von drei Statussymbolen kann von der rechten Seite des Containers aus angezeigt werden. Wenn eines dieser Symbole angezeigt wird, möchte ich, dass der Textüberlauf ausgeblendet wird, bevor das erste Symbol angezeigt wird, damit der Text nicht hinter den Symbolen verborgen bleibt.Überlaufender HTML-Linientext, bevor er durch rechtsbündig ausgerichteten Inhalt verdeckt wird

Wie kann ich den Text überlaufen, so dass er nicht unter den Symbolen fließt (idealerweise nur mit CSS und nicht mit JavaScript)?

Es folgt ein Beispiel für das CSS und das HTML, von dem ich ausgegangen bin (keines von beiden ist konkret angegeben). Here's a live example des Codes, der auch das gewünschte Ergebnis zeigt (beachten Sie, es hat ein Hintergrundbild im CSS inline mit der data URI scheme so in Versionen von Internet Explorer nicht früher als 8 arbeiten).

CSS:

.line { 
    position: relative; 
    width: 200px; 
    overflow: hidden; 
    white-space: nowrap; 
    text-overflow: ellipsis; 
} 

.star, .circle, .flag { 
    position: absolute; 
    top: 3px; 
    height: 23px; 
    width: 15px; 
    background-image: url(icons.png); 
} 

.star { 
    right: 30px; 
} 

.circle { 
    right: 15px; 
    background-position: -17px 0; 
} 

.flag { 
    right: 0; 
    background-position: -32px 0; 
} 

HTML:

<div class="line">This is some text that should have overflow that is hidden.</div> 
<div class="line"> 
    This is some text that should have overflow that is hidden. 
    <div class="flag"></div> 
</div> 
<div class="line"> 
    This is some text that should have overflow that is hidden. 
    <div class="circle"></div><div class="flag"></div> 
</div> 
<div class="line"> 
    This is some text that should have overflow that is hidden. 
    <div class="star"></div><div class="circle"></div><div class="flag"></div> 
</div> 
<div class="line"> 
    This is some text that should have overflow that is hidden. 
    <div class="star"></div><div class="flag"></div> 
</div> 
<div class="line"> 
    This is some text that should have overflow that is hidden. 
    <div class="circle"></div> 
</div> 

Antwort

1

Sie könnten das Hintergrundbild machen den Einsatz direkt in der div, die den Text und die Verwendung Polster hat etwas Platz für die Symbole zu befreien.

EDIT:

Hier ist ein funktionierendes Beispiel, aber ich konnte nicht „nowrap“ zu arbeiten, so dass ich durch die Verwendung einer Höhe betrogen:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> 
<head> 
<style type="text/css" media="screen"> 
.star { 
    background-image: url('data:image/png,%89PNG%0D%0A%1A%0A%00%00%00%0DIHDR%00%00%00.%00%00%00%10%08%06%00%00%00i%C9M%EA%00%00%00tIDATH%C7%ED%96Q%0A%C0%20%0CC%7B%98%C9%EE%7F%C2y%01%91%2C%BE%0C%19%16%FCl%F3%AC5Z%F5%C7%B8%AF%F6%1CpQOYr%11%02%80%00%96X%5CpG%D4%06~%B3%E3Y%A1%95%8E!%A3%91%10ws%A3G%9D%D88v%BB)GP%C0Q%5B%A2%EC%2Cf%C1%AB%A2%04%B8%05%3FJ%A4%BA%1E%7B%F8%14%ABK%8E%9A%DDu%C59%EA%A38%FF%A4%DD%A2%03%C8d%24%84%B6%AC%BF%C0%00%00%00%00IEND%AEB%60%82'); 
    background-position: right; 
    background-repeat: no-repeat; 
    padding-right: 30px; 
} 

.line { 
    width: 200px; 
    overflow: hidden; 
    height: 20px; 
} 
</style> 
</head> 
<body> 
    <div class="star line">This is some text that that should have overflow that is hidden.</div> 
    <div class="star line" style="padding-right: 0px;">This is some text that that should have overflow that is hidden.</div> 
</body> 
</html> 

Und es scheint, wie Sie müssen Verwenden Sie einzelne Bilder anstelle von Sprites, aber Sie können das Padding direkt zur Stern-, Kreis- und Markierungsklasse hinzufügen.

+1

Das ist nicht sofort zur Arbeit gehen, weil ich CSS-Sprites mit einem einzigen Bild bin mit den Symbol angezeigt wird (als ein beliebige Kombination von Symbolen für den Text erscheinen könnte).Aber ich mag die Idee mit Padding auf den Text-Container, um den Raum freizugeben. Ich denke, dass ich eine Klasse für diesen Textcontainer hinzufügen könnte, die den Typ des ersten Symbols angibt, das die entsprechende Auffüllung anwendet, um den Text zu überfüllen, wie ich es wünschen würde. –

+0

Ich habe ein Beispiel hinzugefügt –

1

Vielleicht verstehe ich Sie nicht richtig, aber was ist mit der Einstellung der Hintergrundfarbe von .star, .circle, .flag einfach auf "weiß" und verwenden Sie "Z-Index" auf ihnen? Es ist sicherlich ein Hack sozusagen, aber vielleicht wird es für Sie arbeiten.

aktualisieren

gemacht einfach eine auf dem Code basiert Versuch. Nur arbeiten an FF, Opera, IE8:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> 
    <head> 
    <title>Sandbox</title> 
    <meta http-equiv="Content-type" content="text/html; charset=utf-8" /> 
    <style type="text/css" media="screen"> 
    .line{ 
    position: relative; 
    width: 200px; 
    } 
    .star, 
    .circle, 
    .flag{ 
    top: 3px; 
    height: 23px; 
    width: 15px; 
    background-repeat:no-repeat; 
    background-image: url('data:image/png,%89PNG%0D%0A%1A%0A%00%00%00%0DIHDR%00%00%00.%00%00%00%10%08%06%00%00%00i%C9M%EA%00%00%00tIDATH%C7%ED%96Q%0A%C0%20%0CC%7B%98%C9%EE%7F%C2y%01%91%2C%BE%0C%19%16%FCl%F3%AC5Z%F5%C7%B8%AF%F6%1CpQOYr%11%02%80%00%96X%5CpG%D4%06~%B3%E3Y%A1%95%8E!%A3%91%10ws%A3G%9D%D88v%BB)GP%C0Q%5B%A2%EC%2Cf%C1%AB%A2%04%B8%05%3FJ%A4%BA%1E%7B%F8%14%ABK%8E%9A%DDu%C59%EA%A38%FF%A4%DD%A2%03%C8d%24%84%B6%AC%BF%C0%00%00%00%00IEND%AEB%60%82'); 
    } 
    .star{ 
    right: 30px; 
    } 
    .circle{ 
    right: 15px; 
    background-position: -17px 0; 
    } 
    .flag{ 
    right: 0; 
    background-position: -32px 0; 
    } 
    </style> 
    </head> 
    <body> 
    <h1>Current results:</h1>  
    <div class="line" style="background-color:red;">   
     <div class="star" style="display:inline;float:right"></div> 
     <div class="flag" style="display:inline;float:right"></div> 
     <div style="overflow: hidden;white-space: nowrap;text-overflow: ellipsis;">This is some text that should have overflow that is hidden.</div> 
    </div> 
    </body> 
</html> 
+0

Wenn Sie sich das Beispiel in Internet Explorer 8 ansehen, wird der Browser eine Ellipse anzeigen, die darauf hinweist, dass der Text übergelaufen ist. Wenn ich die Hintergrundfarbe der Symbole weiß einstelle, werden die Ellipsen nicht korrekt positioniert (sie erscheint immer noch kurz vor dem Ende des Containers, aber hinter den Symbolen). Die Symbole sind auch transparent, weil die Linie ein anklickbares Element in meiner Schnittstelle sein wird, das die Hintergrundfarbe ändert, wenn es sich über dem Bildschirm bewegt. –

+0

Interessanter Ansatz! Aber zwischen den Stern- und Flaggensymbolen ist kein Platz mehr, wie es auf meiner Beispielseite der Fall ist. –

0

Ihr Problem ist, dass Sie das Rendering von einem übergeordneten Tag beeinflussen möchten, basierend auf der Anzahl ihrer Kinder eines bestimmten Typs. Das ist ohne programmatische Eingriffe nicht möglich.

Wenn Sie programmatisch diese Listen zu erzeugen, würde ich schlage drei Klassen gerade hinzufügen, die die Breite der Linie an die äußeren div angeben:

.line { 
    position: relative; 
    overflow: hidden; 
    white-space: nowrap; 
    text-overflow: ellipsis; 
} 

.noicon { 
    width: 200px 
} 

.oneicon { 
    width: 183px 
} 

.twoicon { 
    width: 168px 
} 

.threeicon { 
    width: 154px 
} 

<div class="line noicon">This is some text that should have overflow that is hidden.</div> 
<div class="line oneicon"> 
     This is some text that should have overflow that is hidden. 
     <div class="flag"></div> 
</div> 
<div class="line twoicon"> 
     This is some text that should have overflow that is hidden. 
     <div class="star"></div><div class="flag"></div> 
</div> 
<div class="line threeicon"> 
     This is some text that should have overflow that is hidden. 
     <div class="star"></div><div class="circle"></div><div class="flag"></div> 
</div> 

Andernfalls ist Ihre beste Option möglicherweise, Javascript zu verwenden, um die Boxen dynamisch zu verkleinern.

+0

Das hatte nicht die erwarteten Ergebnisse: http://jsbin.com/utodi –

0

Der einfachste Weg, diese Symbole auf die Breite des Textes wirken zu lassen, besteht darin, dass sie vorangestellt sind (sie sind sowieso absolut positioniert), und um Text selbst einen Container zu geben (ich bin mir ziemlich sicher Du brauchst das, egal wie du es machst). So beenden Sie mit auf den Punkt:

<div class="line">This is some text that should have overflow that is hidden.</div> 
<div class="line"> 
    <div class="flag"></div> 
    <div class="text">This is some text that should have overflow that is hidden.</div> 
</div> 
<div class="line"> 
    <div class="circle"></div> 
    <div class="flag"></div> 
    <div class="text">This is some text that should have overflow that is hidden.</div> 
</div> 

Hier ist das einzige neue CSS Sie, dass die Arbeit machen müssen (zusätzlich zu der CSS in der Frage):

.text { 
    overflow: hidden; 
    white-space: nowrap; 
    text-overflow: ellipsis; 
} 

.flag ~ .text { width: 183px; } 
.circle ~ .text { width: 168px; } 
.star ~ .text { width: 154px; } 

Die .text Regel die gleiche wie die .line div hast du für dein eigenes Arbeitsbeispiel benutzt. Die wahre "Magie" passiert in diesen letzten Regeln, und sie sind der Grund, warum ich die Bild-Divs verschoben habe. Das ermöglicht Ihnen, die CSS3 sibling selector zu verwenden, um die Breite des .text div basierend auf dem Vorhandensein der Symbole festzulegen. Sie können die CSS-Kaskade einfach auf die Breite verteilen, indem Sie die Symbolklassen in der Reihenfolge von rechts nach links auflisten.

Als Randnotiz muss ich sagen, dass es hier ziemlich viele divs gibt, also gibt es keinen Hinweis darauf, was es eigentlich bedeutet. Ihre erste Sorge sollte immer sein, semantisches HTML zu erstellen.

Ich würde wahrscheinlich den Text in Absatz-Tags und die Symbole in eine Liste einfügen und jedem Listenelement auch eine Textbeschreibung geben (es mit CSS verstecken). Dann wieder, vielleicht ist das nicht wirklich angemessen (und vielleicht sollte das Symbol divs wirklich kommen nach der Text); Ich kann es nicht sagen. Und wenn die Icons in eine Liste gehen, braucht der Geschwisterwähler etwas Hilfe ...

+0

"~" wird nicht in IE6 funktionieren. – billyswong

0

Ich kann Merkuros Antwort und Ihre Antwort (zu wenig Punkte) nicht kommentieren, also füge ich das hier hinzu: Sie könnte einfach ein Platzhalterbild der Linie verwenden, die durch das opake img abgedeckt wird, so dass es nach dem Platzieren den Text und die Linie überdeckt, aber die Hintergrundlinie scheint scheinbar ununterbrochen zu sein, da das Bild eine Linie hat, die sauber mit der Realität ausgerichtet ist Linie dahinter. Und Sie könnten hover: verwenden, um Bilder zu wechseln, wenn die Linie die Farbe usw. ändert (am besten könnte ich im Moment denken)

Auch wenn Sie separate Bilder mit nur einem Symbol (Stern, Kreis, Flagge) verwenden und pad die Bilder auf der rechten Seite mit undurchsichtigen Leerzeichen bis zu der Breite, die Sie abdecken möchten, hätten Sie so etwas (ich habe mein Bestes getan, um die Base64-Bilder zu kodieren, aber es funktioniert nur in FF. Das CSS sollte korrekt mit richtigen verknüpften Bildern funktionieren) .

CSS:

.line { 
    position: relative; 
    width: 200px; 
    overflow: hidden; 
    white-space: nowrap; 
    text-overflow: ellipsis; 
} 

.star, 
.circle, 
.flag { 
    position: absolute; 
    top: 3px; 
    height: 23px; 
    right: 0px; 
} 

.star { 
    width: 45px; 
    background-image:url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAC4AAAAQCAMAAABeF73YAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAwBQTFRFAAAA%2F%2F%2F%2FAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZ3bsYwAAABh0RVh0U29mdHdhcmUAUGFpbnQuTkVUIHYzLjM2qefiJQAAAE5JREFUKFOd0jEOACAIA8Dy%2F0%2BLDQY3WlhcDlIJCKtQ%2Br1D844D2vhSOk%2FZNf07pxs6GKYaptFX0tALesXNMAwipfmg4sn1u5H20Tsz%2BQHT4AKfEabvTAAAAABJRU5ErkJggg%3D%3D'); 
    //background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAD4AAAAQCAIAAADBBVtVAAAAfUlEQVR4nNVVQQrAIAyz4v%2B%2F3B0K%0AzuEYth0p6UmF1hiSKKraOKvnR4hIfkigfoBeVVnoRnkJ8cSsi9emhwQD3O9m%2FQQTJrXcrN%2Bdb%2FQj%0Aozau9R0l%2BIsgtmkc%2Bi4YcESOZP8UCT7au926Xvy9nYftKW5bIx9AbNN4OJYXccJcMFQtIo2LoIEA%0AAAAASUVORK5CYII%3D'); 
} 

.circle { 
    width: 30px; 
    background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAC4AAAAQCAMAAABeF73YAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAwBQTFRFAAAA%2F%2F%2F%2FAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZ3bsYwAAABh0RVh0U29mdHdhcmUAUGFpbnQuTkVUIHYzLjM2qefiJQAAAENJREFUKFO10UEOACAIA8Hy%2F08rSPC6NZHzpBCqsEaWjieuHLKnUGnkk7cm3ucTDuJ3usn%2F3u4%2Bsj2uicBjUPU3zuQLvrYCj5S%2FhI4AAAAASUVORK5CYII%3D'); 
    //background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAC4AAAAQCAIAAADmq9q9AAAAaUlEQVR4nO1VQQ7AIAhrjf%2F%2FMjuO%0AGOVAF8VkvWFiKAUKzQw10E4TeFGISlc%2Bk%2FSh2Ou8KgOP6csOKqusCptCs5KhEpeeFuZyVeJNSe%2FR%0A5apgXbpiLQ0AST9rcRhkFS1OcttvTyn%2FyzzBA%2B9YHizbV3zJAAAAAElFTkSuQmCC'); 
} 

.flag { 
    width: 15px; 
    background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAC4AAAAQCAMAAABeF73YAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAwBQTFRFAAAA%2F%2F%2F%2FAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZ3bsYwAAABh0RVh0U29mdHdhcmUAUGFpbnQuTkVUIHYzLjM2qefiJQAAAExJREFUKFO10LECACAERVH%2B%2F6dTJJtryNB06CE6KhlpPVyyumbjD%2FdfVd6N3jleFqALJzpXRdjD2LJQO48X9ASn48NNOfSX%2FeXgKpssziECqaokJE4AAAAASUVORK5CYII%3D'); 
    //background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB8AAAAQCAIAAABhmjO7AAAAbElEQVR4nLWSUQ7AIAhDqdn9r8w%2B%0ASJyJ2pki%2FVPio0Lh7lamVoc2s0d%2BCYBUYyQKnXM7WqSfcEPK3HdBmO%2BvbXXZEnIi%2B%2FQJIeudm9Pp%0AJ5%2FOeufpTNF%2F7bfoP1rgx1mkWrtVPZEfAlvIBTrRC7wOMBc8CAoqAAAAAElFTkSuQmCC'); 
} 
+0

Ich habe Ihre Stile unter http://jsbin.com/erosu angeschlossen und positioniert die Auslassungszeichen nicht dort, wo Text korrekt überläuft. Sie werden sehen, was ich meine, wenn Sie es in IE8, Safari oder Chrome anzeigen (die Base64-kodierten Bilder funktionieren alle in diesen Browsern). Sie werden dieses Problem in Firefox nicht sehen, da es "text-overflow: ellipsis;" nicht unterstützt. –

+0

Möchten Sie die Ellipse auf allen Zeilen haben? oder möchtest du die Ellipse komplett ausblenden, da ich auf Safari und IE8 nur den 1. Punkt der Ellipse in der 2. Zeile sehen kann. (Sie könnten es verbergen, indem Sie die Breite der Flag-Klasse auf 17 oder so erhöhen, dass sie vollständig ausgeblendet wird. Wenn Sie eine Ellipse haben möchten, würde eine andere CSS-Klasse Ellipse haben, die ein Hintergrundbild einer Ellipse mit einer Breite von 60px positioniert erfüllen Sie Ihre Anforderungen? – facepalmd

+0

vergessen Sie die zweite Hälfte über die Ellipse, ich habe keine Ahnung, was ich rauchte. Ich habe auch versucht, eine Ellipse an das Bild zu befestigen, aber das wird nicht skalieren, wenn die Schriftart ist nach oben oder unten, aber Ich werde es oben als auskommentierten Abschnitt hinzufügen, um Ihnen genau zu zeigen, wie es gescheitert ist, nur für den Fall, dass es Ihnen irgendwelche Ideen gibt – facepalmd